Версия ответа Райана Новосельски от Весы К. у меня работает, но строки в:
/etc/pam.d/sshd
не:
/etc/pam.d/login
В моем случае, я просто хочу UID 1000 в Ubuntu 14.04 LTS, чтобы разрешить вход через SSH.
# Disallow non-root logins when /etc/nologin exists.
account [success=1 default=ignore] pam_succeed_if.so quiet uid eq 1000
account required pam_nologin.so
Does the group ID field depend on user name or on user ID?
Нет. Каждая запись учетной записи содержит обязательные поля имени пользователя, UID (, идентификатора пользователя )и GID (, идентификатора группы )в строке ввода /etc/passwd. Но GID ни от чего не «зависит». Вы можете добавить свои собственные группы в /etc/group
с помощью команды addgroup.
In other words, can different usernames for the same user ID have different group IDs, or must all the usernames for the same user ID have the same group ID?
Да, между UID и GID нет «зависимости», если вас это интересует. GID в записи /etc/passwd
обозначает идентификатор группы пользователя по умолчанию, но вы можете назначить пользователя любому количеству групп в /etc/group
, используя команду usermod
:
sudo usermod -a -G groupname username
Вы также можете изменить GID по умолчанию на любой другой. По умолчанию GID создается под тем же именем, что и у пользователя, но это не является жестким требованием. Вы можете изменить это.
Ключ в пользовательской базе данных, /etc/passwd
или что-то еще, является именем для входа в систему :, это все, что вы предоставляете для идентификации себя при входе в систему. Из этого ключа программа может получить всю другую сохраненную информацию. в пользовательской базе; это происходит независимо от любого другого пользователя в пользовательской базе данных, даже от других пользователей с тем же идентификатором пользователя. (Как правило, это делается с помощьюgetpwnam
или getpwnam_r
, либо напрямую, либо через PAM.)
Таким образом, имя входа ведет к сохраненному паролю, идентификатору пользователя, (основному )идентификатору группы, информации GECOS, домашнему каталогу и оболочке. Это означает, что два пользователя могут использовать один и тот же идентификатор пользователя, но иметь разные домашние каталоги и оболочки! (Это обычно использовалось в прошлом, чтобы обеспечить резервную -назад, статически -связанную оболочку для root; у вас будет обычный пользователь root
с идентификатором 0 и оболочкой /bin/bash
или чем-то еще, и еще один пользователь, скажем sashroot
, с идентификатором 0 и другой оболочкой.)
Отсюда и ответ на
does the group ID field depend on user name or on user ID?
заключается в том, что это зависит только от имени пользователя.
Ключ в базе данных группы также является именем группы. Из этого ключа программа может получить всю остальную информацию, хранящуюся в базе данных группы; опять же, это происходит без учета какой-либо другой группы в базе данных групп. (При определении вторичных групп пользователя этот процесс сложнее, чем чтение базы данных пользователей. :Нет функции для составления списка групп, к которым принадлежит данный пользователь, поэтому обычно это делается в цикле, включающемgetgrent
иendgrent
.)
Таким образом, имя группы ведет к паролю группы, идентификатору группы и списку членов группы, который представляет собой список имен пользователей. Чтобы построить пользовательский набор вторичных групп, все группы перечисляются, и имя входа пользователя сопоставляется с членами группы. Таким образом, два разных пользователя с одним и тем же идентификатором могут не только иметь разные первичные группы, но и принадлежать к разным наборам вторичных групп!
Отсюда и ответ на
In other words, can different usernames for the same user ID have different group IDs, or must all the usernames for the same user ID have the same group ID?
заключается в том, что группы пользователя зависят только от имени пользователя, и разные имена пользователей могут иметь общий идентификатор пользователя, но иметь разные первичные и вторичные группы.