วิธีตั้งค่าการอนุญาตให้ใช้ไฟล์ด้วยคำสั่งแบบสัมผัส


16

ดูเหมือนว่าทุกครั้งที่ผมสร้างไฟล์ที่มีtouchสิทธิ์ที่จะถูกตั้งค่า: -rw-R - r--

มีวิธีที่ฉันสามารถกำหนดค่าสิทธิ์ด้วยtouchหรือไม่นี้จะต้องทำหลังจากที่มีคำสั่งที่แตกต่างกันอย่างไร

คำตอบ:


27

คุณสามารถปรับเปลี่ยนของคุณumaskจะอนุญาตให้ (สำหรับการใช้งานส่วนใหญ่) / สิทธิพิเศษในการเขียนอ่านข้อมูลเพิ่มเติม 0666แต่ไม่ปฏิบัติการเนื่องจากโดยทั่วไปสิทธิ์ขอเป็น

ถ้าumaskเป็น022คุณจะเห็นtouchทำให้0644ไฟล์

ที่น่าสนใจPOSIXอธิบายพฤติกรรมนี้ในแง่ของcreat:

  1. หากไฟล์ไม่มีอยู่:

    ฟังก์ชันcreat ()ถูกเรียกด้วยอาร์กิวเมนต์ดังนี้

    • ตัวถูกดำเนินการไฟล์ถูกใช้เป็นอาร์กิวเมนต์พา ธ

    • ค่าของบิตแบบครบวงจรหรือของS_IRUSR, S_IWUSR, S_IRGRP, S_IWGRP, S_IROTHและS_IWOTHถูกนำมาใช้เป็นอาร์กิวเมนต์โหมด

และมันเป็นเพียงโดยต่อไปนี้เชื่อมโยงไปยังcreatแล้วจะopenสังเกตเห็นเอ่ยถึงumaskและกลับมาติดตามไปopen(และcreat) เพื่อตรวจสอบว่าควรจะส่งผลกระทบต่อumasktouch

เพื่อumaskให้มีผลกับtouchคำสั่งเท่านั้นให้ใช้เชลล์ย่อย:

(umask 066; touch private-file)
(umask 0; touch world-writable-file)
touch file-as-per-current-umask

(โปรดทราบว่าในกรณีใด ๆ หากไฟล์ที่มีอยู่ก่อนtouchจะไม่เปลี่ยนสิทธิ์ของมันเพียงแค่ปรับปรุงการประทับเวลาของมัน)


2

umaskคุณสามารถจัดการกับ โดยทั่วไปแล้วจะมีการตั้งค่า022ซึ่งหมายความว่าเมื่อผู้ใช้สร้างไฟล์มันจะได้รับอนุญาตจาก0644คุณสามารถจัดการumaskตามความต้องการของคุณ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.