อนุญาตให้กลุ่มอนุญาต แต่ยังคงได้รับอนุญาตปฏิเสธ


43

ฉันมีพาร์ทิชัน ext4 และฉันได้ตั้งเจ้าของกลุ่มสำหรับไดเรกทอรีย่อยทั้งหมดเป็น mygroup:

# chgrp -R mygroup /mount/abc
# chmod -R g+swrx /mount/abc

ผู้ใช้ของฉันเป็นส่วนหนึ่งของกลุ่มนั้น ภายในพาร์ติชั่นนั้นเป็นโฟลเดอร์ที่เป็นของผู้ใช้ 'ไม่มีใคร' และตอนนี้โดยกลุ่ม 'mygroup' ผู้ใช้ของฉันเป็นส่วนหนึ่งของ 'mygroup' นี่คือ ls -l:

myuser@host:/mount/abc/folder$ ls -l
drwxr-sr-x 2 nobody      mygroup      4096 Apr 25 12:08 ./
drwxrwsrwx 6 nobody      mygroup      4096 Apr 24 07:57 ../
-rw-r-xr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

myuser@host:/mount/abc/folder$ groups myuser
myuser : mygroup {... a list of other groups also...} 

myuser@host:/mount/abc/folder$ rm test.png 
rm: remove write-protected regular file ‘test.png’? y
rm: cannot remove ‘test.png’: Permission denied

myuser@host:/mount/abc/folder$ touch test.txt
touch: cannot touch ‘test.txt’: Permission denied

โปรดทราบว่าฉันไม่สามารถลบหรือสร้างไฟล์ที่เป็นของกลุ่มที่ผู้ใช้ของฉันเป็นส่วนหนึ่ง

ฉันเดาว่าฉันไม่เข้าใจวิธีการทำงานของกลุ่ม ฉันคิดว่าถ้าคุณเป็นส่วนหนึ่งของกลุ่มคุณจะได้รับอนุญาตจากกลุ่มนั้น ฉันกำลังทำอะไรผิดหรือเปล่า?

ขอบคุณ


ดูเหมือนว่าสิทธิ์สามคือเจ้าของกลุ่มโลก ด้านบนคุณจะเห็น drwxr-sr-x สำหรับไดเรกทอรี ดังนั้นการอนุญาตของกลุ่มคือ rs ดูเหมือนว่า chmod -R ไม่ได้ตั้งค่าการอนุญาตซ้ำ ๆ ให้เป็น rwx เมื่อฉันพลิกบิตเพื่อขออนุญาตกลุ่มของโฟลเดอร์มันใช้งานได้
ความโกลาหล

คำตอบ:


68

คุณเพิ่งเพิ่มผู้ใช้รายนั้นในกลุ่มนั้นโดยไม่ต้องออกจากระบบหรือไม่? จากนั้น "กลุ่ม" จะแสดงกลุ่ม แต่ผู้ใช้ยังไม่มีสิทธิ์กลุ่ม

คุณสามารถแสดงกลุ่มที่มีประสิทธิภาพของคุณโดยใช้

$ id

ตัวอย่างเช่นถ้าฉันเพิ่มผู้ใช้ของฉันpsไปยังกลุ่มfaxแล้วพิมพ์

$ id

มันไม่ได้แสดงกลุ่มfaxแต่

$ groups ps

faxแสดงให้เห็นว่า

การดำเนินการsuกับผู้ใช้ของคุณเองจะช่วยให้คุณสามารถติดต่อกลุ่มใหม่ได้:

$ su ps
$ id

faxการส่งออกในขณะนี้นอกจากนี้ยังมี


1
สิ่งนี้มีประโยชน์มากที่จะรู้ โดยเฉพาะส่วน 'sudo <username>'
ความโกลาหล

3
เข้าสู่ระบบ / ออกเห็นได้ชัดว่าฉันพลาดจุดขอบคุณมากเพื่อน!
nicolallias

1
@ peschüฉันมีsudoและใช้เป็นประจำ ข้อผิดพลาดที่ฉันแสดงให้เห็นว่าคุณกำลังบ่นว่าคำสั่งubuntu(เช่นชื่อผู้ใช้) ไม่ใช่คำสั่งที่รู้จัก ฉันไม่คิดว่าคำแนะนำของคุณนั้นถูกต้องทางวากยสัมพันธ์ - บางทีมันอาจใช้งานได้ในกรณีของคุณเพราะpsเกิดขึ้นเป็นคำสั่งเช่นเดียวกับชื่อผู้ใช้
beldaz

1
@beldaz โอ้ไม่! คุณพูดถูก! su <username>ไวยากรณ์ที่ถูกต้องคือ ฉันแก้ไขโพสต์แล้ว
peschü

1
แช่งเก่าออกจากระบบ / เข้าสู่ระบบทำงานอีกครั้งทุกครั้ง
Steampunkery

8

วิธีการที่คุณใช้ดูเหมือนว่าถูกต้อง ตอนนี้ฉันพยายามทำซ้ำและมันก็ใช้ได้ดี

ฉันไม่แน่ใจว่ามีการพิมพ์ผิดหรือไม่ แต่มีปัญหาเล็กน้อยกับคำสั่ง ไม่จำเป็นต้องพูดถึง "mygroup" ในนั้น ผลงานดังต่อไปนี้

# chmod -R g+swrx /mount/abc

แม้คุณสามารถเอาบิตเพียงแค่ทำs g+rwxหลังจากคุณเปลี่ยนการอนุญาตแล้วคุณls -lควรจะแสดงสิทธิ์ที่เกี่ยวข้อง


2
ฉันพิมพ์ผิดด้วยชื่อกลุ่ม ไดเร็กทอรีมีสิทธิ์ wrx เมื่อคุณใช้ ls -l และไม่มีใครเป็นเจ้าของ: mygroup แม้ว่า myuser เป็นส่วนหนึ่งของ mygroup แต่ myuser ก็ยังไม่สามารถสร้าง / ลบไฟล์ได้ ฉันหวังว่ามันสมเหตุสมผล
ความโกลาหล

2

ไดเรกทอรีต้องการชุด x บิต (สำหรับไดเรกทอรีที่บิตถูกมองว่าเป็นบิตการค้นหา) เพื่อเปิด ดังนั้นฉันจึงใช้ tree ดังนั้นฉันจะได้รับชุดโฟลเดอร์เท่านั้นและหลีกเลี่ยงฝันร้ายที่มีไฟล์ทั้งหมดที่ตั้งค่าเป็นไฟล์เรียกทำงาน (ตัวเลือกสำหรับ tree คือ -d List directories only.):

sudo tree -faid /mount/abc | xargs -L1 -I{} sudo chmod 755  "{}"

คำเตือน !!! คุณควรนำสิ่งนี้ไปพิจารณา:

  • การใช้ chmod หรือ chown ซ้ำใน/ไดเรกทอรีรากหรือไดเรกทอรีระบบจะทำลายระบบปฏิบัติการของคุณ (จริง ๆ แล้วสิ่งที่เกิดซ้ำใน/ไดเรกทอรีหรือไดเรกทอรีระบบเป็นอันตราย)

  • นี่ไม่ใช่วิธีปฏิบัติด้านความปลอดภัยที่ดีในการตั้งค่าการอนุญาตเป็นกลุ่ม


1
ขอบคุณมาก! คำว่า "ไดเรกทอรีต้องการชุด x บิต" แก้ไขปัญหาของฉัน! ฉันทำ "sudo chmod g + x <พาเรนต์พาเรน dir>" และใช้งานได้
kinORnirvana

2

คุณไม่สามารถลบไฟล์ได้เนื่องจากกลุ่มmygroupไม่ได้รับอนุญาตให้เขียนไฟล์test.pngและโฟลเดอร์ สำหรับการดำเนินการเขียนเพื่อทำงานกับไฟล์สิทธิ์ของไฟล์ควรมีลักษณะดังนี้:

-rw-rwxr-- 1 otheruser   mygroup    159539 Apr 23 23:44 test.png*

หากคุณพิจารณารูปแบบการอนุญาตให้ละเอียดยิ่งขึ้น

duuugggooo

ตัวยึดสามตัวแรกuuuคือ user r ead, w rite และ e x ecute อีกสามตัวยึดตำแหน่งgggสำหรับกลุ่มและoooสำหรับคนอื่น ๆ ในตัวอย่างข้อมูลที่โพสต์โดยกลุ่ม OP ไม่มีสิทธิ์ในการทำพิธีw


1

หากต้องการเพิ่มคำตอบที่ยอมรับ (เนื่องจากฉันยังไม่สามารถแสดงความคิดเห็นได้):

หากคุณใช้ซอฟต์แวร์เช่น BitVise เพื่อสร้างการเชื่อมต่อ SSH ไปยังเซิร์ฟเวอร์ของคุณเพียงแค่ปิด & เปิดเทอร์มินัลใหม่จะไม่นับเป็นการเข้าสู่ระบบ & ออก มันจะทำสิ่งต่าง ๆ เช่นโหลดของคุณใหม่~/.bashrcแต่ไม่ทำการอัปเดตกลุ่มจริง (ถ้าคุณเพิ่มกลุ่มในเซสชัน "เข้าสู่ระบบ" ของคุณ) เพื่อให้มีผลบังคับใช้คุณจะต้องออกจากระบบและลงชื่อเข้าใช้อีกครั้งด้วย SSH-key / หนังสือรับรองของคุณ

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