Добавление пользователей в систему, управление паролями и т.д.
Статья включает:
В данном разделе мы рассмотрим, как работают учетные записи пользователей, как с помощью утилиты passwd пользователи могут изменять пароль своей учетной записи, а системные администраторы – создавать и обслуживать учетные записи пользователей посредством редактирования файлов базы данных учетных записей.
![]() | Во встраиваемой системе разработчик может удалить файлы, относящиеся к учетным записям, отключить вход в систему и обращение к пользователям и группам по именам. При этом система остается полностью многопользовательской и поддерживает выполнение программ и владение системными ресурсами множеством пользователей с различными идентификаторами. Если ваша система настроена именно таким образом, большая часть материала в этом разделе может вам не понадобиться. |
Пользовательская учетная запись связывает текстовое имя пользователя с числовым идентификатором пользователя, идентификатором группы, паролем для входа в систему, полным именем, домашним каталогом и начальным командным интерпретатором (login shell). Эти данные хранятся в файлах /etc/passwd
и /etc/shadow
, которые используются утилитами входа в систему и другими приложениями, нуждающимися в информации учетных записей.
![]() | Имена пользователей и пароли должны создаваться с учетом регистра. |
Учетные записи позволяют выполнять следующие действия:
/etc/passwd
и /etc/group
(например, команда ls -l отображает имена, а не идентификаторы пользователей и групп, владеющих файлами); ~имя_пользователя
в фактические путевые имена на основе информации о домашних каталогах пользователей, хранимой в учетных записях. Группы (groups) используются для связывания аналогичных прав доступа с группами пользователей. Список членов группы определяется записями в файлах /etc/passwd
и /etc/group
, а права доступа для членов группы – идентификатором группы выполняющейся программы, идентификатором группы и правами доступа к файлам и каталогам. При входе в систему пользователь считается принадлежащим к группе, указанной в файле /etc/passwd
. Переключиться в другую группу можно с помощью утилиты newgrp.
После входа в систему возможности доступа ваших программ к ресурсам системы и выполнения операций (например, передачи сигналов другим процессам) определяются числовым идентификатором пользователя, от имени которого выполняются программы. Текстовые имена используются только утилитами и приложениями, которым требуется выполнять преобразование между именами и числовыми идентификаторами.
![]() | Изменение имени пользователя, группы, идентификатора и прочих параметров в базе данных учетных записей не влияет на доступ к файлам до тех пор, пока пользователь не войдет в систему заново. |
Пользователь root
(с идентификатором 0) имеет право выполнять почти любые действия с файлами независимо от их владельцев и установленных разрешений. Более подробные сведения см. в Владение файлами и права доступа.
![]() | Когда командный интерпретатор обрабатывает путевое имя ~имя_пользователя , он считывает домашний каталог пользователя из файла /etc/passwd . Если вы удалите или измените учетную запись пользователя, то командный интерпретатор, ранее использовавший путевое имя ~имя_пользователя для доступа к домашнему каталогу, может попытаться воспользоваться устаревшей информацией, поскольку командный интерпретатор кэширует такого рода данные. Новые командные интерпретаторы заново считывают данные из файла /etc/passwd . Это может вызывать проблемы в тех случаях, когда командный сценарий, использующий ~имя_пользователя , запускает другой сценарий, который использует эту же возможность для определения полного пути. Эти сценарии будут оперировать разными путями, если информация о домашнем каталоге изменилась с момента первого считывания. |
Как правило, сеанс работы с компьютером начинается с процедуры входа в систему (см. Вход в систему, выход из нее и завершение работы). Действия системы после процедуры входа зависят от конфигурации учетной записи.
При входе пользователя система создает для него сеанс, лидером которого является процесс с идентификатором пользователя и идентификатором группы по умолчанию, заданными в файле /etc/passwd
.
Идентификаторы пользователя и группы определяют разрешения, которые имеет этот процесс для доступа к файлам и системным ресурсам. Кроме того, если процесс создает какие-либо файлы или каталоги, то они принадлежат данному пользователю и группе. Каждый новый процесс, запускаемый пользователем, наследует идентификатор пользователя и идентификатор группы от родительского процесса. Более подробные сведения см. в Владение файлами и права доступа.
![]() | Более подробные сведения о характеристиках, наследуемых программами от родительских программ, см. в разделе в spawn(). Информацию о сессиях и группах процессов можно найти в IEEE Std 1003.1-2001 Standard for Information Technology Portable Operating System Interface. |
Вход в систему в текстовом режиме (утилита login) происходит иначе, чем в графическом режиме (утилита phlogin2-ksz или phlogin2):
/bin/sh
), однако в его роли может также выступать любое приложение, запускаемое при входе пользователя в систему; Однако при входе в графическом режиме начальная оболочка запускается не в виде интерактивной программы, а с аргументами -c /usr/bin/ph
.
![]() | Если в качестве начальной оболочки используется не /bin/sh или /bin/ksh , то, вероятно, вы не сможете войти в систему с помощью утилит phlogin2-ksz и phlogin2. |
База данных учетных записей состоит из файлов, перечисленных с соответствующими разрешениями доступа в таблице ниже:
Файл | Владелец | Группа | Разрешения |
---|---|---|---|
/etc/passwd | root | root | rw- r-- r-- |
/etc/group | root | root | rw- r-- r-- |
/etc/shadow | root | root | rw- --- --- |
/etc/.pwlock | root | root | rw- r-- r-- |
Обратите внимание на неограниченный доступ на чтение файла /etc/passwd
, что позволяет стандартным утилитам получать информацию о пользователях. Однако шифрованные пароли хранятся не в этом файле, а в /etc/shadow
, доступ к которому имеет только пользователь root
. Таким образом, пароли защищаются от дешифрации.
![]() | Для обеспечения безопасности не изменяйте вышеописанные разрешения. |
Все строки в файле /etc/passwd
имеют следующий формат:
username:has_pw:userid:group:comment:homedir:shell
Компоненты строки разделяются двоеточиями. Далее приводятся их описания:
/etc/shadow
. /bin/sh
).
Приведем пример записи в файле /etc/passwd
:
fred:x:290:120:Fred L. Jones:/home/fred:/bin/sh
Все строки в файле /etc/group
имеют следующий формат:
groupname:x:group_ID:[username[,username]...]
Компоненты строки разделяются двоеточиями. Далее приводятся их описания:
Пример записи:
techies:x:123:michel,ali,sue,jake
Все строки в файле /etc/shadow имеют следующий формат:
username:password:0:0
Компоненты строки разделяются двоеточиями. Далее приводятся их описания.
Утилита passwd создает файл /etc/.pwlock
для того, чтобы сообщить другим запущенным ее экземплярам, что файл паролей в данный момент изменяется. По завершении своей работы утилита passwd удаляет файл блокировки. Если системному администратору необходимо отредактировать файлы учетной записи, ему следует выполнить следующие действия:
/etc/.pwlock
(если он уже существует, то дождаться его удаления). /etc/.pwlock
.
Обычные пользователи (т.е. не root
) могут менять свой пароль, а также настраивать окружение посредством изменения конфигурационных файлов, расположенных в домашнем каталоге (см. Настройка параметров окружения и оболочки).
Для изменения пароля служит утилита passwd, а в оконном окружении Photon также может использоваться утилита phksz. Обе утилиты запрашивают текущий пароль и затем предлагают ввести новый. Для проверки ошибок новый пароль вводится дважды. С помощью утилиты phksz вы можете также "привязать" к вашему пользователю пиктограмму.
В зависимости от правил задания паролей, установленных системным администратором, утилита passwd может потребовать, чтобы вводимый пароль имел определенную длину или содержал определенные элементы (например, сочетание букв, цифр и знаков препинания). Если пароль не соответствует установленному критерию, утилита passwd запросит ввести другой пароль.
Если к системе имеют доступ другие пользователи (физически, через Интернет или коммутируемое соединение), пароль следует выбрать таким образом, чтобы он гарантировал защиту от несанкционированного доступа. Для этого пароль должен отвечать следующим требованиям:
Более подробные сведения об обеспечении безопасности систем см. в Обеспечение безопасности системы.
Если вы забыли пароль, попросите системного администратора (пользователя root) назначить новый пароль для вашей учетной записи. root
— единственный пользователь, который может сделать это.
Вообще никто не может получить ваш старый пароль из файла /etc/shadow
. Если пароль короткий или состоит из одного слова, системный администратор (или злоумышленник) может без труда подобрать его, поэтому лучше задать новый пароль.
Если вы системный администратор и забыли пароль пользователя root, вам следует найти альтернативный способ доступа к файлам /etc/passwd
и /etc/shadow
, чтобы переустановить пароль. Например, вы можете использовать такие способы:
root
(например, с установочного компакт-диска), и установите пароль вручную; /etc/passwd
и /etc/shadow
, и подключите его к другой машине ЗОСРВ «Нейтрино», на которой вы можете отредактировать их; /etc/passwd
и /etc/shadow
и затем перенесите его в целевую систему.
Системный администратор должен добавлять и удалять учетные записи пользователей и их группы, управлять паролями и разрешать проблемы, связанные с работой пользователей. Для этого следует войти в систему как root
, поскольку другие пользователи не имеют разрешение на изменение файлов /etc/passwd
, /etc/shadow
и /etc/group
.
![]() | Изменять пароль существующего пользователя с помощью утилиты passwd можно в любое время. Однако любые другие изменения базы данных учетных записей во время использования системы могут быть небезопасны. Следующие операции по изменению учетных данных пользователя могут привести к некорректной работе приложений и утилит:
/etc/.pwlock . |
Как описано ранее, для изменения пароля учетной записи следует пользоваться утилитой passwd. Однако для решения следующих задач вам понадобится текстовый редактор:
В оконном окружении Photon вы можете воспользоваться командой phksz, которая обеспечивает графический интерфейс с утилитой passwd и позволяет выбирать пиктограмму и оболочку пользователя, а также редактировать группы.
Примечание. Изменения файлов учетной записи вручную не проверяются на соответствие правилам, установленным в файле конфигурации утилиты passwd. (Более подробные сведения можно найти в информации о файле /etc/default/passwd
)
Чтобы добавить пользователя:
root
; passwd новое_имя_пользователя
![]() | Длина имени пользователя не должна превышать 14 символов, в противном случае пользователь не сможет войти в систему. |
Если вы задаете уже зарегистрированное ранее имя, утилита passwd считает, что вы хотите изменить его пароль. Если вы действительно хотите выполнить эту операцию, введите новый пароль и подтвердите его. В противном случае нажмите комбинацию клавиш <Ctrl> + C
, чтобы завершить утилиту passwd сохранения изменений.
Если имя пользователя еще не зарегистрировано, утилита passwd предложит ввести данные для учетной записи (список групп пользователя, домашний каталог и начальный командный интерпретатор). Конфигурационный файл /etc/default/passwd
определяет правила, по которым устанавливаются данные по умолчанию для новых учетных записей (более подробные сведения см. в описании команды passwd.)
Утилита passwd запрашивает следующие данные.
![]() | Утилита passwd добавляет нового пользователя в запись группы в файле /etc/group . Это можно сделать вручную с помощью текстового редактора (Более подробные сведения см. в подразделе "Определение групп" далее в этой статье). |
/home/имя_пользователя
. Утилита passwd создает заданный каталог. Если он уже существует, то по умолчанию предлагается выбрать другой путь. Для отключения этой возможности см. сведения о файле /etc/default/passwd
в описании команды passwd. /bin/sh
), обеспечивающий интерактивную командную строку. ![]() | Вместо начальной оболочки можно задать любую программу, однако ей нельзя передавать аргументы командной строки. Кроме того, вход в систему с использованием графических утилит phlogin2-ksz и phlogin2 невозможен, если начальная программа несовместима со стандартом POSIX. |
.profile
, находящемся в домашнем каталоге каждого пользователя. Командный интерпретатор /bin/sh
запускает этот профиль автоматически в начале работы. Более подробные сведения см. Настройка параметров окружения и оболочки. Чтобы удалить учетную запись пользователя, выполните следующие действия.
/etc/.pwlock
не существует, создайте его, в противном случае дождитесь его удаления; /etc/passwd
и /etc/shadow
, чтобы запретить вход пользователя в систему, либо укажите в качестве начального командного интерпретатора программу, которая выдает специальное сообщение и завершается; /etc/group
; /etc/.pwlock
; Вместо удаления пользователя вы можете отключить его учетную запись, изменив ее пароль с помощью утилиты passwd. В этом случае остается возможность определить, какими системными ресурсами владел пользователь, т.к. преобразование идентификатора пользователя в имя пользователя продолжает работать. При выполнении этого действия утилита passwd блокирует и разблокирует базу данных учетных записей.
Если когда-нибудь возникнет необходимость воспользоваться этой учетной записью, вы сможете либо переключиться на этого пользователя с пользователя root с помощью утилиты su ("switch user"), либо войти под этой учетной записью в систему. Если вы забудете пароль этой учетной записи, то всегда можете изменить его через пользователя root
.
Что следует сделать с ресурсами, которыми владел бывший пользователь? Далее перечислено несколько возможностей:
find / -user имя_пользователя_или_ID -chown новое_имя_пользователя
find / -user имя_пользователя_или_ID | pax -wf архивный_файл
find / -user имя_пользователя_или_ID -remove!
![]() | Если вы удалите учетную запись пользователя из базы данных, но не отмените или измените информацию о владении файлами, существует вероятность того, что созданный в будущем новый пользователь получит освобожденный идентификатор и поэтому автоматически станет владельцем всех файлов удаленного пользователя. |
Запись пользователя в файле /etc/passwd
определяет группу, в которой он будет находиться при входе в систему, а в файле /etc/group
определены все другие группы, членом которых является пользователь и в которые он может перейти с помощью утилиты newgrp. Как и в случае с именами и идентификаторами пользователя, возможности доступа программы к ресурсам системы определяются числовым эффективным идентификатором группы. Рассмотрим следующий пример. Вы хотите обеспечить доступ к файлу /home/projects
для участников группы разработки, но не желаете, чтобы другие пользователи имели доступ к нему. Для этого выполните следующие действия:
projects
в файл /etc/group
и включите в нее всех необходимых пользователей (более подробные сведения см. в следующем разделе); /etc/passwd
, указав для них новый идентификатор группы по умолчанию; /home/projects
и его содержимого: chgrp -R projects /home/projectschmod -R g+rw /home/projects
chmod -R o-rwx /home/projects
Более подробные сведения см. в Владение файлами и права доступа.
Чтобы создать новую группу, откройте файл /etc/group
в текстовом редакторе и добавьте строку, определяющую имя, идентификатор и членов новой группы. Например:
techies:x:101:michel,jim,sue
Более подробные сведения об указанных полях см. в разделе "Файл /etc/group" ранее в этой статье.
![]() | Эту работу следует выполнять во время простоя системы. Если во время изменения файла /etc/group посредством текстового редактора какое-либо приложение или утилита (например, ls -l, newgrp) попытается его прочитать, это может привести к некорректной работе. |
Чтобы включить в группу нового пользователя (например, при создании новой учетной записи пользователя с помощью утилиты passwd), необходимо отредактировать файл /etc/group
и добавить этого пользователя в соответствующую запись. Например, если вы хотите включить пользователя zeke
в существующую группу с именем techies
, измените строку:
наtechies:x:101:michel,jim,sue
Изменять файлtechies:x:101:michel,jim,sue,zeke
/etc/group
следует лишь при условии, что никакая программа или пользователь не обращаются к нему в данный момент.
Далее рассмотрены некоторые проблемы, с которыми вы можете столкнуться при работе с паролями и учетными записями пользователей.
/etc/.pwlock
. Существование этого файла препятствует выполнению passwd. Если в процессе обновления базы данных система терпит аварию и файл /etc/.pwlock
сохраняется, утилита passwd не будет работать до тех пор, пока системный администратор не удалит его. В случае повреждения файлов паролей при системном сбое администратору также следует использовать резервные файлы /etc/oshadow
и /etc/opasswd
для восстановления /etc/shadow
и /etc/passwd
, соответственно, чтобы предотвратить возможные проблемы. <Caps Lock>
не была нажата. Чтобы избежать подсказок неавторизованным пользователям, утилита login не сообщает, какие именно данные (имя пользователя или пароль) введены неверно. Если вам не удается разрешить проблему самостоятельно, системный администратор (пользователь root
) может установить новый пароль для вашей учетной записи. Подобная проблема может возникать в случаях, когда отсутствует один или несколько файлов, хранящих информацию о паролях. Если системный администратор в данный момент обновляет эти файлы, то неполадка, скорее всего, временная. Попытайтесь войти в систему заново через 1—2 минуты. Если это не поможет, обратитесь за помощью к системному администратору. Если вы являетесь системным администратором и не можете получить доступ к системе, попробуйте сделать это с другой машины ЗОСРВ «Нейтрино» через сеть Qnet, с инструментальной машины через интерфейс qconn, либо загрузите и запустите систему с установочного компакт-диска, чтобы обнаружить и устранить неполадку посредством командного интерпретатора. /bin:/usr/bin
) утилиты login; укажите полное путевое имя программы в записи пользователя в файле /etc/passwd
(например, /usr/local/bin/myprogram
);
![]() | Использование средств защиты информации от несанкционированного доступа, разработанных в соответствии с требованиями российских руководящих документов описано в документе «Описание применения. Часть 2. Комплекс средств защиты». |
Предыдущий раздел: перейти