Giải quyết các vấn đề về quyền khi sử dụng đĩa cứng EXT4 bên ngoài với nhiều cài đặt linux


18

Tôi có một ổ cứng ngoài và vì tôi chỉ sử dụng Ubuntu và Fedora nên tôi quyết định định dạng ổ cứng của mình thành ext4, mọi thứ đều ổn.

Vấn đề là khi tôi gắn ổ đĩa, tôi cần thay đổi quyền để tôi có thể đọc và viết.

Tôi nên sử dụng loại quyền nào? ngưỡng mộ tên người dùng của tôi?

Câu trả lời:


5

Mặc dù có thể là của tôi, tôi sẽ phải trả lời câu hỏi này bằng một câu hỏi khác. Nếu tất cả những gì chúng ta đang nói là dành cho một HĐH, thì đó sẽ là một trong hai

sudo chown -R (user name) /dev/(device name)

( Ubuntu )

hoặc chỉ

chown -R (user name) /dev/(device name)

fedora - khôngsudo, chỉ cần chạy lệnh từ root.

Phần cào mì, và phần tôi không có câu trả lời hay nào, là làm thế nào để bạn không phải gõ lại thủ công khi bạn qua lại giữa các bản phát hành. Tôi gần như bị cám dỗ để thêm dòng cho tôi ~/.bashrc, nhưng có lẽ có một cách tốt hơn mà tôi chưa biết hoặc chưa nghĩ đến.


Đó là những gì tôi cần để thay đổi quyền mỗi khi tôi thay đổi bản phân phối
Javier Gonzalez

1
Để đảm bảo và thỏa mãn trí tò mò trí tuệ của riêng tôi, tôi đã quay lại và kiểm tra lại bằng ổ USB EXT4 mà tôi có. Tôi không biết việc sở hữu thiết bị có giống như sở hữu hệ thống tập tin hay không. sudo chown -R (tên người dùng) / dev / (tên thiết bị) giúp bạn sở hữu tất cả các tệp trên ổ đĩa, ngay cả khi bạn không tạo chúng.
user2367

Vâng, chỉ cần thêm dòng vào ~ / .bashrc để nó tự động chạy mỗi khi bạn chạy terminal, tôi không có câu trả lời cho điều đó. Có lẽ có thể thêm nó vào cron? Nhưng có vẻ như chỉ nên có một cách để sắp xếp cho nó chạy khi distro khởi động.
user2367

Tôi thực sự yêu thích ext4 nhưng là một kẻ ngu ngốc thay đổi sự cho phép haha
Javier Gonzalez

10

Giải pháp đơn giản nhất là đảm bảo tài khoản người dùng Ubuntu & Fedora của bạn có cùng id người dùng (UID).

Tôi nghĩ Fedora bắt đầu tài khoản người dùng ở mức 500 theo mặc định, trong khi Debian & Ubuntu khởi động tài khoản của họ ở mức 1000, do đó, rất có thể trong một hệ điều hành bạn là người dùng số 500 và ở hệ điều hành khác bạn là số người dùng 1000. Hệ thống tệp sử dụng số UID này để theo dõi các quyền, vì vậy nếu bạn chắc chắn rằng họ có cùng UID, họ sẽ được coi là cùng một người dùng và sẽ không có vấn đề về quyền nào xảy ra.

Tôi nghĩ điều tốt nhất bạn có thể làm là biến cả hai UID = 1000, vì vậy hãy thay đổi UID trong hệ thống Fedora, sau đó đảm bảo tất cả các tệp trên đĩa ngoài và trong $ HOME của người dùng trong cài đặt Fedora đều thuộc sở hữu của UID 1000. Sau đó rằng bạn không nên có vấn đề cho phép nữa.


Vâng tôi sẽ làm điều đó cảm ơn bạn đã dành thời gian của bạn :)
Javier Gonzalez

1
Vui lòng đọc thêm phần bổ sung của tôi hoặc người dùng Fedora sẽ không thể đăng nhập!
JanC

Mọi thứ đều rõ ràng tôi sẽ kiểm tra nó ngay bây giờ, cũng cảm ơn vì đã chỉnh sửa tiêu đề câu hỏi bây giờ rất rõ ràng.
Javier Gonzalez

3

Trong / etc / fstab, bạn có thể đặt uid = 1000 (trong Ubuntu - là 500 trong Fedora) để ổ đĩa được sở hữu bởi người dùng của bạn (giả sử bạn là người dùng đầu tiên, yada yada yada ... nếu không, người dùng của bạn uid từ id) và umask = 000 nếu bạn muốn tất cả người dùng có quyền truy cập (hoặc 077 cho chỉ một người được chỉ định bởi uid = - đó là mặt nạ, vì vậy bạn đặt ngược lại với những gì bạn chmod là)

Để biết thêm thông tin về việc sử dụng / etc / fstab: http://ubuntulinuxtipstricks.blogspot.com/2008/02/fun-with-etcfstab.html


1
Nếu tôi đặt quyền thành 077, tôi không cần thay đổi quyền khi tôi thay đổi từ ubfox sang fedora?
Javier Gonzalez

@Dracirate: Tôi nghĩ rằng bạn có thể cần 000 chứ không phải 077. Nếu bạn đặt một mục nhập fstab cho ổ đĩa trong mỗi hệ thống (cả Ubuntu và Fedora), họ sẽ tự động gắn nó để có thể sử dụng được.
maco

3

Thật không may, nhân Linux thực thi quyền POSIX trên ext2 / ext3 / ext4 FS.

Bạn có thể giải quyết quyền POSIX với nhóm dùng chung. Tôi hỏi câu hỏi tương ứng: /unix/273144/pred xác định-group-ids-across-linux-distros/ nhưng sau tất cả tôi đã tự nghiên cứu.

Tôi phát hiện ra rằng nhóm sys chia sẻ id 3 trên Debian, Ubuntu, RedHat, Fedora, CentOS, Suse, FreeBSD, OpenBSD, NetBSD, MacOSX, Solaris.

Với khám phá như vậy trong tâm trí, một giải pháp có thể giống như:

$ sudo chgrp -R sys /mnt/data/dir
$ sudo chgmod -R g+s /mnt/data/dir
$ sudo fsetacl -R -m g:sys:rwx /mnt/data/dir
$ sudo fsetacl -R -d -m g:sys:rwx /mnt/data/dir

và hương vị của điều này (bất cứ khi nào bạn dùng Linux / FreeBSD / MacOSX / Solaris):

$ sudo adduser user sys

Xem thêm:


Sử dụng phương pháp đó, thực hiện cd /mnt/data/dir; touch example.txt; ls example.txt ... chương trình ... -rw-rw----+ 1 user user 3 nov 27 20:16 example.txt. Thực hiện sau đó mv example.txt ~; ll ~/example.txt... hiển thị ... -rw-rw----+ 1 user user 0 nov 27 21:22 /home/user/example.txt, với điều đó +ở cuối các quyền. Vì vậy, rất nhiều thứ +sẽ xuất hiện ở rất nhiều nơi, khiến mọi người tự hỏi tại sao những tệp đó lại đặc biệt (chỉ vì chúng tình cờ được sao chép / di chuyển từ một thư mục cụ thể). Có cách nào để ngừng sản xuất chúng +tự động?
Ganton

2

Bạn chỉ có thể thử sử dụng exfat hoặc ntfs. Đối với tôi nó hoạt động theo cách này. Nhưng tôi không làm bây giờ nếu nó hoạt động với mọi quyền. Tôi nghĩ là không.


2

Đây là một biến thể nhỏ của cách tiếp cận sử dụng các nhóm được chia sẻ của @ gavenkoa và không liên quan đến việc sửa đổi ổ đĩa được gắn.

Kiểm tra id nhóm nào (GID) được sử dụng trong ổ đĩa được gắn.

su
cd /mnt/data/dir  # or wherever it is mounted
ls -l

Hãy để chúng tôi nói bạn thấy một cái gì đó tương tự như sau:

drwxr-xr-x 3 12588 12000  4096 30.06.2017 11:22 Documents/

Điều này có nghĩa 12000là GID hiện tại của dữ liệu trong ổ đĩa và dữ liệu có thể được đọc và được thực thi (mặc dù) không thể được ghi bởi bất kỳ người dùng nào khác trong nhóm. Tạo một nhóm mới (ví dụ driveusers:) và thêm người dùng hiện tại của bạn vào nhóm mới:

groupadd -g 12000 driveusers
sudo gpasswd -a $USER driveusers  # add the current user to the new group
sudo chmod 770 /mnt/data/dir      # optional, just to ensure the drive mount is accessible to user and group of the drive

1

Tôi tìm thấy giải pháp khác này:

/unix/422656/how-to-make-an-ext4-formatted-usb-drive-with-full-rw-permissions-for-any-linux-m/468933#468933

/unix//a/273705

Với cái này:

sudo chgrp -R sys /mnt/data/dir
sudo chmod -R g+s /mnt/data/dir
sudo setfacl -R -m g:sys:rwx /mnt/data/dir
sudo setfacl -R -d -m g:sys:rwx /mnt/data/dir

và hương vị của điều này:

sudo adduser user sys  

người dùng của bạn có thể đọc / ghi bất kỳ tập tin nào trên đó /dir.

@jadelord @ gavenkoa bạn có nghĩ rằng có bất kỳ cải tiến nào có thể được thực hiện hiện nay trên các giải pháp được đề xuất của bạn cho người dùng Ubuntu (hoặc Fedora) không? Cảm ơn

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.