Логин используется при входе в систему. Его также можно использовать для переключения от одного пользователя к другому в любое время (однако большинство современных оболочек имеют встроенную поддержку этой функции).
Если аргумент не указан, логин запрашивает имя пользователя.
Если пользователь не является пользователем root и существует файл/etc/nologin, содержимое этого файла выводится на экран, и вход в систему прекращается. Это обычно используется для предотвращения входа в систему, когда система отключается.
Если для пользователя в/etc/usertty указаны специальные ограничения доступа, они должны быть соблюдены, иначе попытка входа в систему будет отклонена и будет сгенерировано сообщение системного журнала. См. Раздел «Специальные ограничения доступа».
Если пользователь является пользователем root, то вход в систему должен происходить по tty, указанному в/etc/securetty. Сбои будут записываться с помощью системного журнала.
После проверки этих условий будет запрошен и проверен пароль (если пароль требуется для этого имени пользователя). Разрешается десять попыток, прежде чем логин умрет, но после первых трех ответ начинает очень медленно. Ошибки входа регистрируются через средство системного журнала. Эта возможность также используется для сообщения о любых успешных входах в систему root.
Если файл .hushlogin существует, то выполняется «тихий» вход в систему (это отключает проверку почты и печать времени последнего входа в систему и сообщения дня). В противном случае, если/var/log/lastlog существует, печатается время последнего входа в систему (и записывается текущий вход в систему).
Произвольные административные действия, такие как установка UID и GID tty, выполняются. Переменная среды TERM сохраняется, если она существует (другие переменные среды сохраняются, если используется -poption ). Затем устанавливаются переменные среды HOME, PATH, SHELL, TERM, MAIL и LOGNAME. PATH по умолчанию/usr/local/bin:/bin:/usr/bin: . для обычных пользователей и/sbin:/bin:/usr/sbin:/usr/bin для root. Наконец, если это не «тихий» вход в систему, печатается сообщение дня и проверяется файл с именем пользователя в/var/spool/mail, а также выводится сообщение, если оно имеет ненулевую длину.
Затем запускается оболочка пользователя. Если для пользователя в/etc/passwd не указана оболочка, то используется/bin/sh . Если в /etc/passwd не указан каталог, то используется / (домашний каталог проверяется на наличие файла .hushlogin , описанного выше. ).
Опции
- -p: . Используется getty (8), чтобы войти , чтобы не разрушать среду.
- -f: Используется для пропуска второй аутентификации при входе. Это специально не работает для root, и, похоже, не работает хорошо под Linux.
- -h: . Используется другими серверами (т. е. telnetd (8) ) для передачи имени удаленного хоста в логин , чтобы он мог быть помещенным в utmp и wtmp. Только суперпользователь может использовать эту опцию.
Специальные ограничения доступа
В файле/etc/securetty перечислены имена ttys, где root может войти в систему. В каждой строке должно быть указано одно имя устройства tty без префикса/dev /. Если файл не существует, root может войти в систему на любом tty.
В большинстве современных систем Linux используется PAM (Pluggable Authentication Modules). В системах, которые не используют PAM, файл/etc/usertty определяет дополнительные ограничения доступа для определенных пользователей. Если этот файл не существует, дополнительные ограничения доступа не накладываются. Файл состоит из последовательности разделов. Существует три возможных типа секций: КЛАССЫ, ГРУППЫ и ПОЛЬЗОВАТЕЛИ. Раздел CLASSES определяет классы шаблонов ttys и имени хоста, раздел GROUPS определяет разрешенные ttys и хосты для каждой группы, а раздел USERS определяет разрешенные ttys и хосты для каждого пользователя.
Каждая строка в этом файле может содержать не более 255 символов. Комментарии начинаются с символа # и продолжаются до конца строки.
Секция КЛАССОВ
Раздел CLASSES начинается со слова CLASSES в начале строки в верхнем регистре. Каждая следующая строка до начала нового раздела или конца файла состоит из последовательности слов, разделенных символами табуляции или пробелами. Каждая строка определяет класс ttys и шаблоны хоста.
Слово в начале строки становится определенным как собирательное имя для шаблонов ttys и host, указанных в остальной части строки. Это коллективное имя может использоваться в любом последующем разделе ГРУПП или ПОЛЬЗОВАТЕЛЕЙ. Такое имя класса не должно встречаться как часть определения класса, чтобы избежать проблем с рекурсивными классами.
Пример секции CLASSES:
КЛАССЫ
myclass1 tty1 tty2
myclass2 tty3 @ .foo.com
Это определяет классы myclass1 и myclass2 как соответствующие правые части.
Раздел ГРУПП
Раздел GROUPS определяет разрешенные ttys и хосты для каждой группы Unix. Если пользователь является членом группы Unix в соответствии с/etc/passwd и/etc/group и такая группа упоминается в разделе GROUPS в/etc/usertty, тогда пользователю предоставляется доступ, если группа есть.
Раздел GROUPS начинается со слова GROUPS в верхнем регистре в начале строки, и каждая следующая строка представляет собой последовательность слов, разделенных пробелами или табуляцией. Первое слово в строке – это имя группы, а остальные слова в строке указывают ttys и хосты, к которым членам этой группы разрешен доступ. Эти спецификации могут включать использование классов, определенных в предыдущих разделах CLASSES.
Пример раздела ГРУПП.
ГРУППЫ
sys tty1 @ .bar.edu
stud myclass1 tty4
В этом примере указывается, что члены группы sys могут входить в систему с tty1 и с хостов в домене bar.edu. Пользователи в группе stud могут войти в систему с hosts/ttys, указанной в классе myclass1, или из tty4.
Раздел ПОЛЬЗОВАТЕЛЕЙ
Раздел USERS начинается со слова USERS в верхнем регистре в начале строки, и каждая следующая строка представляет собой последовательность слов, разделенных пробелами или табуляцией. Первое слово в строке – это имя пользователя, и этому пользователю разрешено войти в систему с ttys и с хостов, упомянутых в остальной части строки. Эти спецификации могут включать классы, определенные в предыдущих разделах CLASSES. Если заголовок раздела не указан в верхней части файла, первый раздел по умолчанию будет разделом USERS.
Пример раздела USERS:
ПОЛЬЗОВАТЕЛИ
zacho tty1 @ 130.225.16.0/255.255.255.0
blue tty3 myclass2
Это позволяет пользователю zacho входить только в tty1 и с хостов с IP-адресами в диапазоне 130.225.16.0 – 130.225.16.255 и пользователем blue . разрешено входить в систему из tty3, и все, что указано в классе myclass2 .
В разделе USERS может быть строка, начинающаяся с имени пользователя * . Это правило по умолчанию, и оно будет применяться к любому пользователю, не совпадающему ни с одной другой строкой.
Если и линия USERS, и строка GROUPS соответствуют пользователю, то пользователю разрешается доступ из объединения всех ttys/hosts, упомянутых в этих спецификациях.
происхождения
Спецификации шаблонов tty и host, используемые в спецификации классов, групп и доступа пользователей, называются origin. Исходная строка может иметь один из следующих форматов:
- Имя устройства tty без префикса/dev /, например, tty1 или ttyS0 .
- Строка @localhost, означающая, что пользователю разрешен telnet/rlogin с локального хоста на тот же хост. Это также позволяет пользователю, например, выполнить команду: xterm -e/bin/login .
- Суффикс доменного имени, например @ .some.dom, означает, что пользователь может rlogin/telnet с любого хоста, у которого доменное имя имеет суффикс .some.dom.
- Диапазон адресов IPv4, записанный @ xxxx/yyyy, где xxxx – это IP-адрес в обычной десятичной системе счисления с точками, а yyyy – битовая маска в той же записи, указывающая, какие биты в адресе сравнивать с IP-адресом удаленного хоста. , Например, @ 130.225.16.0/255.255.254.0 означает, что пользователь может rlogin/telnet с любого хоста, IP-адрес которого находится в диапазоне 130.225.16.0 – 130.225.17.255 ,
Любому из вышеперечисленных источников может предшествовать указание времени в соответствии с синтаксисом:
timespec :: = '[' [':'] * ']'
day :: = 'mon' | 'вт' | ср | чт пт | "сидел" | 'солнце'
час :: = '0' | '1' | ... | '23'
hourspec :: = | '-'
день или час :: = |
Например, источник [mon: tue: wed: thu: fri: 8-17] tty3 означает, что вход разрешен с понедельника по пятницу с 8 до 17:59 (17:59) tty3. Это также показывает, что часовой диапазон a-b включает все моменты между a: 00 и b: 59. Указание одного часа (например, 10) означает промежуток времени между 10 и 10:59.
Не указание какого-либо временного префикса для tty или хоста означает, что вход в систему от этого источника разрешен в любое время. Если вы задаете префикс времени, обязательно укажите как набор дней, так и один или несколько часов или часов. Спецификация времени может не содержать пробелов.
Если не задано правило по умолчанию, то пользователям, не совпадающим ни с одной строкой/etc/usertty, разрешается войти в систему из любого места, как это происходит в стандартном режиме.
Используйте команду man (% man ), чтобы узнать, как команда используется на вашем компьютере.