Muszę zmienić własność pliku / katalogu za pomocą. chmod
Znam tylko nazwę użytkownika właściciela, ale chcę jednocześnie zmienić domyślną nazwę grupy. Na tym etapie nie jest ustalana nazwa grupy, więc umieszczam to samo co nazwa użytkownika
chown -R username:username path_to_dir
Polecenie może być uruchamiane dla różnych systemów / użytkowników, więc moim zmartwieniem jest to, czy linux zawsze ma parę nazwa użytkownika (użytkownik): nazwa użytkownika (grupa) LUB w pewnym momencie ta domyślna nazwa_grupy może dawać błąd.
Chociaż zacząłem znajdować GID od użytkownika należy
id username | tr '(=)' ':' | awk -F: '{print $3}
Ale dla wiedzy chcę wiedzieć. Do tej pory analizy /etc/passwd
/etc/groups
tylko kilku użytkowników, takich jak „zamknij, zatrzymaj, zsynchronizuj, opeartor”, wszyscy użytkownicy wymienili również w grupach.
EDYCJA 1: id -gn nazwa użytkownika jest również dobrą opcją
id -g username
?id -gn username
która drukuje nazwę zamiast ID.Odpowiedzi:
Nie ma gwarancji, że nazwa grupy =
username
będzie istnieć.Najczęstszym scenariuszem jest to, że administratorzy systemu używają w systemie Linux tworzenia nowego użytkownika lokalnie w systemie, bez wyraźnej specyfikacji grupy, co oznacza, że grupa zostanie utworzona domyślnie tak samo jak nazwa użytkownika i przypisze użytkownika do domyślny identyfikator GID nowej grupy.
Nie oznacza to, że inny administrator systemu wykona tę procedurę, a jeśli wrzucisz inne usługi nazewnictwa do miksu, takie jak NIS lub LDAP, grupa przypisana jako domyślna prawdopodobnie nie będzie taka sama jak nowy GID z nazwą grupy taką samą jak nazwa użytkownika.
Dlatego nie powinieneś polegać na tym, że nazwa użytkownika = nazwa grupy
źródło
useradd
skrypt, który domyślnie tworzy grupę o tej samej nazwie, nie wszystkie mają. Ostatnim razem, gdy go używałem (wiele, wiele lat temu), skrypt tworzenia użytkownika w slackware domyślnie miał jedną grupę, dousers
której wszyscy użytkownicy zostali członkami. docs.slackware.com/slackbook:users sugeruje, że nadal tak może być.Chociaż idiom grupy prywatnej użytkownika jest często używany w nowoczesnych systemach Linux, * nix tak naprawdę nie wymaga unikalnej grupy podstawowej dla każdego użytkownika i całkiem możliwe jest, że kilka kont użytkowników ma wspólną grupę podstawową, taką jak
users
lubstaff
.Nawet w przypadkach, w których wymuszony jest idiom UPG, nie ma szczególnego powodu, że numeryczny GID konkretnego UPG powinien być równy UID właściciela, chociaż większość narzędzi do tworzenia kont spróbuje przypisać UID i GID w kolejności, jeśli są dostępny. Identyfikatory można łatwo ominąć, jeśli użytkownicy i / lub grupy muszą zostać spójni w wielu systemach (na przykład w celu uwzględnienia wcześniej istniejących udziałów NFS).
źródło
Jak Ramesh domyślnie wskazał, UID i GID są równe dla zwykłych użytkowników. Jednak nie zawsze tak jest, więc nie wolno zakładać takiego założenia, ponieważ może to spowodować spustoszenie w systemie. Przypisywanie uprawnień do plików / folderów niewłaściwej grupie jest nieco nieuporządkowane, prawda?
Krótka odpowiedź: nie, UID nie zawsze jest równy GID. Mimo to
/etc/passwd
zawiera zarówno UID, jak i GID domyślnej grupy w tym samym wierszu, więc raczej łatwo jest je wyodrębnić.źródło
adduser
raczej niż,useradd
a domyślne ustawienia/etc/adduser.conf
są ustawione na,USERGROUPS=yes
co tworzy grupę dla każdego nowego użytkownika. Grupy te zazwyczaj (choć nie zawsze) mają ten sam identyfikator GID, co identyfikator UID użytkownika, dla którego zostały utworzone.Z tego linku widzę poniższe informacje.
Identyfikator użytkownika (UID) to unikalna dodatnia liczba całkowita przypisana każdemu użytkownikowi przez system operacyjny podobny do systemu Unix. Każdy użytkownik jest identyfikowany w systemie za pomocą swojego identyfikatora UID, a nazwy użytkowników są zwykle używane tylko jako interfejs dla ludzi.
Identyfikatory UID są przechowywane wraz z odpowiadającymi im nazwami użytkowników i innymi informacjami specyficznymi dla użytkownika w
/etc/passwd
pliku, który można odczytać za pomocą polecenia cat w następujący sposób:Trzecie pole zawiera identyfikator UID, a czwarte pole zawiera identyfikator grupy (GID), który domyślnie jest równy UID dla wszystkich zwykłych użytkowników.
EDYTOWAĆ
Jednak, jak zauważa @Karlson, nie jest prawdą, że UID będzie domyślnie równy GID.
Instrukcja jest prawdziwa tylko wtedy, gdy żadne zwykłe grupy nie są dodawane osobno i żadne grupy nie są jawnie określone w żadnym utworzeniu użytkownika . Domyślnie gid dla następnego dodanego użytkownika =
max(gid) + 1
. Nie ma żadnej korelacji między UID i GID wymaganym przez dowolny system * NIX, w niektórych przypadkach po prostu się pokrywają.Więcej referencji
http://www.thegeekstuff.com/2009/06/useradd-adduser-newuser-how-to-create-linux-users
źródło
-g
flagi nauseradd
program utworzy grupę dla Ciebie i chyba przesunięcie GID działo się to będzie = UID. Jeśli jednak metoda tworzenia nie jest znana, nie można polegać na tym, że tak się stanie:uid=123456(ME) gid=777(ABC) groups=777(ABC)