Đó là vấn đề với các hệ thống nhiều người dùng, đặc biệt là nếu bạn có nhiều hơn một trong số họ. ;) Không có cách nào thực sự tốt để làm những gì bạn muốn. Phương pháp tiếp cận đến với tâm trí sẽ là
- có cùng UID cho tài khoản của bạn trên mọi máy bạn đang sử dụng ổ đĩa ngoài (thực sự không khả thi, vì hầu hết có lẽ không phải tất cả các máy đều nằm dưới sự kiểm soát của bạn)
- sử dụng một hệ thống tệp mà không biết về cấu hình của chủ sở hữu / nhóm (FAT hoặc NTFS xuất hiện trong tâm trí, nhưng, aaah, không)
Cách tiếp cận hiệu quả nhất sẽ trở lại với các thông lệ. Trên hầu hết (ít nhất) các hệ thống Linux, tồn tại một số nhóm thường có các GID phổ biến. Ví dụ, sẽ users
có GID 100
trên hầu hết các bản phân phối Linux. Nếu bạn có thể quản lý để có tài khoản người dùng tương ứng của mình trong nhóm này, bạn có thể
- làm cho tất cả các tệp và thư mục trên ổ đĩa của bạn thuộc sở hữu của nhóm này
- bằng cách nào đó quản lý để có quyền nhóm phù hợp trên các tệp và thư mục đó
- bằng cách nào đó quản lý để có các tệp mới được tạo với sự tôn trọng quyền sở hữu nhóm thích hợp. quyền.
Điểm thứ nhất và thứ hai rất dễ thực hiện ( chown
, chmod
). Điểm thứ ba nhận được một chút khó khăn hơn.
Phần "sở hữu nhóm" tương đối dễ dàng: Bạn có thể đặt bit SGID trên tất cả các thư mục trên ổ đĩa. Bit SGID được áp dụng cho các thư mục yêu cầu kernel hoạt động theo cách BSDish: BSD làm cho mọi tệp / thư mục được tạo trong một thư mục cụ thể thuộc sở hữu của nhóm không phải bởi nhóm chính của quy trình tạo tệp / thư mục (như Linux), nhưng bởi chủ sở hữu của thư mục cha.
Các bit cho phép là một chút khó khăn. Quyền của các tệp / thư mục mới được tạo (trong số các tệp khác) bị ảnh hưởng bởi umask
, mặt nạ bit cho biết bit nào không được đặt nếu không được nêu rõ ràng. umask
Ví dụ 022
, một giá trị chung là , các bit ghi cho »nhóm« và »các nhóm khác« thường không nên được đặt. Bạn có thể thay đổi umask
thành 002
, nói rằng bạn không muốn xóa quyền ghi cho nhóm nhưng nhược điểm là bạn không thể đặt giá trị này dựa trên thư mục và bạn thường không muốn có quyền ghi cho nhóm chính của bạn được đặt cho mọi tệp bạn tạo.
Điều này có thể được giải quyết bằng ACL: Trong một ACL, bạn có thể đặt một bộ mask
và default
quyền, áp dụng cho tất cả các tệp và thư mục được tạo trong một thư mục có bộ ACL này. Vì vậy, một giải pháp khả thi cho vấn đề của bạn sẽ là
- đảm bảo bạn là thành viên của một nhóm chung trên tất cả các hệ thống bạn muốn sử dụng ổ đĩa ngoài của mình trên
- làm cho tất cả các tệp và thư mục trên ổ đĩa của bạn thuộc sở hữu của nhóm này và đặt bit SGID trên tất cả các thư mục
- thay đổi ACL của tất cả các thư mục để bao gồm mặt nạ và quyền mặc định cho hạt nhân tạo mọi tệp / thư mục mới với quyền ghi được đặt cho nhóm.
Xem setfacl(1)
và acl(5)
để biết thêm chi tiết.