Tên người dùng không liên quan. Quyền trong cả hai hệ thống tệp gốc HFS + và Linux được lưu trữ dưới dạng ID người dùng (UID), là các số được liên kết với tên người dùng. Trong Ubuntu, như trong hầu hết các bản phân phối Linux hiện đại, người dùng đầu tiên được cấp UID 1000 theo mặc định. Trong OS X, người dùng đầu tiên được cấp UID là 501 theo mặc định. Do đó, khi chia sẻ phương tiện mã hóa giá trị UID, các giá trị UID có thể không khớp.
Một cách để khắc phục điều này là bằng cách đặt các quyền lỏng lẻo (giá trị chế độ, như trong rwxr-xr-x
, hoặc 755 theo số bát phân). Lưu ý rằng mã bát phân quyền không giống với giá trị UID. Trong cả hai hệ điều hành, bạn có thể đặt các quyền mặc định được sử dụng trên các tệp bằng umask
lệnh, trong đó chỉ định giá trị bit sẽ bị xóa khỏi quyền truy cập tệp. Chẳng hạn, umask 022
loại bỏ quyền ghi cho nhóm và các quyền khác, dẫn đến 755 (rwxr-xr-x
) quyền trên các tệp mới (hoặc 644 nếu có gì đó loại bỏ bit quyền thực thi, đây là cách làm phổ biến đối với các tệp). Đây phần lớn là một công cụ dòng lệnh; nếu bạn phần lớn là người dùng GUI, bạn sẽ cần tìm một công cụ khác để thực hiện công việc, có thể liên quan đến các mặc định của môi trường máy tính để bàn của bạn. Điều này có thể tối nghĩa và tài liệu kém. Ngoài ra, thiết lập các quyền lỏng lẻo theo cách này có thể có những hạn chế về bảo mật, đặc biệt nếu hệ thống của bạn là một hệ thống nhiều người dùng.
Cách tiếp cận tốt hơn là đồng bộ hóa UID tài khoản của bạn trên Linux và OS X. Bạn có thể dễ dàng thay đổi giá trị UID trong Linux bằng usermod
lệnh, như trong:
usermod -u 501 dale
Lệnh này đặt UID cho dale
501. Mặc dù vậy, có một số cảnh báo quan trọng:
- Bạn nên đăng xuất khỏi tài khoản bạn đang sửa đổi trước khi sửa đổi. Cố gắng sửa đổi một tài khoản đang sử dụng sẽ khiến tài khoản đó bắt đầu hành xử kỳ lạ.
usermod
phải được sử dụng như root
. Bạn có thể thực thi thông qua sudo
, nhưng làm như vậy từ tài khoản bạn đang sửa đổi là điều không thể tránh khỏi. Do đó, bạn sẽ cần cung cấp root
mật khẩu và đăng nhập root
trực tiếp hoặc sử dụng sudo
từ tài khoản người dùng thứ hai.
- Các
usermod
lệnh sẽ không làm thay đổi quyền sở hữu của bất kỳ tập tin thuộc sở hữu của người sử dụng trong câu hỏi. Để điều chỉnh quyền sở hữu các tệp đó, bạn sẽ cần xác định vị trí của chúng và sau đó thay đổi quyền sở hữu của chúng chown
. Hầu hết các tệp sẽ nằm trong thư mục chính của người dùng, do đó chown -R dale: /home/dale
, được nhập như root
sau khi thay đổi dale
UID, sẽ thay đổi hầu hết các dale
tệp để sử dụng số UID mới. Tuy nhiên, một số tệp của người dùng có thể được đặt ở nơi khác. Nhập find / -uid 1000
sẽ tìm thấy tất cả các tệp sử dụng UID cũ (giả sử là 1000). Lưu ý rằng find
lệnh này có thể sẽ mất vài phút để hoàn thành. Để tăng tốc, hãy ngắt kết nối bất kỳ hệ thống tệp nào mà bạn chắc chắn rằng nó sẽ không tìm thấy lần truy cập nào, chẳng hạn như khối lượng FAT hoặc NTFS.
- Nếu bạn truy cập vào khối lượng FAT hoặc NTFS, giá trị UID của chúng được xác định bởi các tùy chọn tại thời điểm gắn kết. Nếu bạn sử dụng trình quản lý tệp GUI, rất có thể giá trị UID được đặt thành bất kỳ ai đang chạy trình quản lý tệp, do đó bạn không cần phải làm gì đặc biệt. Tuy nhiên, nếu bạn gắn âm lượng qua một
/etc/fstab
mục, bạn có thể cần điều chỉnh giá trị UID mà nó chỉ định.
- Ubuntu lưu trữ giá trị tối thiểu mà nó sử dụng cho UID
/etc/login.defs
. Nếu bạn không thay đổi UID_MIN
giá trị trong tệp này, bạn có thể sẽ phát hiện ra rằng tài khoản của bạn dường như sẽ "biến mất" khỏi màn hình đăng nhập GUI và có thể từ một số hệ thống khác. Vì vậy, bạn nên chỉnh sửa tập tin đó.
Về lý thuyết, bạn có thể thay đổi UID của (các) tài khoản OS X của mình theo cách tương tự để đạt được cùng một mục tiêu. Tuy nhiên, tôi không quen với các công cụ bảo trì tài khoản OS X, vì vậy tôi không thể cung cấp hướng dẫn rõ ràng để làm việc đó. Điều chỉnh các giá trị OS X sẽ có lợi thế là bạn không phải điều chỉnh UID_MIN
trong Linux.
Nếu bạn có nhiều tài khoản trên máy tính của mình, bạn nên điều chỉnh tất cả chúng để giữ cho tất cả chúng được đồng bộ hóa trên các cài đặt hệ điều hành của bạn.
Thêm một điểm nữa: Giá trị ID nhóm (GID) được lưu trữ theo cách tương tự. IIRC, Ubuntu gán giá trị GID cho mỗi tài khoản giống với giá trị UID của nó. Tôi không nhớ những gì OS X làm theo mặc định. Bạn có thể muốn điều chỉnh các giá trị GID cho hai HĐH theo cách tương tự với các thay đổi UID, nhưng điều này có thể không quan trọng bằng điều chỉnh các giá trị UID.
EDIT: Nếu bạn muốn thay đổi UID (và GID, nếu muốn) trong macOS / OS X thay vì trong Ubuntu, bạn có thể làm như vậy. Vì sửa đổi trong macOS nằm ngoài phạm vi của trang web này, tôi sẽ chỉ liên kết đến một vài trang cung cấp quy trình để thực hiện việc này trong macOS:
774
cho phép.