Как использовать команду Linux — Команда Unix: вход в систему

Логин используется при входе в систему. Его также можно использовать для переключения от одного пользователя к другому в любое время (однако большинство современных оболочек имеют встроенную поддержку этой функции).

Если аргумент не указан, авторизоваться запрашивает имя пользователя.

Если пользователь не является пользователем 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, описанного выше). 

Параметры

  • -п Используется getty (8), чтобы сказать авторизоваться не разрушать окружающую среду
  • Используется для пропуска второй авторизации при входе. Это специально не работает для root, и, похоже, не работает хорошо под Linux.
  • -час Используется другими серверами (например, 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
шпилька 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
синий 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 :: = '[' [':'] * ']'
день :: = 'пн' | 'вт' | ср | чт пт | "сидел" | 'солнце'
час :: = '0' | '1' | ... | '23'
часы :: :: | '-'
день или час :: = |

Например, источник [mon: tue: wed: thu: fri: 8-17] tty3 означает, что вход разрешен с понедельника по пятницу с 8 до 17:59 (5:59 вечера) в tty3. Это также показывает, что часовой диапазон a-b ​​включает все моменты между a: 00 и b: 59. Указание одного часа (например, 10) означает промежуток времени между 10 и 10:59.

Не указание какого-либо временного префикса для tty или хоста означает, что вход в систему от этого источника разрешен в любое время. Если вы задаете префикс времени, обязательно укажите как набор дней, так и один или несколько часов или часов. Спецификация времени может не содержать пробелов.

Если не задано правило по умолчанию, то пользователям, не совпадающим ни с одной строкой / etc / usertty, разрешается войти в систему из любого места, как это происходит в стандартном режиме.

Использовать человек Команда (% man), чтобы увидеть, как команда используется на вашем компьютере.

Ссылка на основную публикацию