Nazwy użytkowników są nieistotne. Uprawnienia w systemach plików macierzystych dla systemu plików HFS + i Linux są przechowywane w postaci identyfikatorów użytkowników (UID), które są liczbami powiązanymi z nazwami użytkowników. W Ubuntu, podobnie jak w większości współczesnych dystrybucji Linuksa, pierwszy użytkownik otrzymuje domyślnie UID 1000. W OS X pierwszy użytkownik otrzymuje domyślnie identyfikator UID 501. Dlatego podczas udostępniania mediów, które kodują wartości UID, wartości UID prawdopodobnie się nie zgadzają.
Jednym ze sposobów rozwiązania tego jest ustawienie luźnych uprawnień (wartość trybu, jak w rwxr-xr-x
, lub 755 w ósemce). Zauważ, że ósemkowy kod uprawnień nie jest taki sam jak wartość UID. W dowolnym systemie operacyjnym można ustawić domyślne uprawnienia używane do plików za pomocą umask
polecenia, które określa wartość bitu do usunięcia z uprawnień do plików. Na przykład umask 022
usuwa uprawnienia do zapisu dla grupy i inne uprawnienia, w wyniku czego 755 (rwxr-xr-x
) uprawnienia do nowych plików (lub 644, jeśli coś usuwa bit uprawnień do wykonywania, co jest powszechną praktyką w przypadku plików). Jest to jednak głównie narzędzie wiersza polecenia; jeśli w dużej mierze jesteś użytkownikiem GUI, musisz znaleźć inne narzędzie do wykonania zadania, prawdopodobnie związane z domyślnymi ustawieniami środowiska pulpitu. Może to być niejasne i źle udokumentowane. Także ustawianie luźnych uprawnień w ten sposób może mieć wady bezpieczeństwa, szczególnie jeśli twój jest systemem dla wielu użytkowników.
Lepszym rozwiązaniem jest zsynchronizowanie identyfikatorów UID konta w systemie Linux i OS X. Możesz łatwo zmienić wartość UID w systemie Linux za pomocą usermod
polecenia, jak w:
usermod -u 501 dale
To polecenie ustawia identyfikator UID na dale
501. Istnieją jednak pewne istotne zastrzeżenia:
- Przed zmodyfikowaniem należy wylogować się z konta, które modyfikujesz. Próba zmodyfikowania używanego konta spowoduje, że konto zacznie się dziwnie zachowywać.
usermod
musi być użyty jako root
. Możesz go wykonać za pośrednictwem sudo
, ale robiąc to z konta, które modyfikujesz, jest skrajnie niewskazane. Dlatego musisz podać root
hasło i zalogować się root
bezpośrednio lub użyć sudo
konta drugiego użytkownika.
usermod
Komenda nie zmieni własność wszystkich plików posiadanych przez danego użytkownika. Aby dostosować własność tych plików, musisz je zlokalizować, a następnie zmienić ich własność za pomocą chown
. Większość plików będzie w katalogu domowym użytkownika, więc chown -R dale: /home/dale
wpisane tak , jak root
po zmianie dale
identyfikatora UID, zmieni większość dale
plików tak, aby używały nowego numeru UID. Niektóre pliki użytkownika mogą jednak znajdować się gdzie indziej. Wpisanie find / -uid 1000
znajdzie wszystkie pliki, które używają starego UID (zakładając, że był to 1000). Pamiętaj, że wykonanie tego find
polecenia prawdopodobnie potrwa kilka minut. Aby przyspieszyć, odmontuj wszystkie systemy plików, w których masz pewność, że nie znajdzie żadnych trafień, takich jak woluminy FAT lub NTFS.
- Jeśli uzyskujesz dostęp do woluminów FAT lub NTFS, ich wartości UID są określane przez opcje w czasie montowania. Jeśli korzystasz z menedżera plików GUI, istnieje prawdopodobieństwo, że wartość UID jest ustawiona na tego, kto uruchamia menedżera plików, więc nie musisz robić nic specjalnego. Jeśli jednak montujesz wolumin za pomocą
/etc/fstab
pozycji, może być konieczne dostosowanie podanej wartości UID.
- Ubuntu przechowuje minimalną wartość, której używa dla identyfikatorów UID
/etc/login.defs
. Jeśli nie zmienisz UID_MIN
wartości w tym pliku, prawdopodobnie odkryjesz, że Twoje konto „zniknie” z ekranu logowania GUI i być może z innych systemów. Dlatego powinieneś edytować ten plik.
Teoretycznie można zmienić identyfikator UID konta OS X w podobny sposób, aby osiągnąć ten sam cel. Jednak mniej znam się na narzędziach do zarządzania kontem OS X, więc nie mogę podać jednoznacznych instrukcji. Dostosowanie wartości OS X miałoby tę zaletę, że nie trzeba dostosowywać UID_MIN
w systemie Linux.
Jeśli masz wiele kont na swoim komputerze, powinieneś je wszystkie dostosować, aby były zsynchronizowane we wszystkich instalacjach systemu operacyjnego.
Jeszcze jeden punkt: wartość identyfikatora grupy (GID) jest przechowywana w podobny sposób. IIRC, Ubuntu przypisuje wartość GID dla każdego konta, która jest identyczna z jego wartością UID. Domyślnie nie pamiętam, co robi OS X. Możesz dostosować wartości GID dla dwóch systemów operacyjnych w sposób analogiczny do zmian UID, ale nie jest to tak ważne, jak dostosowanie wartości UID.
EDYCJA: Jeśli chcesz zmienić swój UID (i GID, jeśli to pożądane) w macOS / OS X zamiast w Ubuntu, możesz to zrobić. Ponieważ ta modyfikacja w systemie macOS wykracza poza zakres tej witryny, po prostu odsyłam do kilku stron, które zawierają procedury umożliwiające wykonanie tego w systemie macOS:
774
uprawnień.