2015-07-21 4 views
1

Зеркало Вопрос: https://unix.stackexchange.com/questions/217300/where-how-is-user-group-information-stored-in-ubuntu. (Я удалить один из них после того, как я получил ответ)Где и как информация о группе пользователей хранится в Ubuntu?


Два места можно: /etc/group и /etc/passwd.

Если я использую команду: adduser [username] [groupname], тогда пользователь будет добавлен в группу, а затем будет обновлен файл /etc/group.

Однако файл /etc/passwd не обновляется. если я проверю, к какой группе я принадлежу, с помощью команды groups, я могу видеть только группы, указанные в файле passwd .. поэтому пользователь не добавляется в базу группы по этому результату.


Я смущен.

  1. Что смысл storying информации группы в /etc/passwd и /etc/group соответственно?
  2. Почему adduser только обновить файл group?
  3. Как добавить группу в файл passwd через команду?
  4. Почему groups информация о группе отзывов от passwd файл, но не group файл?

Спасибо.

+0

Я чувствую, что этот вопрос может быть более подходящим для [unix.stackexchange.com] (http://unix.stackexchange.com) – NightShadeQueen

+0

О, спасибо за указание. Я спрошу у них соответственно. – songyy

ответ

1
  1. В этих традиционных текстовых файлах (есть и другие способы, например, LDAP), ваша первичной группа идет к /etc/passwd (это, например, использовать для разрешения файлов, создаваемых), все дополнительные группы идут в /etc/group.
  2. см 1.
  3. Это невозможно, но вы можете изменить основная группа с usermod -g
  4. Это неверное истолкование, groups показывает все группы. Но новая группа выбирается только при запуске нового сеанса (новый логин). Вы можете использовать команду newgrp, которая начинает сеанс с заданным именем группы в качестве вашей основной группы (вы должны быть участником этой группы) - в качестве побочного эффекта он будет обращаться к базе данных пользователей и обновлять список ваших групп.
+0

Спасибо, это действительно полный ответ. Еще один вопрос: какая разница между «основной группой» и «нормальной группой»? – songyy

+0

При запуске процесса есть * one * group id ... при запуске процесса он имеет идентификатор пользователя и идентификатор группы вашей основной группы. Вот почему файлы, которые вы создаете, обычно имеют идентификатор группы вашей основной группы. 'newgrp' запускает подсеанс с другой первичной группой, я думаю, вызывая' setsid (2) 'и' setgid (2) ', а затем' execv (3) 'your shell –

+0

Теперь я его получаю. Благодаря! – songyy

Смежные вопросы