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ą umaskpolecenia, które określa wartość bitu do usunięcia z uprawnień do plików. Na przykład umask 022usuwa 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ą usermodpolecenia, jak w:
usermod -u 501 dale
To polecenie ustawia identyfikator UID na dale501. 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ć.
usermodmusi 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ć roothasło i zalogować się rootbezpośrednio lub użyć sudokonta drugiego użytkownika.
usermodKomenda 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/dalewpisane tak , jak rootpo zmianie daleidentyfikatora UID, zmieni większość daleplików tak, aby używały nowego numeru UID. Niektóre pliki użytkownika mogą jednak znajdować się gdzie indziej. Wpisanie find / -uid 1000znajdzie wszystkie pliki, które używają starego UID (zakładając, że był to 1000). Pamiętaj, że wykonanie tego findpolecenia 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/fstabpozycji, 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_MINwartoś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_MINw 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:
774uprawnień.