ฉันจะตั้งค่าอนุญาตการเขียนโดยอัตโนมัติในการติดตั้งไดรฟ์ usb ใน linux ได้อย่างไร


18

เมื่อฉันติดตั้งไดรฟ์ usb ภายนอกบน linux (CentOs4) การอนุญาตจะตั้งค่าเริ่มต้นเป็นอ่านอย่างเดียว เนื่องจากมีผู้ใช้หลายคนในคอมพิวเตอร์ที่ต้องใช้ไดรฟ์ภายนอกฉันต้องการให้ทุกคนมีrwสิทธิ์ใช้งานไดรฟ์ทั้งหมด ฉันต้องการให้พวกเขาสามารถติดตั้งไดรฟ์ได้หากคอมพิวเตอร์ถูกปิดโดยไม่ตั้งใจ พวกเขาสามารถใช้sudo mountในการติดตั้งไดรฟ์ sudo chmodแต่นี้จะให้พวกเขามีสิทธิ์ในการอ่านและผมเห็นได้ชัดว่าไม่ต้องการที่จะช่วยให้

มีการตั้งค่าเริ่มต้นที่ฉันสามารถเปลี่ยนเพื่อให้ดิสก์ usb ภายนอกใหม่ทุกเครื่องได้รับการrwอนุญาตโดยอัตโนมัติหรือไม่

คำตอบ:


17

ในการเปิดใช้งานการเข้าถึง rw ทุกคนคีย์คือ umask = 0 ตัวเลือกในการเมาท์คำสั่ง

sudo mount -o umask=0,uid=nobody,gid=nobody /dev/something /mnt/somewhere

umask = 0 ก็เพียงพอ uid และ gid เพียงเพื่อความชัดเจนดังนั้นคุณจึงไม่เห็นเจ้าของ 'รูต' มากเกินความจำเป็น


คำตอบ @ Tom (การเขียนรายการ / etc / fstab) จะช่วยให้คุณข้ามsudoและถ้าคุณเขียน umask = 0 เป็นตัวเลือกเพิ่มเติมที่นั่นคุณจะได้รับทั้งสองสิ่งที่ดีที่สุด:

มีสิ่งนี้ใน / etc / fstab:

/dev/something /mnt/somewhere auto users,noatime,umask=0 0 0

ให้คุณวิ่งได้

mount /dev/something

และทุกคนสามารถเข้าถึงไฟล์ทั้งหมดได้


นี่คือหมายเหตุทางเทคนิคหากคุณต้องการทราบรายละเอียด:

ตามที่man mountกล่าวไว้ 'umask = 0' จะทำให้แน่ใจว่าไม่มีกฎเพิ่มเติมที่ใช้กับโหมดการเข้าถึงไฟล์ สำหรับระบบไฟล์ FAT (ซึ่งใช้กันอย่างแพร่หลายในดิสก์ USB) จะไม่มีโหมดการเข้าถึงที่เก็บไว้ แต่กระบวนการปัจจุบันของคุณมีค่า umask บางชุดคุณสามารถดูได้หากคุณเรียกใช้เพียงแค่umaskเทอร์มินัล mountใช้เป็นค่าเริ่มต้นและลบโหมดการเข้าถึงของค่า umask ของคุณจากไฟล์ทั้งหมดบนดิสก์ที่ติดตั้ง ค่า umask ที่ใช้กันอย่างแพร่หลายส่วนใหญ่คือ (ฐานแปด) 022 - ไม่มีกลุ่มและการเขียนอื่น ๆ และ 027 - ไม่มีการเขียนกลุ่มไม่มีการเข้าถึงอื่นใด


ฉันได้รับข้อผิดพลาดด้วย 'ตัวเลือกที่ไม่ดี' ถ้าฉันเพิ่มumask=0 0 0เป็นรายการใน fstab - ผู้ร่วมงานumaskจำเป็นต้องเป็นรายการสุดท้ายหรือไม่? อะไรmanaged=0 0 0เข้าทำที่เป็นอยู่ในปัจจุบันที่ผ่านมา?
Jonas

1
FWIW ตัวเลือก umask เป็นตัวเลือก VFAT เท่านั้นเช่นโซลูชันช่วยตราบใดที่หน่วยความจำ USB ใช้ระบบไฟล์ VFAT (ซึ่งไม่ได้เกิดขึ้นกับกรณีของฉัน)
Tomislav Nakic-Alfirevic

2
ขอขอบคุณ. แต่ฉันต้องแก้ไขมันเพื่อให้มันทำงานได้: sudo mount -o umask=0,uid=nobody /dev/something /mnt/somewhereมันทำงานได้โดยไม่ต้องตั้งค่า gid-parameter
Nippey

2

เพิ่มรายการใน / etc / fstab นี่คือรายการที่ฉันเพิ่มเมื่อไม่กี่ชั่วโมงที่ผ่านมาสำหรับไดรฟ์ Seagate USB ของฉัน:

UUID = ข้อผิดพลาด 4ACC734ECC733375 / media / Linux ext3 ข้อผิดพลาด = remount-ro, ค่าเริ่มต้น, ผู้ใช้, เวลากลางคืน, nodiratime 0 0

กุญแจนี่คือรายการ "ผู้ใช้" ที่อนุญาตให้ผู้ใช้เมานต์และ unmount ไดรฟ์

แก้ไข: ใช้งานได้กับไดรฟ์เฉพาะ - ฉันไม่รู้ว่าสามารถเปิดใช้งานไดรฟ์ทั้งหมดที่มีหนึ่งรายการได้หรือไม่


หากผู้ใช้เมาต์ไดรฟ์ผู้ใช้รายอื่นจะได้รับrwอนุญาตด้วยหรือไม่
Jonas

1

ประเภทmount. สิ่งนี้จะทำให้สถานที่ปัจจุบันเป็นที่ นี่คือผลลัพธ์ของฉัน

rick@rick-Main ~ $ mount
/dev/sda4 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/sda6 on /media/DATA1 type vfat (rw,uid=1000,utf8,umask=077)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noexec,nosuid,nodev)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=rick)
/dev/sdf1 on /media/usb0 type vfat (rw,noexec,nodev,sync,noatime,nodiratime)

อันสุดท้ายคือไดรฟ์ usb ของฉันที่ Linux Linux นำมาใช้โดยอัตโนมัติ

ตอนนี้พิมพ์

sudo umount /dev/sdf1

สิ่งนี้จะยกเลิกการต่อเชื่อมไดรฟ์

ตอนนี้เมานต์ใหม่อย่างถูกต้อง

sudo mount -t vfat /dev/sdf1 /media/usb0 -o rw,users,umask=0
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.