ฉันไม่สามารถเขียนไปยังโฟลเดอร์ที่ฉันเป็นสมาชิกอยู่


1

ฉันกำลังพยายามตั้งค่าการเข้าถึงโฟลเดอร์ให้กับกลุ่มเพื่อให้สมาชิกทุกคนในกลุ่มนั้นสามารถสร้าง / แก้ไข / ลบไฟล์ภายในโฟลเดอร์

# create my group and add a member
sudo addgroup dev
sudo adduser martyn dev

ตอนนี้เข้าสู่ระบบในฐานะ "martyn" ตรวจสอบผู้ใช้ของฉันได้รับการเพิ่มในกลุ่ม "dev"

groups martyn
martyn : martyn dev

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

sudo chgrp -R dev myproject

เพียงเพื่อตรวจสอบ:

martyn@localhost:/var/www$ ls -l
total 4
drwxrwxr-x 3 dev dev 4096 May 31 15:53 myproject

ตอนนี้ที่นี่คือที่ที่มันล้มเหลว ฉันต้องการสร้างไฟล์ภายใน myproject (เข้าสู่ระบบในชื่อ "martyn" ซึ่งเป็นสมาชิกของ "dev"):

vi myproject/test

.. แต่เมื่อฉันพยายามบันทึกไฟล์ฉันได้รับข้อผิดพลาดต่อไปนี้:

"myproject/test" E212: Can't open file for writing

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

คำตอบ:


0

คุณสามารถลองเปลี่ยน / ตั้งค่าความเป็นเจ้าของไดเรกทอรีด้วยchownคำสั่งดังนี้:

chown -R dev:dev myproject/

จากนั้นตั้งค่าการอนุญาตด้วยchmodคำสั่ง:

chmod -R 0775 myproject/

สัญลักษณ์0775บิตตั้งค่าโหมดไดเร็กทอรีเป็นrwxrwxr-xซึ่งให้ผู้ใช้devและสมาชิกทั้งหมดของdevกลุ่มrwxสามารถเข้าถึงไดเรกทอรีและไฟล์ได้

ลองนี้แทนchgrpคำสั่ง คุณอาจลองรีบูตเครื่องของคุณในกรณีที่ โชคดี.


ผู้ลงคะแนนอย่างน้อยสามารถทราบว่ามีอะไรผิดปกติกับคำตอบนี้หรือไม่?
arielnmz

ฉันไม่ทราบว่าการลงคะแนนเสียงเป็นอย่างไร แต่คุณก็แก้ไขปัญหาของฉันได้แล้ว ขอบคุณ :)
Martyn

ไม่เป็นไร ฉันดีใจที่ได้ช่วยเหลือเสมอ
arielnmz

0

สิ่งนี้ใช้ได้กับฉันบน Arch Linux:

$ sudo useradd martyn
$ sudo passwd martyn
$ sudo groupadd example 
$ sudo usermod --append --groups example martyn
$ sudo mkdir /var/www /var/www/myproject
$ sudo chgrp example /var/www/myproject
$ sudo chmod g+w /var/www/myproject
$ su - martyn
$ groups
example martyn
$ touch /var/www/myproject/file
$ ls -l /var/www/myproject/file
-rw-r--r-- 1 martyn martyn 0 May 31 11:13 /var/www/myproject/file

แน่ใจหรือไม่ว่าคุณไม่ได้เปิดใช้งาน SELinux (เรียกใช้getenforce)


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