Làm cách nào để đặt quyền mặc định cho các ổ đĩa FAT được tự động hóa trong Ubuntu 9.10?


17

Tôi đã có nhiều ổ đĩa FAT32 mà tôi muốn gắn vào Ubuntu để chúng có chế độ cấp phép 700 cho các thư mục và 600 cho tất cả các tệp khác. Theo mặc định, chúng có 755 cho tất cả các tệp, điều này không đặc biệt hữu ích vì hầu như không có thư mục nào có thể thực thi được và nó làm hỏng các repos kiểm soát phiên bản được lưu trữ trên các ổ đĩa.

"Quay lại trong ngày" Tôi sẽ có các ổ đĩa được liệt kê trong / etc / fstab với umask / dmask tôi muốn và không có thứ gọi là mặc định. Những ngày này, ổ tự động dưới tên khối lượng của họ. Điều này thật tuyệt, ngoại trừ bây giờ tôi không biết làm thế nào để thiết lập mặc định.

Tôi đã thử thay đổi khóa gconf / system / Storage / default_options / vfat / mount_options mà không có hiệu lực rõ ràng. Đó là 077 ban đầu nhưng ổ đĩa được gắn phản ánh mặc định là 022; thay đổi nó và chèn lại các ổ đĩa dẫn đến các tệp vẫn có bit cho phép là 755.


Huh. nghĩ rằng tên người dùng của bạn trông quen thuộc. Tôi đã sử dụng mutagen trong nhiều năm. Chào mừng đến với Siêu người dùng. :)
quack quixote

Ngoài ra, bạn đang sử dụng phiên bản nào của Ubuntu? Tôi sẽ giả sử Karmic, nhưng bạn có thể đang nói về Lucid RC, hoặc thậm chí là một cái gì đó sớm hơn.
quack quixote

Làm rõ trong tiêu đề. Tôi đã hy vọng nó không thành vấn đề, vì tôi có một số cài đặt cũ hơn, và một cái gì đó như lắp đặt không nên thay đổi sau mỗi sáu tháng.

Thật không may, công cụ HAL đã trải qua khá nhiều thay đổi trong các phiên bản gần đây. 9.04 và trước đó có lẽ giống nhau; một số giải pháp có thể áp dụng cho tất cả; nhưng 9.10 sử dụng DeviceKit và HAL không được chấp nhận. Tôi không tin tưởng bất kỳ công cụ DBus / HAL / DeviceKit nào để ổn định vào lúc này.
quack quixote

1
nhận xét từ pagin : Tôi nghĩ vấn đề này cơ bản hơn nhiều: Tôi muốn sửa đổi ô để tự động hóa bất kể thiết bị nào kết nối với máy tính. Tức là nếu một người bạn của tôi ghé qua bằng thanh usb của anh ấy và tôi chỉ muốn sao chép một số tệp từ tệp này, tôi muốn chúng tự động được chuyển dưới dạng chmod 750, không phải 000 hoặc 777, 770 hoặc bất cứ điều gì. Thực sự cần có một tùy chọn ở đâu đó để định cấu hình này ...
quack quixote

Câu trả lời:


7


Thật không may cập nhật không có phương tiện tích hợp để làm điều này. "Đúng cách", cách được hỗ trợ , đang đặt một dòng / etc / fstab với các tùy chọn gắn kết mặc định mà bạn muốn. Điều này có nghĩa là mặc định của bạn phải được đặt cho mỗi thiết bị, mặc dù bạn có thể sử dụng nhãn phân vùng hoặc UUID để tránh yêu cầu đường dẫn thiết bị cụ thể. Đặc biệt, phương pháp này dường như diễn ra trước ủy quyền của máy tính để bàn PolicyKit.

Các diễn đàn Ubuntu, LaunchpadGnome của Gnome có nhiều bài đăng từ người dùng đang tìm kiếm cùng chức năng mà bạn đang tìm kiếm, trên cả NTFS và FAT32. Ubuntu 9.10 và 10.04 cung cấp tính năng tự động mặc định thông qua sự kết hợp của DeviceKit-Disks, GVFS và Nautilus.

DeviceKit-đĩa cung cấp giao diện FilesystemMount có đối số tùy chọn dường như là cách thích hợp để định cấu hình tùy chọn gắn kết của bạn. Nhưng GVFS / Nautilus dường như không cung cấp bất kỳ phương tiện nào, thông qua UI hoặc tệp cấu hình, để chỉ định tùy chọn này khi tự động kết nối khóa USB.

Có một vài cách giải quyết:

  • Lỗi Launchpad này chứa một bản vá do người dùng cung cấp làm thay đổi mặc định DeviceKit-Disks trong gói đĩa bộ công cụ được xây dựng tùy chỉnh .

    Về mặt tích cực, đây có thể là cách dễ nhất để đặt mặc định ưa thích của bạn cho tất cả các thiết bị. Nhược điểm là bạn sẽ cần phải sửa lại một lần nữa khi gói được cập nhật.

  • Một bài đăng trên Diễn đàn Ubuntu đề xuất một kịch bản giải pháp dành riêng cho thiết bị :

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

    Điều này cũng không tối ưu, vì bạn phải cập nhật thông tin này với các thiết bị cụ thể. Nhưng nó tránh được vấn đề ủy quyền mà giải pháp fstab được hỗ trợ có thể có.


nhận xét của Rndmerle : Như một lưu ý phụ, trên Ubuntu Lucid (10,4), lệnh devkit-đĩa đã được thay thế bằng / usr / bin / udisks
quack quixote

Cách giải quyết này với udisks --unmount, v.v., chỉ hoạt động cho umask và dmask. Các tùy chọn khác không được phép vì bạn có thể đoán từ bản vá bạn đã liên kết.
dùng39559

1

Đây là dòng fstab của tôi để có được thanh USB của tôi để gắn kết với các quyền phù hợp với khóa ssh riêng (fmask = 177). Bản dùng thử và lỗi thông báo cho tôi rằng tôi phải thêm tùy chọn 'người dùng' để tự động hoạt động.

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

Tôi cũng phải tạo điểm gắn kết tự động trước đây:

mkdir /media/TIM_ABELL

uuid có thể được tìm thấy bằng cách cắm vào đĩa và chạy

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

sẽ cho phép bạn lấy điểm gắn kết -> thiết bị -> ánh xạ uuid


1
thay vì sử dụng đầy đủ đường dẫn / dev / đĩa / by-uuid / FOO hoặc / dev / đĩa / by-nhãn / FOO, bạn có thể sử dụng cú pháp phím tắt UUID=FOOhoặc LABEL=FOO.
quack quixote

0

Bạn đã thực sự, thực sự đã thử phương pháp cũ / etc / fstab chưa? Nó làm việc cho tôi. Ubuntu sử dụng fstab, bất kể máy tự động HAL.


2
Tôi phải làm gì trong / etc / fstab để làm cho tất cả các ổ đĩa FAT gắn kết như vậy? Quan điểm của tôi không phải là "Tôi có thể làm điều này với fstab" (tôi không thể), đó là "điều này đã không xảy ra theo mô hình fstab bởi vì nó không gắn kết bất cứ điều gì trừ khi tôi nói với nó".

0

Tôi đã thực hiện một số kịch bản bash và đưa ra phiên bản cải tiến của kịch bản sửa lỗi được đăng ở trên:

#!/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

Nó tìm thấy mọi thiết bị được kết nối bằng USB (hy vọng tất cả các ổ đĩa) đã được gắn và kết nối lại chúng bằng mount_options (trong trường hợp của tôi, hãy để chúng sử dụng bộ ký tự iso-8859-1 để tương thích với các hệ điều hành giới hạn khác)


3
Điều gì xảy ra nếu bạn cắm USB ext4? Nó sẽ áp dụng mặt nạ và các tùy chọn khác mà bạn chỉ muốn (và chỉ có ý nghĩa) cho FAT?
dùng39559

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.