Je dois changer la propriété du fichier / répertoire en utilisant. chmod
Je ne connais que le nom d'utilisateur des propriétaires mais je veux changer le nom de groupe par défaut simultanément. À ce stade, le nom du groupe n'est pas décidé, je mets donc le même que le nom d'utilisateur
chown -R username:username path_to_dir
La commande peut s'exécuter pour divers systèmes / utilisateurs, donc ma préoccupation est que linux aura toujours une paire nom d'utilisateur (utilisateur): nom d'utilisateur (groupe) OU à un moment donné, ce nom de groupe par défaut peut donner une erreur.
Bien que j'ai commencé à trouver le GID de l'utilisateur appartient
id username | tr '(=)' ':' | awk -F: '{print $3}
Mais pour la connaissance, je veux savoir. Jusqu'à présent, l'analyse de /etc/passwd
/etc/groups
quelques utilisateurs comme «arrêt, arrêt, synchronisation, opeartor», tous les utilisateurs ont également répertorié dans les groupes.
EDIT 1: le nom d'utilisateur id -gn est également une bonne option
id -g username
?id -gn username
qui imprime le nom au lieu de l'ID.Réponses:
Il n'y a aucune garantie que le nom de groupe =
username
existera.Le scénario le plus courant est que les administrateurs système utilisent sous Linux pour créer un nouvel utilisateur localement sur le système sans spécification explicite pour le groupe, ce qui signifie que le groupe sera créé par défaut comme le nom d'utilisateur et affectera l'utilisateur à avoir le GID par défaut doit être du groupe nouvellement créé.
Cela ne signifie pas qu'un autre administrateur système suivra cette procédure et si vous lancez d'autres services de nommage dans le mélange comme NIS ou LDAP, le groupe attribué par défaut ne sera probablement pas le même que le nouveau GID avec le nom de groupe identique au nom d'utilisateur.
Donc, vous ne devriez pas vous fier au fait que username = groupname
la source
useradd
soient livrées avec un script qui crée par défaut un groupe du même nom, toutes ne l'ont pas. La dernière fois que je l'ai utilisé (il y a de nombreuses années), le script de création d'utilisateurs de slackware était par défaut d'avoir un seul groupeusers
dont tous les utilisateurs étaient devenus membres à la place. docs.slackware.com/slackbook:users suggère que cela peut toujours être le cas.Bien que l' idiome de groupe privé d'utilisateurs soit souvent utilisé dans les systèmes Linux modernes, * nix ne nécessite pas réellement de groupe principal unique pour chaque utilisateur, et il est tout à fait possible que plusieurs comptes d'utilisateurs partagent un groupe principal commun tel que
users
oustaff
.Même dans les cas où l'idiome UPG est appliqué, il n'y a aucune raison particulière que le GID numérique d'un UPG particulier soit égal à l'UID du propriétaire, bien que la plupart des outils de création de compte essaient d'attribuer les UID et GID dans l'ordre, s'ils le sont disponible. Les ID peuvent facilement être décalés si les utilisateurs et / ou les groupes doivent être rendus cohérents sur plusieurs systèmes (par exemple pour prendre en charge les partages NFS préexistants).
la source
Comme Ramesh l'a indiqué par défaut, l'UID et le GID sont égaux pour les utilisateurs ordinaires. Cependant, ce n'est pas toujours le cas , vous ne devez donc pas faire une telle hypothèse car cela pourrait faire des ravages dans votre système. Attribuer des autorisations de fichier / dossier à un mauvais groupe est quelque peu compliqué, n'est-ce pas?
Donc, la réponse courte: non, UID n'est pas toujours égal à GID. Pourtant,
/etc/passwd
contient à la fois l'UID et le GID du groupe par défaut sur la même ligne, il est donc assez facile de les extraire.la source
adduser
plutôt queuseradd
et les valeurs par défaut/etc/adduser.conf
sont définies pourUSERGROUPS=yes
créer un groupe pour chaque nouvel utilisateur. Ces groupes ont généralement (pas toujours, cependant) le même GID que l'UID de l'utilisateur pour lequel ils ont été créés.De ce lien, je vois les informations ci-dessous.
Un ID utilisateur (UID) est un entier positif unique attribué par un système d'exploitation de type Unix à chaque utilisateur. Chaque utilisateur est identifié dans le système par son UID, et les noms d'utilisateur ne sont généralement utilisés que comme interface pour les humains.
Les UID sont stockés, avec leurs noms d'utilisateur correspondants et d'autres informations spécifiques à l'utilisateur, dans le
/etc/passwd
fichier, qui peut être lu avec la commande cat comme suit:Le troisième champ contient l'UID et le quatrième champ contient l'ID de groupe (GID), qui par défaut est égal à l'UID pour tous les utilisateurs ordinaires.
ÉDITER
Cependant, comme le souligne @Karlson, il n'est pas vrai que l'UID sera égal à GID par défaut.
L'instruction n'est vraie que si aucun groupe ordinaire n'est ajouté séparément et qu'aucun groupe n'est explicitement spécifié lors d'une création d'utilisateur . Par défaut gid pour le prochain utilisateur ajouté =
max(gid) + 1
. Il n'y a pas de corrélation entre l'UID et le GID requis par un système * NIX, il se trouve qu'ils coïncident dans certains cas.Plus de références
http://www.thegeekstuff.com/2009/06/useradd-adduser-newuser-how-to-create-linux-users
la source
-g
flag suruseradd
le programme, un groupe sera créé pour vous et à moins qu'un décalage GID ne se soit produit, il sera = UID. Cependant, si la méthode de création n'est pas connue, vous ne pouvez pas compter sur le fait que ce sera le cas:uid=123456(ME) gid=777(ABC) groups=777(ABC)