สิทธิ์อนุญาตถูกปฏิเสธเพื่อเปลี่ยน gid (กลุ่ม) ของไฟล์ที่ฉันเป็นเจ้าของ


17

ดูเหมือนว่าฉันยังคงพลาดบางสิ่งเกี่ยวกับวิธีการทำงานของการอนุญาต ฉันอยู่ในระบบเดเบียน 7 btw ตอนนี้ฉันมีไฟล์ที่ฉันดาวน์โหลดและมันเป็นของมันmyuser:myuserนั่นคือทั้งผู้ใช้และกลุ่มถูกตั้งค่าให้ฉัน มันยังอยู่ใน$HOMEไดเรกทอรีของฉันตั้งแต่ที่ฉันดาวน์โหลดมา

จนถึงตอนนี้ดีมาก ตอนนี้ฉันต้องการแชร์ไฟล์นี้กับผู้ใช้อื่น ๆ ของพีซีและสำหรับฉันต้องการเปลี่ยนความเป็นเจ้าของกลุ่มของไฟล์เป็น "ผู้ใช้" ของกลุ่ม อย่างไรก็ตามที่ล้มเหลว:

nass@quarx:~/xmas_carol$ chgrp -R users * 
chgrp: changing group of movie.mov': Operation not permitted

และเนื้อหาของโฟลเดอร์คือ:

-rwxr-xr-x 1 nass nass 2482411461 Feb  6 03:57 movie.mov

ฉันกำลังสับสนเกี่ยวกับสิ่งที่เกิดขึ้นกับสิทธิ์ บางคนสามารถอธิบายได้


เป็น/xmas_carolsamba / NFS ติด?
ราหุลปาติล

วิธีแก้ไขคือsetfacl(หากระบบไฟล์มี ACL) ดูunix.stackexchange.com/questions/101263/ …
ctrl-alt-delor

ฉันมีข้อผิดพลาดเดียวกันจนกระทั่งฉันตระหนักว่าฉันเพิ่งเพิ่มตัวเองในกลุ่มนั้น กล่าวอีกนัยหนึ่งฉันต้องออกจากระบบเข้าสู่ระบบอีกครั้งเพื่อให้การเปลี่ยนแปลงมีผล
Jonathan

คำตอบ:


22

ผู้ใช้ของคุณอาจไม่ใช่สมาชิกของusersกลุ่มดังนั้นคุณไม่มีสิทธิ์ที่จะให้ไฟล์กับกลุ่มนั้น เพื่อแสดง:

$ groups
terdon sudo netdev fuse vboxsf vboxusers

$ ls -l file
-rw-r--r-- 1 terdon terdon 604 Feb  6 03:04 file
$ chgrp users file
chgrp: changing group of ‘file’: Operation not permitted
$ chgrp vboxusers file
$ ls -l file
-rw-r--r-- 1 terdon vboxusers 604 Feb  6 03:04 file

ลักษณะการทำงานนี้ถูกกล่าวถึงในรายละเอียด POSIX :

เฉพาะเจ้าของไฟล์หรือผู้ใช้ที่มีสิทธิ์ที่เหมาะสมเท่านั้นที่สามารถเปลี่ยนเจ้าของหรือกลุ่มของไฟล์

การใช้งานบางอย่าง จำกัด การใช้ chgrp ให้กับผู้ใช้ที่มีสิทธิ์ที่เหมาะสมเมื่อกลุ่มที่ระบุไม่ใช่รหัสกลุ่มที่มีประสิทธิภาพหรือรหัสกลุ่มเสริมหนึ่งในกระบวนการเรียก

สาเหตุหลักของเรื่องนี้คือหากคุณไม่ได้เป็นสมาชิกของกลุ่มคุณไม่ควรแก้ไขสิ่งที่กลุ่มนั้นมีการเข้าถึง คำตอบเกี่ยวกับการchownอนุญาตนี้เกี่ยวข้องด้วย

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

อย่างไรก็ตามเนื่องจากนั่นไม่ใช่วิธีที่ดิสทริบิวชันพื้นฐานของเดเบียนตั้งขึ้นในวันนี้วิธีที่จะให้สิทธิ์การเข้าถึงไฟล์ของผู้ใช้เฉพาะแก่ผู้ใช้

  1. เปลี่ยนความเป็นเจ้าของกลุ่มของไฟล์ / ไดเรกทอรีเป็นกลุ่มที่ทั้งคุณและผู้ใช้รายอื่นเป็นสมาชิก

  2. เพียงแค่เปลี่ยนการอนุญาตของไฟล์ / ไดเรกทอรีตาม:

    $ chmod 755 /home/terdon
    $ ls -ld /home/terdon
    drwxr-xr-x 170 terdon terdon 491520 Apr 20 13:43 /home/terdon/
    

    ที่จะทำให้ทุกคนสามารถเข้าถึงไดเรกทอรีได้


4

ใน UNICes ล่าสุด (และ "ล่าสุด" มีความหมายค่อนข้างกว้างที่นี่) คุณไม่สามารถเปลี่ยนความเป็นเจ้าของกลุ่มของไฟล์เป็นกลุ่มที่คุณไม่ได้เป็นสมาชิก รสชาติดั้งเดิมของ UNIX รุ่นต่าง ๆ รองรับสิ่งนี้สำหรับการใช้งานเช่นของคุณ แต่มันพิสูจน์แล้วว่าเป็นปัญหาด้านความปลอดภัย

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

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

วิธีอื่นที่ไม่ต้องการทำให้ไฟล์เป็นไฟล์ที่เขียนได้ทั่วโลกในสิ่งที่ไม่ต้องการแน่นอนคือการใช้ ACLs เพื่อให้สิทธิ์ในการอ่านและเขียนกลุ่มที่ต้องการ:

$ setfacl -m group:thegroupsname:rwx the_file(s)

คุณไม่ต้องให้เอ็กซีคิวท์ (ในไฟล์ปกติ) และอาจไม่ต้องการให้สิทธิ์เขียน
ctrl-alt-delor

2

อาจเป็นเพราะบิตที่เปลี่ยนไม่ได้ถูกตั้งค่า รับรายการแอ็ตทริบิวต์ไฟล์ที่กำลังทำงาน

lsattr /path/to/your/file

ถ้าฉันปรากฏขึ้นจากนั้นแอตทริบิวต์ที่ไม่เปลี่ยนรูปจะถูกตั้งค่าและไม่มีใครสามารถแก้ไขไฟล์ได้ (แม้กระทั่งรูท)

ในการลบแอททริบิวคุณต้องเรียกใช้ในฐานะรูท

chattr -i /path/to/your/file

หากต้องการดูแอททริบิวของระบบไฟล์เพิ่มเติมอ่าน man pages

man chattr
man lsattr

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

0

หากคุณเพิ่มตัวเองในกลุ่มทันทีให้ออกจากระบบลงชื่อเข้าใช้อีกครั้งเพื่อให้แน่ใจว่าการเปลี่ยนแปลงมีผล

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