Làm cách nào để tôi tự gắn hệ thống tệp linux đọc / ghi như một người dùng bình thường?


19

Điều này có vẻ như là một câu hỏi ngu ngốc, nhưng với hầu hết các công cụ Linux, đối với tôi, có vẻ như rất nhiều điều tầm thường không được ghi lại.

Dù sao, tôi chỉ muốn gắn một hệ thống tệp ext4 lên một điểm gắn kết bình thường trong Ubuntu (/ media / bất cứ nơi nào), như có thể đọc được cho người dùng đã đăng nhập hiện tại, tức là tôi.

Tôi không muốn thêm bất cứ điều gì vào / etc / fstab, tôi chỉ muốn làm điều đó ngay bây giờ, bằng tay. Tôi cần các đặc quyền siêu người dùng để gắn kết một thiết bị, nhưng sau đó chỉ root mới có thể đọc-ghi gắn kết đó. Tôi đã thử nhiều tùy chọn gắn kết, thêm nó vào fstab, nhưng không có may mắn.


Có một lý do tại sao bạn không muốn gắn nó ở đâu đó trong thư mục nhà của bạn?
Robert S Ciaccio

Câu trả lời:


13

Trên hệ thống tệp ext4 (như ext2, ext3 và hầu hết các hệ thống tệp không có nguồn gốc khác), quyền truy cập tệp hiệu quả không phụ thuộc vào người đã gắn hệ thống tệp hoặc trên tùy chọn gắn kết, chỉ trên siêu dữ liệu được lưu trữ trong hệ thống tệp.

Với Ubuntu, việc gắn kết sẽ tự động xảy ra khi bạn chèn đĩa hoặc bạn có thể nhấp vào biểu tượng để gắn kết. Bạn cũng có thể cài đặt pmountđể gắn kết các hệ thống tập tin như một người dùng thông thường từ dòng lệnh.

Nếu bạn có một hệ thống tệp di động sử dụng các ID người dùng khác nhau từ hệ thống của mình, bạn có thể sử dụng bindfs(trong gói Ubuntu cùng tên) để cung cấp chế độ xem của bất kỳ hệ thống tệp nào có quyền sở hữu hoặc quyền khác nhau. Hệ thống tập tin di động phải được gắn kết, ví dụ như trên /media/disk9; sau đó, nếu bạn muốn xuất hiện với tư cách là chủ sở hữu của tất cả các tệp, bạn có thể chạy

mkdir ~/disk9
sudo bindfs -u $(id -u) -g $(id -g) /media/disk9 ~/disk9

Cảm ơn! Điều này làm việc cho tôi với ext3. Lưu ý rằng trước tiên tôi phải gắn hệ thống tập tin ext3 vào một số thư mục mount, sau đó gắn thư mục đó với bindfs vào thư mục cuối cùng.
Ilari Kajaste

8

Khi bạn gắn hệ thống tệp ext4, nó sử dụng các quyền được nhúng trong hệ thống tệp đó. Nếu bạn muốn ghi đè những cái này, thì hãy sử dụng các cách sau:
1. Tìm UID của người dùng bạn muốn gắn kết là: id <username>và tìm UID = <userid> (<tên người dùng>) GID = <groupid> (<tên nhóm>) 2 .sudo mount -o nosuid,uid=<userid>,gid=<groupid> /dev/whatever /media/wherever

Điều này sẽ gắn kết hệ thống tệp và đánh dấu người dùng được chỉ định là chủ sở hữu của tất cả các tệp và nhóm được chỉ định là nhóm cho tất cả các tệp. nosuidlà một biện pháp bảo mật ngăn người dùng đưa các chương trình suid và sử dụng chúng để có quyền truy cập root vào hệ thống (nghĩa là một phiên bản bash suid trên hệ thống tập tin). Thêm noexectùy chọn sẽ cung cấp bảo mật bổ sung, nhưng sẽ ngăn người dùng thực thi các tệp trên hệ thống tệp.

Lưu ý: Nếu bạn chỉ đang cố gắng tự tương tác với hệ thống tệp, bạn nên sửa các quyền trên thiết bị hoặc tương tác với nó dưới dạng root nếu đó chỉ là một điều tạm thời (nghĩa là khôi phục cài đặt bị hỏng).

Nếu đây là để gắn USB hoặc ổ đĩa ngoài có thể tháo rời khác, bạn nên kiểm tra pmounthệ thống có thể tự động hóa quy trình cho bạn hoặc ít nhất làm cho nó dễ dàng hơn đáng kể (nghĩa là pmount <device>nên tạo các thư mục cho bạn, gắn kết với tư cách là người dùng của bạn, và cho phép bạn ngắt kết nối nó với tư cách là người dùng của bạn)


1
Bất kỳ ý tưởng cho dù điều này sẽ làm việc với EXT3 là tốt? Tôi nhận được EXT3-fs: Unrecognized mount option "uid=1000" or missing valuetrong dmesg khi tôi thử nó với ext3.
Ilari Kajaste

@Ilari: Nó sẽ không hoạt động với ext3, cũng như với ext4 cho vấn đề đó. Hầu hết các trình điều khiển Linux cho các hệ thống tập tin unix không có tùy chọn ánh xạ UID và GID.
Gilles 'SO- đừng trở nên xấu xa'

-1 Không hoạt động.
Ilari Kajaste

2

Bạn có thể dùng:

mount -o user /dev/devicenameusertùy chọn trong fstab của bạn.


1

Nếu bạn không muốn chỉnh sửa tệp / etc / fstab của mình, tôi khuyên bạn nên dùng thử PySDM để xác định các quy tắc để gắn hệ thống tệp ext4 của bạn một cách thường xuyên. Nó có thể được cài đặt bằng cách cài đặt gói "pysdm" trong Synaptic hoặc bằng cách tìm kiếm Trung tâm phần mềm Ubuntu để tìm "pysdm". Sau khi cài đặt, nó có sẵn trong Hệ thống -> Quản trị -> Trình quản lý thiết bị lưu trữ ..

PySDM đang hoạt động


1

Chỉ nhận ra sau khi đọc bình luận cuối cùng tại http://ubuntuforums.org/showthread.php?t=2142284 mà tất cả mọi người phải làm là mộtsudo chown -Rvf <user>:<group> <mountpoint>

Đây là tất cả những gì được yêu cầu ...


2
Đây là một hoạt động phá hoại. Nếu bạn làm điều đó trước khi gắn, nó sẽ không tạo ra bất kỳ sự khác biệt nào đối với quyền sở hữu tệp trên ổ đĩa được gắn; nếu bạn làm điều đó sau khi cài đặt thì nó sẽ ghi đè lên tất cả các quyền. Nếu ổ đĩa chứa bản cài đặt Linux, việc thay đổi quyền như thế này sẽ khiến nó không thể khởi động được sau khi bạn ngắt kết nối.
Warbo
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.