จะระบุกลุ่มด้วย chmod ได้อย่างไร?


34

ฉันถูกขอให้เพิ่มสิทธิ์ group-wrx ไปยังไดเรกทอรีในโฟลเดอร์บ้านของผู้ใช้รายอื่น

ฉันเชื่อว่าสิ่งที่ฉันควรทำคือเรียกใช้chmod 771 -R directorynameในไดเรกทอรีหลัก สิ่งที่ฉันไม่สามารถหาที่ใดก็ได้ในท่อเป็นวิธีการระบุที่กลุ่มผมต้องการให้สิทธิ์เหล่านี้ไป ฉันเป็นการส่วนตัวในหลายกลุ่มและในกลุ่มฉันไม่ทราบว่าเป็นราก

ในกรณีที่เป็นเรื่องสำคัญระบบกำลังเรียกใช้ Redhat 5.4

คำตอบ:


37

การchmod()เรียกระบบและโดยการขยายchmodโปรแกรมไม่ส่งผลกระทบต่อกลุ่มของไฟล์หรือไดเรกทอรี (หรือไฟล์ชนิดอื่น: บล็อกพิเศษ, อักขระพิเศษ, ซ็อกเก็ต, ... symlink เป็นสิ่งที่กรณีพิเศษ) ดังนั้นกลุ่มที่ได้รับอนุญาตจะเป็นกลุ่มที่ไฟล์หรือไดเรกทอรีอยู่

ในการเพิ่มการrwxอนุญาตกลุ่มคุณควรใช้:

chmod -R g+rwx DirectoryName

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

หากต้องการส่งผลต่อไดเรกทอรีเท่านั้นให้ใช้findแทน:

find DirectoryName -type d -exec chmod g+rwx {} +

( +สัญกรณ์คือ POSIX 2008 แต่ไม่ใช่ทุกระบบของ Unix ที่รองรับแม้ว่า Linux จะทำ)


1
หากคุณใช้ + X (ตัวพิมพ์ใหญ่ X) คุณจะเพิ่มสิทธิ์เรียกใช้งาน (หรือ 'ค้นหา') เท่านั้นหากไฟล์นั้นเป็นไดเรกทอรีหรือมีสิทธิ์ดำเนินการสำหรับผู้ใช้บางคนแล้ว linux.die.net/man/1/chmod
เดฟ

@Dave: chmod +Xรองรับ BSD (Mac OS X) ด้วยเหมือนกัน การพิจารณาอย่างถี่ถ้วนของ POSIX chmodบ่งชี้ว่า+Xเป็นคุณลักษณะ POSIX หลังจากทั้งหมด: สัญลักษณ์ Perm X จะแสดงถึงส่วนของการเรียกใช้ / ค้นหาของบิตโหมดไฟล์ถ้าไฟล์เป็นไดเรกทอรีหรือถ้าบิตโหมดไฟล์ปัจจุบัน (ไม่แปร) มีอย่างน้อยหนึ่งในนั้น ตั้งค่าบิตเรียกใช้งาน (S_IXUSR, S_IXGRP หรือ S_IXOTH) มันจะถูกละเว้นหากไฟล์นั้นไม่ใช่ไดเรกทอรีและไม่มีบิตการดำเนินการตั้งอยู่ในบิตโหมดไฟล์ปัจจุบัน โปรดทราบเหตุผลด้านล่าง
Jonathan Leffler

12

ทุกไฟล์ในระบบไฟล์extมี:

  1. เจ้าของผู้ใช้
  2. กลุ่มเจ้าของ
  3. สิทธิ์สำหรับผู้ใช้กลุ่มนี้และทุกคนอื่น

หากคุณตั้งค่าสิทธิ์กลุ่ม rwx ในไฟล์เฉพาะกลุ่มเจ้าของไฟล์นั้นเท่านั้นที่สามารถอ่าน / เขียน / ดำเนินการได้ อย่างไรก็ตามคุณสามารถเปลี่ยนผู้ใช้และเจ้าของด้วย:

chown username file1 file2 ...
chown -R username somedir
chgrp groupname file1 file2 ....
chgrp -R groupname somedir
chown username:groupname file1 file2 ...

มีการใช้งานที่แตกต่างกันสำหรับสิทธิ์ของระบบแฟ้มขยาย ACLs คือ (รายการควบคุมการเข้าถึง) บน Mac OS X แต่ตั้งแต่ฉันไม่มีผู้เชี่ยวชาญ Linux คุณอาจจะถามในเซิร์ฟเวอร์ผิดพลาดที่


"ดังนั้นหากคุณตั้งค่าสิทธิ์กลุ่ม rwx ในไฟล์เฉพาะกลุ่มเจ้าของไฟล์เท่านั้นที่สามารถอ่าน / เขียน / ดำเนินการได้" ฉันรู้ว่าอาจทำให้เข้าใจผิดก่อนอื่นหากคุณเป็นผู้ใช้ของเจ้าของแน่นอน กฎผู้ใช้ของเจ้าของมีความสำคัญถ้าคุณไม่ใช่ผู้ใช้ของคุณหรือในกลุ่มเจ้าของกฎสำหรับผู้อื่นใช้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.