Gắn kết phân vùng NTFS khi khởi động, với người dùng không phải là chủ sở hữu gốc


28

Tôi hiện đang cài đặt phân vùng NTFS khi khởi động bằng dòng sau trong / etc / fstab:

/dev/sda3        /media/data           ntfs      nls=iso8859-1,umask=000

Đối với bản cài đặt Ubuntu 11.10 của tôi, có vẻ như tất cả các tệp và thư mục đều thuộc sở hữu của root- và vì NTFS không thực sự hỗ trợ cùng một hệ thống quản lý quyền, nên không có cách nào tôi có thể thay đổi sau khi quá trình gắn kết hoàn tất. Bất kể tôi làm gì, ls -lbất cứ nơi nào trên phân vùng NTFS sẽ liệt kê mọi tệp và thư mục thuộc sở hữu của root:root.

Tuy nhiên, điều này gây ra một số vấn đề cho tôi. Đáng chú ý nhất, một số applicaitons chạy trong tài khoản của tôi (được gọi tomas) phàn nàn về quyền truy cập. Ngoài ra, bất cứ khi nào tôi cố gắng sao chép các tệp ( cp) hoặc di chuyển ( mv) từ một trong các phân vùng ext3 của mình sang phân vùng NTFS, tôi nhận được thông báo lỗi cho biết

mv: preserving times for `[path to new file]`: Operation not permitted

hoặc, tương tự

mv: preserving permissions for ...

Sẽ gắn phân vùng trong tên của tôi thay vì trợ giúp root? Nếu vậy, làm thế nào để tôi thực hiện điều đó trong fstab?


Cập nhật:

Bây giờ tôi đã thay đổi các tùy chọn theo các đề xuất và đã đến đây:

nls=iso8859-1,permissions,users,umask=000,uid=tomas,gid=tomas

ls -lbây giờ hiển thị tất cả các tệp thuộc sở hữu của tôi thay vì bằng root và có vẻ như một số vấn đề tôi gặp phải trước đây đã được giải quyết. Tuy nhiên, không phải tất cả trong số họ.

Khi tôi khởi động Eclipse, tôi gặp lỗi rằng một tệp liên quan đến android-sdk không thể chạy được: Quyền bị từ chối. ls -lcho tôi biết những điều sau đây về tập tin:

-rwxrwxrwx 1 tomas tomas 159620 2011-11-29 14:50 adb*

Đây là cách tôi muốn. Nhưng nếu tôi cố chạy nó ( ./adbtrong một thiết bị đầu cuối), tôi cũng nhận được quyền từ chối lỗi. Nhưng nếu tôi chạy nó sudo, nó hoạt động (tôi tin - ít nhất là nó không cho tôi một thông báo lỗi, nhưng nó không cho tôi bất kỳ đầu ra nào cả, mà tôi nghĩ rằng nó không nên ...)

Tại sao tệp trên, với quyền thực thi cho bất kỳ ai , vẫn không thể được thực thi bởi bất kỳ ai khác root? Làm cách nào để thay đổi cách tôi gắn hệ thống tệp?


Cập nhật 2:

OK, bây giờ tôi đã đi xa hơn một chút. Bằng cách gắn kết với các tùy chọn này

nls=iso8859-1,permissions,users,auto

Tôi đã nhận được tất cả các quyền được đặt theo cách tôi mong đợi chownchmodthực sự thay đổi cài đặt trên các tệp (ít nhất là theo ls -l) = D

NHƯNG hệ thống của tôi vẫn hành xử một cách kỳ lạ. Các quyền cho adbtệp kịch bản lệnh xuất hiện như trên, nhưng cả tôi và Eclipse đều không thể chạy nó mà không có lỗi "Quyền bị từ chối". Nhưng theo như tôi có thể thấy tập tin có tất cả các cờ yêu cầu được đặt ( o=rwxnên là đủ, phải không?). Tại sao nó không hoạt động?


Cập nhật 3

OK, tôi có mọi thứ hoạt động ở phía Ubuntu, với các tùy chọn sau:

nls=iso8859-1,permissions,users,auto,exec

Tuy nhiên, khi tôi cố gắng truy cập các tệp trên phân vùng từ Windows, các cài đặt bảo mật đều bị rối tung. Trên tất cả các tệp (trong số ít tệp mà tôi đã kiểm tra), một tài khoản mới được gọi Account Unknown(long GUID)đã được thêm vào danh sách người dùng và có toàn quyền. Sự nghiêm khắc đối với hầu hết người dùng khác đều giảm do đó tôi không có quyền làm những thứ tôi mong đợi. Đáng chú ý là "Mọi người" dường như không còn quyền "Traverse thư mục / thực thi".

Điều này thể giải quyết được bằng cách chỉ chọn phân vùng và cho phép Mọi người làm bất cứ điều gì trên thư mục gốc, sau đó bảo nó làm theo cách đệ quy, nhưng tôi không muốn mất nhiều ngày để hoàn thành ...


2
Từ gắn kết (8) : users Allow every user to mount and unmount the filesystem. This option implies the options noexec, ... unless overridden by subsequent options, as in the option line users,exec,dev,suid). Vì vậy, thêm execvào các tùy chọn của bạn và tôi tin rằng vấn đề từ chối cấp phép để thực thi nên được giải quyết.
benwh

Bạn đã bao giờ giải quyết vấn đề này sau Bản cập nhật 3 chưa? ... Tôi đã cố gắng sao lưu rsync hệ thống linux của mình sang ổ ntfs bổ sung mà tôi có, nhưng sau rất nhiều lần tìm kiếm, đã đi đến kết luận rằng tôi không bao giờ có thể đưa toàn bộ thông tin hệ thống tệp linux lên một ntfs fs. (Có lẽ tôi có thể đến gần như bạn đã làm ở trên, nhưng cuối cùng, linux không ánh xạ rất tốt vào ntfs.)
Chế độ xem hình elip

@Elipticalview: Cái này đã lâu rồi và tôi không còn máy tính như vậy nữa. Bạn đã thử câu trả lời được chấp nhận?
Tomas Aschan

Câu trả lời:


25

Trong cột tùy chọn thêm permissionsauto(và có thể userhoặc users)

nls=iso8859-1,permissions,users,auto
  • permissions: (Tùy chọn NTFS-3G) Đặt quyền tiêu chuẩn cho các tệp được tạo và sử dụng kiểm soát truy cập tiêu chuẩn.
  • auto: Sẽ được gắn kết khi khởi động và từ mount -a
  • user: Cho phép người dùng bình thường gắn kết hệ thống tập tin
  • users: Cho phép mọi người dùng gắn kết và ngắt kết nối hệ thống tập tin

Sau đó thay đổi quyền sở hữu hệ thống tập tin:

sudo chown -R thomas:thomas /media/data 

Dòng của tôi trong /etc/fstab

/dev/sda5 /media/ntfs ntfs-3g users,permissions,auto 0 0

Gắn kết và liệt kê quyền

sudo mount /media/ntfs
Using default user mapping

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 root root 4096 2012-01-04 17:08 ntfs

Thay đổi quyền sở hữu và liệt kê các quyền mới

bodhi@ufbt:~$ sudo chown bodhi:bodhi /media/ntfs

bodhi@ufbt:~$ ls -l /media

drwxr-xr-x 1 bodhi bodhi 4096 2012-01-04 17:10 ntfs

Theo mặc định, ntfs-3g gắn kết phân vùng noexec, nosuid và gật đầu.

  • noexec: Không cho phép thực thi trực tiếp bất kỳ nhị phân nào trên hệ thống tệp được gắn.
  • nosuid: Không cho phép các bit định danh người dùng tập hợp hoặc bit định danh nhóm tập hợp có hiệu lực.
  • nodev: Không giải thích ký tự hoặc chặn các thiết bị đặc biệt trên hệ thống tệp.

Để ghi đè lên tệp này và cho phép thực thi tệp, sử dụng exec

/dev/sda5 /media/ntfs ntfs-3g exec,permissions,auto 0 0

Bây giờ chúng tôi nhận được

bodhi@ufbt:~$ ls -l /media/ntfs

-rwx------ 1 bodhi bodhi 28 2012-01-04 17:16 file

bodhi@ufbt:~$ /media/ntfs/file
It works

Hừm ... sau khi thêm nó vào fstab (tạo cột tùy chọn hte như sau nls=iso8859-1,permissions,users,umask=000:) và khởi động lại bây giờ tôi có thể di chuyển và sao chép các tệp mà không có thông báo lỗi. Tất cả các tệp vẫn hiển thị như sở hữu root:rootmặc dù, ngay cả sau đó sudo chown -R tomas:tomas /media/data. Bây giờ nó dường như không phải là một vấn đề, nhưng vì tò mò: tại sao vậy?
Tomas Aschan

Tôi nghĩ bởi vì của bạnumask=000
Panther

Không, umask=000tương đương với chmod 777- umask xác định tất cả các cờ bạn không muốn đặt trên các tệp. Tôi đồng ý nó phản trực giác, nhưng tất cả đều ở đây: ubuntuforums.org/showpost.php?p=9092899&postcount=4
Tomas Aschan

Tôi đã cập nhật câu hỏi của mình với thông tin thêm về những gì tôi đã thử và kết quả.
Tomas Aschan

1
Hừm ... Tôi sẽ phải bỏ đánh dấu điều này vào lúc này: hóa ra, điều này đã làm rối tung các quyền khi đọc các tệp từ Windows ...
Tomas Aschan

2

Sử dụng uidgidcác tùy chọn (hoặc sử dụng tính năng ánh xạ người dùng) của mount.ntfs (8)


1
Nói cách khác, thêm uid = whoever vào dòng fstab
psusi

uidgidhoạt động, nhưng các quyền hiện được hỗ trợ trong ntfs-3g và các tùy chọn đó vượt quá permissionstùy chọn. Xem: b.andre.pagesperso-orange.fr/permissions.html
Panther

Tôi đã cập nhật câu hỏi của mình với thông tin thêm về những gì tôi đã thử và kết quả tôi nhận được. Xin hãy xem =)
Tomas Aschan

Bạn có thể cập nhật mục nhập fstab của bạn và loại bỏ uid, gid và umask của bạn, chỉ nls=iso8859-1,permissions,users, ngắt kết nối và gắn lại phân vùng.
Panther

@ bodhi.zazen: Sau đó, chúng tôi trở lại một hình vuông. Các tệp hiển thị là sở hữu bởi root:rootvà Eclipse phàn nàn về các quyền.
Tomas Aschan

2

Bây giờ tôi hoạt động hoàn hảo khi tôi thay đổi dòng của fstab thành

UUID=761C84B31C846FC3 /media/d        ntfs    defaults,umask=022,uid=1000 0       0

1

Còn việc sử dụng udisksthì sao? Nó có thể dễ dàng gắn kết các phân vùng NTFS với người dùng của bạn là chủ sở hữu.

Ví dụ (nhập nó vào dòng lệnh):

/usr/bin/udisks --mount /dev/sda3

Bạn cũng có thể thêm lệnh đó vào các ứng dụng khởi động và nó sẽ tự động gắn kết khi bạn đăng nhập.

Tham khảo: AutomaticMountPartitions

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.