การติดตั้งระบบไฟล์พร้อมชุดรหัสผู้ใช้พิเศษ


19

ฉันต้องการที่จะติดตั้งอุปกรณ์ไปยังไดเรกทอรี/dev/sda3 หลังจากติดตั้งไดเรกทอรีควรมีการโพสต์ของผู้ใช้/foo/bar/baz johndoeดังนั้นฉันจึง:

sudo -u johndoe mkdir /foo/bar/baz
stat -c %U /foo/bar/baz
johndoe

และเพิ่มบรรทัดต่อไปนี้ในของฉัน/etc/fstab:

/dev/sda3 /foo/bar/baz ext4 noexec,noatime,auto,owner,nodev,nosuid,user 0 1

เมื่อตอนที่ผมทำตอนนี้sudo -u johndoe mount /dev/sda3คำสั่งstat -c %U /foo/bar/bazผลในมากกว่าroot johndoeเป็นวิธีที่ดีที่สุดในการติดตั้งระบบไฟล์ ext4 นี้ด้วยjohndoeชุดuid คืออะไร?

คำตอบ:


20

ไม่สามารถบังคับเจ้าของให้ใช้ดิสก์ด้วยระบบไฟล์ ext4 เฉพาะระบบไฟล์ที่ไม่สนับสนุนสิทธิ์ของลินุกซ์เช่นไขมันมีแอตทริบิวต์สำหรับเจ้าของ / groupship: การและuid=value gid=valueดูหน้าคู่มือบนภูเขา

คุณควรเปลี่ยนเจ้าของบนระบบไฟล์ที่เมาท์เช่นเดียวกับใน:

sudo chown johndoe /foo/bar/baz

หากคุณต้องการเปลี่ยนการอนุญาตซ้ำ:

sudo chown -R johndoe /foo/bar/baz

... และหากจำเป็นต้องเปลี่ยนกลุ่มjohndoeเป็น:

sudo chown -R johndoe: /foo/bar/baz

2
การเปลี่ยนความเป็นเจ้าของซ้ำ ๆ เป็นความคิดที่ดีถ้าคุณสามารถช่วยได้ เมื่อคุณลบล้างความเป็นเจ้าของ "ถูกต้อง" แล้วก็ไม่มีวิธีที่จะเอากลับคืนมาได้ง่ายนัก IMO bindfs เป็นวิธีที่ถูกต้องในการจัดการกับปัญหานี้ (ดูคำตอบของฉัน)
Catskul

3
bindfs ฟังดูเหมือนความซับซ้อนอีกชั้นหนึ่ง คำตอบของฉันเหมาะสมที่สุดสำหรับฮาร์ดดิสก์ภายนอก (สำหรับการสำรองข้อมูล) ซึ่งใช้ในการติดตั้งก่อนหน้านี้ด้วย ID ผู้ใช้อื่น ไม่ควรใช้ในสถานการณ์ที่จำเป็นต้องเก็บรหัสผู้ใช้จำนวนมาก (ระบบไฟล์รูท) แต่ในกรณี-uนั้นไม่ควรใช้bindfs ด้วยเนื่องจากจะหลีกเลี่ยงข้อ จำกัด การเข้าถึงจากรหัสผู้ใช้ที่แตกต่างกัน --mapควรใช้หากคุณต้องการสงวนข้อ จำกัด การเข้าถึง
Lekensteyn

1
+1 สำหรับ "มันเป็นไปได้เพียงสิทธิ์น้อย FSs" - ฉันได้รับการพยายามที่จะใช้uidและgidที่จะไม่ทำงาน
mgarciaisaia

19

bindfsคือคำตอบ มันจะใช้ระบบไฟล์ที่เมานต์แล้วและให้มุมมองของมันกับสิ่งที่คุณต้องการ:

sudo apt-get install bindfs
mkdir ~/myUIDdiskFoo
sudo bindfs -u $(id -u) -g $(id -g) /media/diskFoo ~/myUIDdiskFoo

1
bindfs มีโหมดการทำงานอื่น ๆ โปรดดู: bindfs.org/docs/bindfs.1.html
Lekensteyn

2
ฮึมันใช้ FUSE
Navin

ฉันต้องการติดตั้งระบบไฟล์เสมือน 9p ที่มีสิทธิ์ผู้ใช้ที่แตกต่างจากโฮสต์ระบบปฏิบัติการ .. กำลังต่อสู้กับกำแพงที่พยายามทำให้มันเป็นจริง Bindfs ทำให้ฉันหลุดจากการผูก เครื่องมือเล็ก ๆ น้อย ๆ ที่ยอดเยี่ยม!
Boann

6

สมมติว่ากลุ่มที่กำหนดไว้สำหรับไฟล์มีสิทธิ์ที่เหมาะสมคุณควรจะสามารถค้นหาได้ว่าเป็น ID กลุ่ม (GID) และเพิ่มตัวคุณเอง


เพื่อหารหัสกลุ่มของไฟล์, ls -nการใช้งาน ตัวอย่างผลลัพธ์:

drwxr-xr-x 1 1000 1000  550 Jul  9 11:08 Desktop/

คุณต้องการข้อมูลสี่ GID 1000ซึ่งในกรณีของฉันเป็นครั้งที่สอง

sudo addgroup --gid GID foobar; sudo usermod `whoami` -aG foobar

เมื่อคุณเรียกใช้แล้วคุณควรมีบังเหียนเต็มรูปแบบที่เคยมีคุณสมบัติไฟล์สำหรับกลุ่มอนุญาต

ตามที่ระบุไว้ในคำตอบอื่น ๆ ที่เกี่ยวข้องกับการอนุญาตของผู้ใช้หากคุณต้องการแก้ไขกลุ่มในบางไฟล์ให้เรียกใช้หนึ่งในวิธีต่อไปนี้:

sudo chown -R :foobar ./
sudo chgrp -R  foobar ./

1
หมายเหตุหากคุณต้องการสลับผู้ใช้หรือกลุ่มจาก A เป็น B โดยไม่เปลี่ยนความเป็นเจ้าของไฟล์ที่ไม่ใช่ A; คุณสามารถใช้sudo chown --from A B -R ./สำหรับผู้ใช้และsudo chown --from :A :B ./กลุ่ม
LateralFractal
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.