วิธีการตั้งค่าการอนุญาตเริ่มต้นสำหรับไดรฟ์ FAT โดยอัตโนมัติใน Ubuntu 9.10


17

ฉันมีไดรฟ์ FAT32 จำนวนมากที่ฉันต้องการติดตั้งใน Ubuntu เช่นที่พวกเขามีโหมดการอนุญาต 700 สำหรับไดเรกทอรีและ 600 สำหรับไฟล์อื่น ๆ ทั้งหมด โดยค่าเริ่มต้นพวกเขามี 755 สำหรับไฟล์ทั้งหมดซึ่งไม่เป็นประโยชน์โดยเฉพาะอย่างยิ่งเนื่องจากเกือบจะไม่มีไดเรกทอรีที่ไม่ควรจะปฏิบัติและมันกรูขึ้น repos ควบคุมรุ่นโฮสต์บนไดรฟ์

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

ฉันได้ลองเปลี่ยนคีย์ / system / storage / default_options / vfat / mount_options gconf โดยไม่มีผลกระทบใด ๆ มันเป็น 077 ในตอนแรก แต่ไดรฟ์ที่ติดตั้งนั้นสะท้อนถึงค่าเริ่มต้นที่ 022; เปลี่ยนและใส่ไดรฟ์อีกครั้งส่งผลให้ไฟล์ยังคงมีบิตสิทธิ์ 755


ฮะ. คิดว่าชื่อผู้ใช้ของคุณดูคุ้นเคย ฉันใช้ mutagen มาหลายปีแล้ว ยินดีต้อนรับสู่ Super User :)
ต้มตุ๋น quixote

คุณใช้ Ubuntu รุ่นไหนอยู่ ฉันถือว่า Karmic แต่คุณอาจกำลังพูดถึง Lucid RC หรือแม้แต่บางอย่างก่อนหน้านี้
ต้มตุ๋น quixote

ชี้แจงในหัวข้อ ฉันหวังว่ามันจะไม่สำคัญเพราะฉันมีการติดตั้งที่เก่ากว่าและบางอย่างเช่นการติดตั้งไม่ควรเปลี่ยนทุก ๆ หกเดือนที่เกิดขึ้นจริง

น่าเสียดายที่เนื้อหาของ HAL ผ่านการเปลี่ยนแปลงเล็กน้อยในเวอร์ชั่นล่าสุด 9.04 และก่อนหน้านี้อาจเหมือนกัน วิธีแก้ปัญหาบางอย่างอาจมีผลกับทุกคน แต่ 9.10 ใช้ DeviceKit และ HAL ถูกคัดค้าน ฉันไม่เชื่อถือสิ่ง DBus / HAL / DeviceKit ใด ๆ ที่จะอยู่ที่มั่นคงในขณะนี้
ต้มตุ๋น quixote

1
ความคิดเห็นจากpagin : ฉันคิดว่าปัญหาพื้นฐานมากขึ้น: ฉันต้องการแก้ไข umask สำหรับ automounting โดยไม่คำนึงถึงว่าอุปกรณ์ใดเชื่อมต่อกับคอมพิวเตอร์ นั่นคือถ้าเพื่อนคนหนึ่งของฉันแวะไปกับ usb stick ของเขาและฉันต้องการเพียงแค่คัดลอกไฟล์บางส่วนจากไฟล์นี้ฉันต้องการให้พวกเขาถ่ายโอนโดยอัตโนมัติในรูปแบบ chmod 750 ไม่ใช่ 000 หรือ 777, 770 หรืออะไรก็ตาม มีจริงๆควรจะเป็นตัวเลือกที่ใดที่หนึ่งในการกำหนดค่านี้ ...
นักต้มตุ๋น Quixote

คำตอบ:


7

อัปเดต
น่าเสียดายที่ไม่มีวิธีการติดตั้งในตัว "วิธีที่ถูกต้อง" วิธีที่ได้รับการสนับสนุนคือการตั้งค่าบรรทัด/ etc / fstabด้วยตัวเลือกการเมาท์เริ่มต้นที่คุณต้องการ ซึ่งหมายความว่าค่าเริ่มต้นของคุณจะต้องตั้งค่าต่ออุปกรณ์แม้ว่าคุณสามารถใช้ป้ายชื่อพาร์ติชันหรือ UUID เพื่อหลีกเลี่ยงการต้องใช้เส้นทางอุปกรณ์ที่เฉพาะเจาะจง โดยเฉพาะอย่างยิ่งวิธีการนี้ดูเหมือนจะเกิดขึ้นก่อนการอนุญาตเดสก์ท็อป PolicyKit

ฟอรัม Ubuntu, LaunchpadและBugzilla ของ Gnomeมีโพสต์มากมายจากผู้ใช้ที่กำลังมองหาฟังก์ชั่นเดียวกับที่คุณต้องการทั้ง NTFS และ FAT32 Ubuntu 9.10 และ 10.04 จัดเตรียมการเริ่มต้นอัตโนมัติผ่านการรวมอุปกรณ์ DeviceKit-Disks, GVFS และ Nautilus

DeviceKit-disks จัดเตรียมอินเตอร์เฟสFilesystemMountซึ่งอาร์กิวเมนต์ตัวเลือกดูเหมือนจะเป็นวิธีที่เหมาะสมในการกำหนดค่าตัวเลือกการเมานท์ของคุณ แต่ GVFS / Nautilus ไม่ปรากฏว่ามีวิธีการใด ๆ ผ่านทาง UI หรือไฟล์กำหนดค่าเพื่อระบุตัวเลือกนี้เมื่อทำการเมาท์ USB แบบอัตโนมัติ

มีวิธีแก้ไขปัญหาสองสามประการ:

  • ข้อผิดพลาดนี้ Launchpadมีแพทช์ที่ผู้ใช้ให้ที่ alters ค่าเริ่มต้น DeviceKit-ดิสก์ในที่สร้างขึ้นเองdevicekit ดิสก์แพคเกจ

    ในด้านบวกนี่อาจเป็นวิธีที่ง่ายที่สุดในการตั้งค่าเริ่มต้นที่คุณต้องการสำหรับอุปกรณ์ทั้งหมด ข้อเสียคือคุณจะต้องจัดส่งใหม่อีกครั้งเมื่อมีการอัพเดทแพ็คเกจ

  • หนึ่งฟอรัม Ubuntu โพสต์เสนอสคริปต์การแก้ปัญหาเฉพาะอุปกรณ์:

    #!/bin/bash
    devkit-disks --unmount /dev/disk/by-uuid/0D3594370C618A2A
    devkit-disks --mount-options "dmask=000" --mount /dev/disk/by-uuid/0D3594370C618A2A
    

    นอกจากนี้ยังเป็นสิ่งที่ดีที่สุดย่อยเนื่องจากคุณต้องอัปเดตสิ่งนี้ด้วยอุปกรณ์เฉพาะ แต่จะหลีกเลี่ยงปัญหาการอนุญาตที่โซลูชันfstabได้รับการสนับสนุน


แสดงความคิดเห็นโดยRndmerle : ในฐานะโน้ตข้างบน Ubuntu Lucid (10.4) คำสั่ง devkit-disks ถูกแทนที่ด้วย / usr / bin / udisks
quack quixote

วิธีแก้ปัญหานี้ด้วย udisks --unmount เป็นต้นใช้ได้กับ umask และ dmask เท่านั้น ไม่อนุญาตตัวเลือกอื่น ๆ เนื่องจากคุณสามารถเดาได้จากแพตช์ที่คุณลิงก์
user39559

1

นี่คือสาย fstab ของฉันสำหรับการติด usb ของฉันเพื่อติดตั้งด้วยสิทธิ์ที่เหมาะสมสำหรับคีย์ ssh ส่วนตัว (fmask = 177) การทดลองและข้อผิดพลาดแจ้งฉันฉันต้องเพิ่มตัวเลือก 'ผู้ใช้' เพื่อให้ automount ทำงาน

/dev/disk/by-uuid/C2F8-E4F2  /media/TIM_ABELL  vfat  rw,user,nosuid,nodev,dmask=0077,flush,fmask=177

ฉันต้องสร้างจุดเชื่อมต่อซึ่งก่อนหน้านี้เป็นแบบอัตโนมัติ:

mkdir /media/TIM_ABELL

ดิสก์ uuid สามารถพบได้โดยเสียบในดิสก์และทำงาน

mount
ls -l /dev/disk/by-uuid/

ซึ่งจะช่วยให้คุณได้รับจุดเชื่อมต่อ -> อุปกรณ์ -> การทำแผนที่ uuid


1
แทนการใช้เต็มรูปแบบเส้นทาง/ dev / ดิสก์ / โดย uuid / FOOหรือ/ dev / ดิสก์ / โดยป้ายชื่อ / FOOคุณสามารถใช้ไวยากรณ์ทางลัดหรือUUID=FOO LABEL=FOO
ต้มตุ๋น quixote

0

คุณลองใช้วิธีการแบบเก่า / etc / fstab หรือไม่? มันใช้งานได้สำหรับฉัน Ubuntu ใช้ fstab ไม่ว่าจะเป็น HAL automounter หรือไม่


2
ฉันจะใส่อะไรใน / etc / fstab เพื่อให้ไดรฟ์ FAT ทั้งหมดติดตั้งเช่นนั้น ประเด็นของฉันไม่ใช่ว่า "ฉันสามารถทำสิ่งนี้ได้กับ fstab" (ฉันทำไม่ได้) มันคือ "สิ่งนี้ไม่ได้เกิดขึ้นภายใต้รูปแบบ fstab เพราะมันไม่ติดอะไรเลยเว้นแต่ฉันจะบอกให้"

0

ฉันใช้สคริปต์ทุบตีและออกมาพร้อมกับสคริปต์ที่ได้รับการปรับปรุงซึ่งโพสต์ไว้ด้านบน:

#!/bin/bash
dev_path="/dev/disk/by-id"
usb_drives=$(find $dev_path -name "usb*")
mount_options="utf8=0,codepage=850,iocharset=iso8859-1"

for dev in $usb_drives ; do
  if ( devkit-disks --show-info $dev | \
       grep "is mounted:" | grep -q 1 ) ; then
    devkit-disks --unmount $dev
    devkit-disks --mount $dev \
      --mount-options $mount_options
  fi
done

พบว่าอุปกรณ์ทุกชิ้นที่เชื่อมต่อด้วย USB (หวังว่าอุปกรณ์ pendrives ทั้งหมด) ซึ่งติดตั้งอยู่แล้วและติดตั้งใหม่โดยใช้ mount_options (ในกรณีของฉันให้ใช้ iso-8859-1 charset เพื่อความเข้ากันได้กับระบบปฏิบัติการอื่น ๆ ที่ จำกัด )


3
จะเกิดอะไรขึ้นหากคุณต่อปลั๊ก ext4 USB มันจะใช้มาสก์และตัวเลือกอื่น ๆ ที่คุณต้องการ (และเหมาะสมเท่านั้น) สำหรับ FAT หรือไม่
user39559

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