Linux - อุปกรณ์เมานต์ที่มีสิทธิ์ผู้ใช้เฉพาะ


86

ฉันจะติดตั้งอุปกรณ์ที่มีสิทธิ์ผู้ใช้เฉพาะเมื่อเริ่มต้นได้อย่างไร ฉันยังคงมีปัญหาในการหาข้อมูล ผมอยากจะติดตั้งหารด้วยและuid=1000 gid=1000รายการปัจจุบันของฉันไปยัง/etc/fstab/ไฟล์มีลักษณะเช่นนี้:

dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000

อย่าลืม gui = 1,000 นอกจากนี้กรรมสิทธิ์ / สิทธิ์ในการ / var / www คืออะไร ควรเป็นเจ้าของโดย root
skub

1
@skub: เจ้าของ/var/www/คือ root dev /var/www vboxsf rw, suid, dev, exec, auto, nouser, async, uid=1000 gui=1000ใช้งานไม่ได้ดี (อูบุนตูลบรายการหลังจากรีสตาร์ทล้มเหลว)
wowpatrick

2
แหล่งเมานต์ของคุณคือ "dev"
James T Snell

@wowpatrick - อุปกรณ์ที่ติดตั้งของคุณควรเป็นอะไรเช่น / dev / sda1 ไม่ควรเป็น 'dev'
skub

1
@skub: มันเป็นโฟลเดอร์แชร์ของ VirtualBox ดังนั้น / dev นั้นถูกต้อง ฉันคิดออกแล้วตอนนี้sudo mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/wwwทำงานได้ดี
wowpatrick

คำตอบ:


119

ในการเมานต์อุปกรณ์ที่มีสิทธิ์บางอย่างคุณสามารถใช้-o Optionคำสั่งขณะติดตั้งอุปกรณ์ ในการเมานท์อุปกรณ์ที่คุณอธิบายให้เรียกใช้:

 mount -t deviceFileFormat -o umask=filePermissions,gid=ownerGroupID,uid=ownerID /device /mountpoint

ตัวอย่างเช่นการติดตั้งโฟลเดอร์ที่ใช้ร่วมกัน VirtualBox ไป/var/wwwด้วยwww-dataในฐานะเจ้าของจะมีลักษณะเช่นนี้:

mount -t vboxsf -o umask=0022,gid=33,uid=33 dev /var/www

หากคุณต้องการติดตั้งอุปกรณ์เมื่อเริ่มต้นคุณสามารถเพิ่มรายการต่อไปนี้ใน/etc/fstabไฟล์ของคุณ:

 /device /mountpoint deviceFileFormat umask=filePermissions,gid=ownerGroupID,uid=ownerUserID

อีกครั้งด้วยตัวอย่างเดียวกันรายการไปยัง/etc/fstabไฟล์จะมีลักษณะเช่นนี้:

dev /var/www vboxsf umask=0022,gid=33,uid=33

สำหรับระบบไฟล์ที่ไม่รองรับการติดตั้งในฐานะผู้ใช้เฉพาะ (เช่น ext4) ข้อมูลด้านบนจะให้ข้อผิดพลาด

Unrecognized mount option "uid=33" or missing value

หากต้องการเปลี่ยนเจ้าของการเมานต์ ext4 เพียงแค่เรียกใช้

chown username /mountpoint

หลังจากติดตั้งแล้ว


ฉันสามารถใช้ตัวเลือก uid / gid บน ext4
CMCDragonkai

ดูเหมือนจะไม่ทำงานกับ mount - ผูกฉันใช้ระบบไฟล์
btrfs

umask ไม่ควรumask=0077แทนที่จะumask=0022ให้สิทธิ์เจ้าของเท่านั้นที่จะอ่านหรือเขียน? ดูเหมือนว่าumask=0022จะให้สิทธิ์การอ่านแก่ผู้อื่นหากฉันอ่านอย่างถูกต้อง ฉันต้องการให้ผู้ใช้ที่เมานต์ดิสก์เท่านั้นที่มีสิทธิ์อ่านหรือเขียน
Mian Asbat Ahmad

3

สำหรับระบบไฟล์เช่น ext3 หรือ ext4 หลังจากทำ

    chown -R username:group /mountpoint

หากต้องการเปลี่ยนเจ้าของไฟล์ที่มีอยู่ในปัจจุบันคุณสามารถตั้งค่า bit id กลุ่มให้สร้างไฟล์ใหม่ด้วยกลุ่มเฉพาะ (ไม่ทำงานกับ id ผู้ใช้ภายใต้ Linux):

    find /mountpoint -type d -exec chmod g+ws {} \;

รายการวิกิพีเดีย setuid และ setgid เป็นข้อมูลที่ค่อนข้างดูส่วนที่เกี่ยวกับไดเรกทอรี


17
การเปลี่ยนความเป็นเจ้าของไฟล์ทั้งหมดในอุปกรณ์นั้นเป็นสิ่งที่รุกรานมาก เนื่องจากมี-oตัวเลือกสำหรับการเมานต์จึงเป็นวิธีที่ดีกว่า
การชดเชย จำกัด

6
-oขออภัยที่ใช้งานไม่ได้กับ ext4 ดังที่อธิบายไว้ในคำตอบโดย @wowpatrick
js

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

อุปกรณ์ที่ต้องสงสัยคือ / dev / www มันเป็นเรื่องง่ายที่จะควบคุมว่าแอปพลิเคชันใดเข้าถึงได้ (อาจเป็นเพียงเซิร์ฟเวอร์ WWW ซึ่งคุณสามารถปิดได้ในระหว่างการดำเนินการ) แม้ว่าแอปที่ใช้แอปยังทำงานอยู่ แต่แอปจะยังคงทำงานต่อเนื่องจากเป็นจุดของการดำเนินการ
js
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.