Không thể gắn kết phân vùng NTFS từ tài khoản người dùng


4

Tôi đang cố gắn phân vùng Windows ntfs trên openSuse 11.4. Khi tôi gắn kết nó bằng tài khoản root (trực tiếp hoặc thông qua sudo ), nó gắn kết mà không gặp vấn đề gì. Nhưng khi tôi thử gắn nó mà không có bất kỳ quyền root nào, nó sẽ báo lỗi sau:

Error opening '/dev/sda2': Permission denied
Failed to mount '/dev/sda2': Permission denied
Please check '/dev/sda2' and the ntfs-3g binary permissions,
and the mounting user ID. More explanation is provided at
http://ntfs-3g.org/support.html#unprivileged

Mục nhập fstab của tôi cho thiết bị liên quan là:

/dev/sda2   /media/Windows      ntfs       defaults,noauto,user  1 2

Tôi đã tìm kiếm Google cho các giải pháp khả thi, nhưng dường như tôi không đi đến đâu cả.

Chỉnh sửa 1:

Theo đề xuất, tôi đã cố gắng thiết lập các bit UID / GID trên tệp nhị phân ntfs-3g. Tất cả các tệp (/sbin/mount.ntfs, /sbin/mount.ntfs-3g) đều trỏ đến / usr / bin / ntfs-3g, vì vậy tôi đã thay đổi quyền trên đó. Các quyền bây giờ là:

-rwsr-sr-x 1 root root 51512 Feb 18 22:18 ntfs-3g

Nhưng kết quả vẫn như vậy và tôi nhận được cùng một quyền từ chối lỗi.

Chỉnh sửa 2:

Sau khi thiết lập quyền chính xác trên tất cả các tệp:

-rwsr-xr-x 1 root root 51512 Feb 18 22:18 ntfs-3g
brw-rw-rw- 1 root disk 8, 2 Aug  6 21:53 sda2
drwxrwxrwx 1 asad users 8192 Jul 30 13:09 Windows

Tôi đã có thể gắn kết với một tài khoản người dùng đặc quyền. Tuy nhiên, bây giờ khi tôi cố gắng ngắt kết nối bằng cùng một tài khoản, tôi nhận được:

asad@jb-laptop:~> umount /dev/sda2
umount: only root can unmount /dev/sda2 from /media/Windows

Chỉnh sửa 3:

Cuối cùng tôi đã tìm thấy vấn đề. Tôi cần thêm người dùng thay vì người dùng trong fstab vì một số lý do, mặc dù tôi không thể hiểu tại sao. Bây giờ tôi có một vấn đề mới :)

Bất cứ khi nào tôi ngắt kết nối thiết bị / dev / sda2 , bằng cách nào đó, quyền truy cập tệp sẽ trở về mặc định (0660). Tôi đã cố gắng tạo một quy tắc trong udev nhưng dường như nó không hoạt động.


Xin đừng đặt câu trả lời trong câu hỏi của bạn. Các cập nhật của bạn là tốt cho đến lần thứ ba, mà bạn nên thêm vào như một câu trả lời dưới đây. Bạn có thể trả lời câu hỏi của riêng mình nếu không có ai đưa ra giải pháp. Nếu ai đó đã chỉ ra một giải pháp một phần, bạn có thể nhận xét về nó hoặc chỉnh sửa nó để thêm bất kỳ chi tiết nào bị thiếu.
Caleb

Ngoài ra, nếu bạn có một câu hỏi / vấn đề mới, hãy hỏi một câu hỏi mới . Mỗi câu trả lời được đặt ở đây chỉ đại diện cho một vấn đề. Cảm ơn vì đã trở lại và giữ mọi thứ cập nhật.
Caleb

Cảm ơn. :) Tôi đã thêm bản cập nhật thứ ba vì tôi nghĩ rằng nó có liên quan đến sự cố, vì sau mỗi lần ngắt kết nối, quyền truy cập tệp trở lại mặc định và sự cố ban đầu xuất hiện. Có lẽ tôi nên giải thích nó tốt hơn một chút trong lần chỉnh sửa cuối cùng.
Jibran

Làm cho bài viết của bạn có nhiều thông tin để sử dụng sau - mục nhập fstab FINAL của bạn là gì?
greenoldman

Câu trả lời:


3

Các ntfs-3gtệp nhị phân phải được đặt gốc uid để người dùng gắn kết hoạt động. Và bạn cần sự cho phép đối với thiết bị khối & điểm gắn kết.

sudo chmod 1755 /sbin/mount.ntfs-3g /usr/bin/ntfs-3g
sudo chmod 666 /dev/sda2
sudo chmod 777 /media/Windows

(Lưu ý: đây là các vị trí Debian, chúng có thể khác nhau đối với Suse, vì vậy bạn sẽ muốn kiểm tra xem chúng có thực sự ở những vị trí đó không.)

Bạn cũng cần phải có ntfs-3gphiên bản 1.2506 trở lên.

Xem ở đây để biết thêm:


@jibran Tôi mở rộng câu trả lời của mình với nhiều thông tin hơn.
bahamat

tốt, tôi đang ở nửa đường Tôi đã chỉnh sửa câu trả lời của mình để bao gồm thông tin mới nhất. Tôi hy vọng rằng bạn có thể giúp tôi hơn nữa. Cảm ơn tất cả sự giúp đỡ của bạn cho đến nay ...
Jibran

3

Để giải quyết các vấn đề tương tự trong tương lai - đặc biệt là với phương tiện lưu động (như đĩa USB), tôi khuyên bạn nên sử dụng pmount để gắn hệ thống tệp như người dùng bình thường. Nó sử dụng một cách tiếp cận chính sách và giúp bạn tránh những thay đổi trên toàn hệ thống, đôi khi có thể gây nguy hiểm (chẳng hạn như chmod 1755 /sbin/mount.ntfs-3g /usr/bin/ntfs-3g).

Để tạo một phân vùng cục bộ cụ thể có thể gắn kết người dùng thông qua pmount, bạn có thể thêm nó vào danh sách trắng. Trong trường hợp của bạn, điều này có nghĩa là

echo "/dev/sda2" >> /etc/pmount.allow

Mà phải được chạy như root. (Hoặc bằng cách chỉnh sửa tệp sudo nano /etc/pmount.allow:)


cảm ơn vì tiền hỗ trợ. Tôi chắc chắn sẽ nhìn vào pmount. Btw, có thể giao diện với nautilus không? Sau khi trải qua tất cả những rắc rối này, bây giờ tôi có thể gắn kết từ bên trong nautilus mà không cần truy cập root. Có giống với pmount không?
Jibran

2

Đã giải quyết nó! Cảm ơn bạn @baharmat vì tất cả sự giúp đỡ của bạn. Nếu bạn không chỉ cho tôi đi đúng hướng, tôi vẫn sẽ phải đối mặt với cùng một vấn đề. Đây là cách tôi đã làm nó.

Như đã rõ trong câu hỏi dài dòng của tôi , vấn đề duy nhất còn lại là vì một số lý do, quyền của tập tin / dev / sda2 đã thay đổi theo mặc định của 0660. Để khắc phục điều đó, tôi đã sử dụng quy tắc udev sau:

KERNEL=="sda2", ACTION=="change", MODE="0666"
KERNEL=="sda2", ACTION=="add",    MODE="0666"

LƯU Ý : Tệp /etc/udev/rules.d/81-mount.rules có ACTION == "thêm | thay đổi". Điều đó dường như không hoạt động. Tôi đã phải vật lộn với quy tắc trong hơn một giờ trước khi tôi tìm ra điều đó. Bất kỳ trợ giúp sẽ được đánh giá cao về lý do tại sao một tệp quy tắc đi kèm với bản phân phối của tôi có chứa một cái gì đó dường như không hoạt động.

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.