Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Redaktsia_4_UP_Linux_-_Osnovnaya_chast.doc
Скачиваний:
57
Добавлен:
06.11.2018
Размер:
2.02 Mб
Скачать

Ivanov:X:1002:101::/home/ivanov:/bin/bash

sidorov:!:1003:101::/home/sidorov:/bin/bash

Рис. 1.2. Фрагмент файла /etc/passwd

Каждая строка этого текстового файла состоит из 7 полей: регистрационное имя пользователя, признак пароля, идентификатор пользователя, идентификатор группы, дополнительная информация, «домашний» каталог пользователя, полный путь к файлу командного процессора.

В приведенном листинге значится один суперпользователь, 25 псевдопользователей и три обычных пользователя. Сами хэшированные пароли в файле /etc/passwd обычно не хранятся. Если в учетной записи пользователя вместо признака пароля стоит символ :х:, это указывает на то, что хэшированный пароль находится в другом файле – /etc/shadow. Однако в некоторых дистрибутивах Linux во втором поле записей файла /etc/passwd можно прочитать хэш-функцию пароля, которая является фальшивой и служит, вероятно, для отвлечения внимания начинающих хакеров.

В определенном смысле признак пароля представляет собой наиболее уязвимое место учетной записи. Удаление этого символа в большинстве версий Linux позволяет и обычным пользователям, и администратору входить в систему без пароля. Наличие в этом поле иных символов не предусмотрено.

Блокирование учетной записи производится командой

usermod -L <user_name> ,

при этом выполняется вставка символа «!» перед зашифрованным паролем в файле /etc/shadow, а по команде

usermod -U <user_name>

выполняется обратное действие.

Программа авторизации разрешает вход в систему пользователю с неполной учетной записью. Так, вставив в файл паролей запись из четырех полей:

echo john::999:99: >>/etc/passwd ,

администратор обеспечит беспрепятственный (т. е. «беспарольный») вход в систему пользователя john. По причине отсутствия у него домашнего каталога этот пользователь после входа окажется в корневом каталоге, а командную оболочку система ему выделит по умолчанию. Четыре поля в учетной записи минимально необходимы, и отсутствие любого из них воспринимается как отсутствие самой записи.

Еще одним уязвимым местом учетных записей пользователей является UID – уникальный идентификатор пользователя. Достаточно поменять в третьем поле UID обычного пользователя на ноль – и бесправный «юзер» становится еще одним администратором. Число таких администраторов может быть произвольным, главное, чтобы их имена различались между собой.

Путем непосредственного редактирования файлов /etc/passwd и /etc/shadow можно создать учетные записи с повторяющимися именами. Но авторизоваться в системе сможет только один пользователь, который поименован в файле /etc/passwd первым, т. к. выборка строк происходит от начала файла до первого совпадения.

Файл /etc/shadow (рис. 1.3) представляет собой продолжение таблицы учетных записей, каждая строка которой состоит из 9 полей, также разделенных двоеточиями:

  • регистрационное имя пользователя или псевдопользователя,

  • хэшированный пароль,

  • число дней, прошедших с полуночи 01.01.1970 до дня последнего изменения пароля,

  • минимальное число дней действия пароля со дня его последнего изменения,

  • максимальное число дней действия пароля,

  • число дней до даты, когда система начнет выдавать предупреждения о необходимости смены пароля,

  • число дней со времени обязательной смены пароля до блокировки учетной записи,

  • день блокировки учетной записи.

root:$1$gka0eOIt$3RXPSZVX9AMLVZ65gXmQA1:13766:0:::::

bin:*:9797:0:::::

daemon:*:9797:0:::::

adm:*:9797:0:::::

lp:*:9797:0:::::

sync:*:9797:0:::::

shutdown:*:9797:0:::::

halt:*:9797:0:::::

mail:*:9797:0:::::

news:*:9797:0:::::

uucp:*:9797:0:::::

operator:*:9797:0:::::

games:*:9797:0:::::

ftp:*:9797:0:::::

smmsp:*:9797:0:::::

mysql:*:9797:0:::::

rpc:*:9797:0:::::

gdm:*:9797:0:::::

pop:*:9797:0:::::

apache:*:9797:0:::::

messagebus:*:9797:0:::::

haldaemon:*:9797:0:::::

nobody:*:9797:0:::::

petrov:$1$omn/uYx4$LUIxQiJwjTRNswF.hcxUz1:14196:0:99999:7:::

Рис. 1.3. Содержимое файла /etc/shadow

Последнее, девятое, поле зарезервировано и не используется. В принципе можно обойтись всего первыми двумя полями, а пользователи с «пустым» паролем в этом файле вообще не нуждаются. Шесть временных отметок, связанных с паролем, можно установить командой chage (change aging – дословно: изменить возраст).

Файл /etc/shadow является секретным и недоступен для чтения и записи обычным пользователям. Право доступа к этому файлу имеет только администратор. Впрочем, на короткое время изменения своих паролей право записи в этот файл могут получить и обычные пользователи.

Первый пароль пользователю назначает администратор при создании учетной записи. Обновление паролей происходит в соответствии с выбранной политикой администрирования. В системе предусмотрена команда passwd, с помощью которой каждый пользователь может изменить свой пароль (если минимальный срок действия старого пароля был установлен и еще не истек). Passwd – это одна из утилит, которая может запускаться обычным пользователем, а выполняется всегда с правами администратора, поскольку ей приходится записывать новые данные в теневой файл /etc/shadow, чтение и запись которого разрешены только пользователю root. Такие исполняемые файлы имеют установленный бит SUID, речь о котором пойдет ниже.

Программа passwd запрашивает у пользователя старый пароль и, если он оказывается верным, требует ввести новый. На систему возлагается обязанность проверять вновь введенный пароль по словарю и по длине. Если введенный пароль окажется слишком простым или коротким, программа предупредит пользователя об опасности и запросит у него другой пароль. Обычный пользователь не сможет игнорировать такое предупреждение и вынужден будет подчиниться. Администратор, впрочем, может подтвердить свое намерение ввести простой пароль, и система вынуждена будет повиноваться своему хозяину.

Проверить парольные файлы /etc/passwd и /etc/shadow на предмет отсутствия ошибок позволяет утилита pwck (password check). Утилита способна выявить случайные ошибки, которые были пропущены командами useradd и usermod, а также допущены при непосредственном редактировании файлов. В частности, выявляются дублирующие строки, связанные с одним именем, пользовательские записи без установленного пароля, незавершенные записи и отдельные поля, наличие файлов, на которые дана ссылка, и др. Но преднамеренные и хитрые искажения парольных файлов этой утилитой не выявляются, и визуальная проверка файлов вовсе не исключается.

Для модификации существующей учетной записи используется команда usermod, которая имеет такой же синтаксис, что и команда useradd. Эта команда не создает, а модифицирует учетную запись, и после команды следует указывать только те параметры, которые подлежат изменению. В случае необходимости удаления параметра, назначенного утилитой useradd, он удаляется указанием пустого символа, например командой

usermodG “” petrov

пользователь petrov удаляется из всех дополнительных групп.

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

Команда без опций

userdel <user_name>

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

Поскольку конфигурационные файлы /etc/group и /etc/passwd доступны для чтения любому пользователю, из них может быть извлечена информация об UID, GID и символьных именах групп любого пользователя, имеющего учетную запись. Однако проще получить такую информацию с помощью уже упомянутой команды id <user_name>. Закрывать эти файлы для чтения нельзя, так как ими пользуются многие утилиты, в том числе и id.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]