Computer >> คอมพิวเตอร์ >  >> ระบบ >> MAC

วิธีใช้ File Flags เพื่อปรับเปลี่ยนพฤติกรรมของไฟล์ใน macOS

วิธีใช้ File Flags เพื่อปรับเปลี่ยนพฤติกรรมของไฟล์ใน macOS

macOS ใช้แฟล็กเพื่อจำกัดวิธีการเปลี่ยนไฟล์ มีการตั้งค่าแตกต่างจากการอนุญาตและทำงานในโครงสร้างแบบขนานควบคู่ไปกับคำสั่งเช่น chown และ chmod . คุณจะใช้ chflags เพื่อเปลี่ยนแฟล็กเช่นเดียวกับ ls เพื่อดูธง Unix ใช้งานระบบที่คล้ายคลึงกัน แต่มีตัวเลือกมากมายที่เรียกว่า “แอตทริบิวต์” แทนที่จะเป็นแฟล็ก

การดูการตั้งค่าสถานะบน macOS

ใน Terminal คุณสามารถใช้ ls ธงเพื่อดูธงที่ยังหลงเหลืออยู่

ls -lO 
~/Librarydrwx------@ 88  alexander staff hidden 2992 Jan 25 14:01 Library

หากไม่มีการตั้งค่าสถานะสำหรับไฟล์หรือโฟลเดอร์ ระบบจะแสดงเส้นประแทน

ls -lO ~/Library/Caches
drwx------+ 234 alexander staff   -    7956 Jan 25 13:03 Caches

คุณสามารถลบการตั้งค่าสถานะได้โดยใช้ผกผันตามที่อธิบายไว้ด้านล่าง

การตั้งค่าและการล้างแฟล็กบน macOS

วิธีใช้ File Flags เพื่อปรับเปลี่ยนพฤติกรรมของไฟล์ใน macOS

แฟล็กมักเกิดปัญหาขึ้น เนื่องจากพวกเขาตั้งค่าการอนุญาตพิเศษ พวกเขาสามารถพลาดได้ง่าย คุณพบว่าตัวเองมีไฟล์ที่ไม่สามารถลบได้ ไม่ว่าการอนุญาตของผู้ใช้ของคุณจะสูงแค่ไหน? คุณอาจต้องล้างหนึ่งหรือสองแฟล็ก

แฟล็กที่สามารถตั้งค่าภายใต้ macOS มีดังต่อไปนี้ นี่คือรายการตัวเลือกทั้งหมดที่มี รวมถึงคำอธิบายเกี่ยวกับฟังก์ชันการทำงาน แฟล็กส่วนใหญ่สามารถตั้งค่าได้โดยเจ้าของไฟล์หรือ superuser เท่านั้น sappnd และ schg เฉพาะ superuser เท่านั้นที่สามารถตั้งค่าได้ เนื่องจากเป็นแฟล็กระดับระบบ ตั้งค่าสถานะที่ซ่อนอยู่เท่านั้นโดยไม่ต้องยกระดับสิทธิ์

การตั้งค่าสถานะบน macOS

เมื่อตั้งค่าสถานะบน macOS ให้ใช้คำสั่งด้านล่าง แฟล็กแบบเรียกซ้ำ -R สามารถใช้ได้สำหรับการดำเนินการระดับไดเร็กทอรี:

sudo chflags -R [flag] /usr/bin/local
sudo chflags [flag] /usr/bin/local/mnt.sh
chflags -R hidden ~/Desktop

จะตั้งค่าสถานะที่เหมาะสม ตัวอย่างเช่น ค่าต่อไปนี้ตั้งค่าสถานะ nodump:

sudo chflags nodump /usr/bin/local/tty.sh

ตั้งค่าหรือลบแฟล็กได้เพียง 1 รายการต่อคำสั่ง chflags

  • ทึบแสง ตั้งค่าให้โฟลเดอร์ไม่โปร่งใสเมื่อดูผ่านยูเนี่ยนเมาต์ ซึ่งเป็นวิธีการดูหลายไดเร็กทอรีแบบเก่าพร้อมกัน
  • พยักหน้า ป้องกันไม่ให้ไฟล์หรือโฟลเดอร์ถูกดัมพ์ระหว่างการใช้งาน dump คำสั่งให้สำรองข้อมูลระบบของคุณ
  • เติม เติม ตั้งค่าแฟล็กต่อท้ายระบบเท่านั้น ซึ่งช่วยให้สามารถเพิ่มไฟล์ได้ แต่ไม่แก้ไขหรือลบ การนำแฟล็กนี้ออกต้องเข้าสู่โหมดผู้ใช้คนเดียว
  • schg เปลี่ยน จำลอง ตั้งค่าสถานะที่ไม่เปลี่ยนรูปแบบของระบบ ซึ่งจะล็อกการเปลี่ยนแปลงไฟล์ทั้งหมดโดยผู้ใช้ทุกระดับสิทธิ์ใดๆ การนำแฟล็กนี้ออกต้องมีการป้อนโหมดผู้ใช้คนเดียว
  • uappnd, uappend ตั้งค่าแฟล็กต่อท้ายผู้ใช้เท่านั้น เจ้าของไฟล์สามารถตั้งค่านี้ได้ และเจ้าของสามารถยกเลิกการตั้งค่าได้โดยไม่ต้องยกระดับสิทธิ์ เนื่องจากมันล็อคไฟล์ด้วย sappnd หรือ schg ที่ความปลอดภัยต่ำกว่า จึงมีการใช้งานบ่อยกว่ามาก
  • uchg, uchange, ไม่เปลี่ยนรูป ตั้งค่าสถานะที่ไม่เปลี่ยนรูปของผู้ใช้ซึ่งมีความสัมพันธ์เดียวกันกับแฟล็กที่ไม่เปลี่ยนรูปแบบของระบบเป็น uappnd แฟล็กต้อง sappnd .
  • ซ่อนอยู่ ตั้งค่าสถานะที่ซ่อนอยู่ สิ่งนี้จะซ่อนรายการภายในคำสั่ง Finder GUI และ ls

การล้างการตั้งค่าสถานะบน macOS

หากต้องการล้างแฟล็กที่กำหนด ให้ตั้งค่าตรงข้าม ในกรณีส่วนใหญ่ นี่หมายถึงการเติมคำว่า "ไม่" ไว้ข้างหน้าคำสั่งของคุณ ในกรณีของ nodump ให้ใช้แฟล็กดัมพ์เพื่อเคลียร์ดังนี้:

sudo chflags dump /usr/bin/local/oty.sh

เงื่อนไขมาตรฐานเพิ่มเติมสามารถย้อนกลับได้ด้วยคำนำหน้า "ไม่" เช่น:

sudo chflags nosappnd /usr/bin/local/oty.sh

เช่นเดียวกับ chmod มีการตั้งค่าสถานะแบบเรียกซ้ำ:

chflags  -R nohidden ~/Desktop

เมื่อล้างแฟล็กแล้ว คุณจะเปลี่ยนความเป็นเจ้าของและการอนุญาตของไฟล์ได้ตามต้องการ

การใช้แอตทริบิวต์บน Unix

วิธีใช้ File Flags เพื่อปรับเปลี่ยนพฤติกรรมของไฟล์ใน macOS

Unix ใช้งานระบบที่คล้ายกันในแบ็กเอนด์ แต่ได้รับการจัดการด้วยคำสั่งต่างๆ บนแพลตฟอร์ม Linux ยอดนิยม คุณจะสามารถเข้าถึง chattr . แทนได้ และ lsattr . แฟล็กเหล่านี้ใช้สำหรับเปลี่ยนและดู "แอตทริบิวต์" ซึ่งเป็นแฟล็กที่ใช้กับการติดตั้ง Unix อื่นๆ ส่วนใหญ่

สามารถดูแอตทริบิวต์ได้ด้วย lsattr :

lsattr /path/to/file.txt

การเปลี่ยนแอตทริบิวต์ขึ้นอยู่กับรหัสของการเริ่มต้นและแสดงอยู่ในหน้า man ของ chattr:

“ตัวอักษร 'acdeijstuADST' เลือกแอตทริบิวต์ใหม่สำหรับไฟล์:ผนวกเท่านั้น (a), บีบอัด (c), ไม่มีการถ่ายโอนข้อมูล (d), รูปแบบการขยาย (e), ไม่เปลี่ยนรูป (i), การทำเจอร์นัลข้อมูล (j), การลบที่ปลอดภัย (s), ไม่มีการรวมหาง (t), ลบไม่ได้ (u), ไม่มีการอัปเดต atime (A), การอัปเดตไดเรกทอรีซิงโครนัส (D), การอัปเดตแบบซิงโครนัส (S) และด้านบนของลำดับชั้นไดเรกทอรี (T)”

คำสั่งมีลักษณะดังนี้:

chattr +s /file/name.txt

ที่ตั้งค่าแอตทริบิวต์การลบที่ปลอดภัยสำหรับเส้นทางที่ระบุ

บทสรุป

แฟล็กมีประโยชน์มากที่สุดเมื่อจำกัดว่าใครสามารถเปลี่ยนแปลงไฟล์ได้ การล็อกไฟล์ทำให้คุณสามารถป้องกันการปลอมแปลงหรือการแก้ไขโดยไม่ได้ตั้งใจในระดับระบบไฟล์ได้ หากไม่มีการส่งต่อไปยังรูทหรือเจ้าของไฟล์ สิทธิ์เหล่านี้จะไม่สามารถเปลี่ยนแปลงได้ จึงมีความปลอดภัยปานกลาง