Я должен изменить chmod
владельца файла / каталога, используя. Я знаю только имя пользователя владельца, но хочу изменить имя группы по умолчанию одновременно. На данном этапе название группы не определено, поэтому я ставлю так же, как имя пользователя
chown -R username:username path_to_dir
Команда может выполняться для разных систем / пользователей, поэтому я обеспокоен тем, будет ли в linux всегда указана пара имя пользователя (пользователь): имя пользователя (группа) ИЛИ в какой-то момент это имя группы по умолчанию может вызвать ошибку.
Хотя я начал искать GID от пользователя принадлежит
id username | tr '(=)' ':' | awk -F: '{print $3}
Но для знания я хочу знать. До настоящего времени, за /etc/passwd
/etc/groups
исключением нескольких пользователей, таких как «shutdown, halt, sync, opeartor», все пользователи также были перечислены в группах.
РЕДАКТИРОВАТЬ 1: id -gn имя пользователя также хороший вариант
id -g username
?id -gn username
который печатает имя вместо идентификатора.Ответы:
Нет гарантии, что groupname =
username
будет существовать.Наиболее распространенным сценарием является то, что использование системными администраторами в Linux создает нового пользователя локально в системе без явной спецификации для группы, что означает, что группа будет создана по умолчанию так же, как имя пользователя, и назначит пользователя для GID по умолчанию для вновь созданной группы.
Это не означает, что другой системный администратор будет следовать этой процедуре, и если вы добавите в сочетание другие службы именования, такие как NIS или LDAP, группа, назначенная по умолчанию, вероятно, будет отличаться от нового GID с именем группы, совпадающим с именем пользователя.
Так что не стоит полагаться на то, что username = groupname
источник
useradd
сценарием, который по умолчанию создает группу с одинаковым именем, не все имеют. В прошлый раз, когда я использовал его (много-много лет назад), сценарий создания пользователей в slackware по умолчанию имел одну группу,users
членом которой были все пользователи. docs.slackware.com/slackbook:users предполагает, что это все еще может иметь место.Хотя идиома частной группы пользователей часто используется в современных системах Linux, * nix фактически не требует уникальной первичной группы для каждого пользователя, и вполне возможно, что несколько учетных записей пользователей совместно используют общую первичную группу, такую как
users
илиstaff
.Даже в тех случаях, когда применяется идиома UPG, нет особой причины, по которой числовой GID конкретной UPG должен быть равен UID владельца, хотя большинство инструментов создания учетной записи будут пытаться назначать UID и GID по порядку, если они имеется в наличии. Идентификаторы могут легко выйти из-под контроля, если необходимо обеспечить согласованность пользователей и / или групп в нескольких системах (например, для размещения уже существующих общих ресурсов NFS).
источник
Как указал Рамеш по умолчанию, UID и GID одинаковы для обычных пользователей. Однако это не всегда так, поэтому вы не должны делать такое предположение, поскольку это может нанести ущерб вашей системе. Присвоение прав доступа к файлам / папкам для неправильной группы несколько грязно, не так ли?
Итак, короткий ответ: нет, UID не всегда равен GID. Тем не менее,
/etc/passwd
содержит UID и GID группы по умолчанию в одной строке, поэтому их довольно легко извлечь.источник
adduser
а не заданыuseradd
значения по умолчанию/etc/adduser.conf
,USERGROUPS=yes
которые создают группу для каждого нового пользователя. Эти группы обычно (хотя и не всегда) имеют тот же GID, что и UID пользователя, для которого они были созданы.По этой ссылке я вижу информацию ниже.
Идентификатор пользователя (UID) - это уникальное положительное целое число, назначаемое Unix-подобной операционной системой каждому пользователю. Каждый пользователь идентифицируется в системе по его UID, а имена пользователей обычно используются только как интерфейс для людей.
UID хранятся вместе с соответствующими именами пользователей и другой пользовательской информацией в
/etc/passwd
файле, который можно прочитать с помощью команды cat следующим образом:Третье поле содержит UID, а четвертое поле содержит идентификатор группы (GID), который по умолчанию равен UID для всех обычных пользователей.
РЕДАКТИРОВАТЬ
Однако, как указывает @Karlson, неверно, что UID будет равен GID по умолчанию.
Это утверждение верно только в том случае, если никакие обычные группы не добавляются отдельно и никакие группы не указываются явно при создании любого пользователя . По умолчанию gid для следующего добавленного пользователя =
max(gid) + 1
. Нет никакой корреляции между UID и GID, требуемой любой системой * NIX, в некоторых случаях они просто совпадают.Больше ссылок
http://www.thegeekstuff.com/2009/06/useradd-adduser-newuser-how-to-create-linux-users
источник
-g
флагеuseradd
программы, создаст для вас группу и, если не произошел сдвиг GID, он будет = UID. Однако, если метод создания неизвестен, вы не можете полагаться на тот факт, что это будет иметь место:uid=123456(ME) gid=777(ABC) groups=777(ABC)