Ubuntu Manpage: passwd - изменяет пароль пользователя.

Файл /etc/passwd содержит список пользователей, которые известны системе. В
процессе регистрации пользователя система обращается к этому файлу в поисках идентификатора пользователя и его домашнего каталога.

Стуктура записей в /etc/passwd

Каждая строка файла описывает одного пользователя и 7 полей , разделенных двоеточиями:

  1. Регистрационное имя . Регистрационные имена должны быть уникальными и состоять не более чем из 32 символов.
    Они могут содержать любые символы, кроме двоеточия и символа новой строки. Они не должны начинаться с цифры.
  2. Зашифрованный пароль или «заполнитель» пароля.

    В данном поле возможно присутствие:

    1. символа «х» --
      так указыватеся, что пароль храниться
    2. символа «*»
      -- значит, что данная учетная запись временно отключена.
    3. или набора случайных символов и чисел
      -- значит указывается непосредственный пароль пользователя в зашифрованном виде.
  3. Идентификатор пользователя - это 32-битное целое число, которое уникально идентифицирует пользователя в системе.
    По умолчанию, идентификаторы меньше 500 зарезервированы для служебных учетных записей. Регулярные пользователи имеют идентификаторы, начиная с 500.
  4. Идентификатор группы по умолчанию .
    Как и идентификатор пользователя, идентификатор группы (GID) является 32-битным целым числом.
    Причем:
    • Идентификатор 0 зарезервирован для группы с именем root,
    • идентификатор 1 - для группы bin,
    • а 2 - для группы daemon.

    Группы определяются в , а поле идентификатора группы в файле /etc/passwd задает стандартный («эффективный») идентификатор на момент регистрации пользователя в системе.

    Этот идентификатор не играет особой роли при определении прав доступа; он используется лишь при создании новых файлов и каталогов .

    Новые файлы обычно включаются в эффективную группу своего владельца, но если у каталога установлен специальный бит setgid (02000) или файловая система смонтирована с опцией grpid, новые файлы принадлежат группе владельца каталога.
    По умолчанию, в ОС Linux для каждого нового пользователя создается новая группа с таким же регистрационным именем и идентификатором.

  5. Поле персональных данных . Поле GECOS в основном используется для хранения персональной информации о каждом пользователе. Оно не имеет четко определенного синтаксиса.

    Структура данного поля может быть произвольной, но команда finger интерпретирует разделенные запятыми элементы данного поля в следующем порядке:

    • полное имя;
    • номер офиса и здания;
    • рабочий телефон;
    • домашний телефон.
  6. Домашний каталог . Войдя в систему, пользователь попадает в свой домашний каталог. Если на момент регистрации этот каталог отсутствует, выводится сообщение о его отсутствии. Если в качестве значения поля домашнего каталога по умолчанию DEFAULT_HOME в файле /etc/login.defs установлено «no», продолжение регистрации пользователя будет невозможно; в противном случае пользователь попадает в корневой каталог.
    По умолчанию, домашние каталоги пользователей создаются в каталоге /home. При добавлении в систему нового пользователя в его домашний каталог копируются все файлы из каталога /etc/skel, в котором содержаться персональные конфигурационные файлы командного интерпретатора и различных программ.
  7. Командный интерпретатор .
    -- В качестве регистрационной оболочки, как правило, задается интерпретатор команд, например, /bin/sh

    /bin/csh

    ,
    -- но, в принципе, это может быть любая программа. По умолчанию используется интерпретатор bash.

    Пользователи могут менять интерпретатор с помощью команды chsh. Файл /etc/shells содержит список тех интерпретаторов, которые доступны для выбора.

Пример записи в /etc/passwd

Типовые записи файла /etc/passwd имеет следующий вид (приведём две строки):

Root:х:0:0:test,w,1,w:/root:/bin/bash sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin

В первой записи указана учетная запись пользователя root. Как видно, идентификатор пользователя и идентификатор группы пользователя для данной учетной записи совпадают и равны нулю. Затем следует поле персональных данных, домашний каталог, которым является каталог /root и командный интерпретатор пользователя - /bin/bash.

passwd - изменяет пароль пользователя

СИНТАКСИС

passwd [параметры ] [УЧЁТНАЯ_ЗАПИСЬ ]

ОПИСАНИЕ

Программа passwd изменяет пароли пользовательских учётных записей. Обычный пользователь может изменить пароль только своей учётной записи, суперпользователь может изменить пароль любой учётной записи. Программа passwd также изменяет информацию об учётной записи или срок действия пароля. Изменение пароля Сначала пользователя попросят ввести старый пароль, если он был. Этот пароль зашифровывается и сравнивается с имеющимся. У пользователя есть только одна попытка ввести правильный пароль. Для суперпользователя этот шаг пропускается, для того чтобы можно было изменить забытый пароль. После ввода пароля проверяется информация об устаревании пароля, чтобы убедиться, что пользователю разрешено изменять пароль в настоящий момент. Если нет, то passwd не производит изменение пароля и завершает работу. Затем пользователю предложат дважды ввести новый пароль. Значение второго ввода сравнивается с первым и для изменения пароли из обеих попыток должны совпасть. Затем пароль тестируется на сложность подбора. Согласно общим принципам, пароли должны быть длиной от 6 до 8 символов и включать один или более символов каждого типа: · строчные буквы · цифры от 0 до 9 · знаки пунктуации Не включайте системные символы стирания и удаления. Программа passwd не примет пароль, который не имеет достаточной сложности. Выбор пароля Безопасность пароля зависит от стойкости алгоритма шифрования и размера пространства ключа. В старых системах UNIX метод шифрования основывался на алгоритме NBS DES. Сейчас рекомендуют более новые методы (смотрите ENCRYPT_METHOD ). Размер пространства ключа зависит от степени произвольности выбранного пароля. При обеспечении безопасности пароля выбирают нечто среднее между сложным паролем и сложностью работы с ним. По этой причине, вы не должны использовать пароль, который является словом из словаря или который придётся записать из-за его сложности. Также, пароль не должен быть названием чего-либо, номером вашей лицензии, днём рождения и домашним адресом. Обо всём этом легко догадаться, что приведёт к нарушению безопасности системы. О том, как выбрать стойкий пароль, читайте в http://ru.wikipedia.org/wiki/ Сложность_пароля.

ПАРАМЕТРЫ

Параметры команды passwd : -a , --all Этот параметр можно использовать только вместе с -S для вывода статуса всех пользователей. -d , --delete Удалить пароль пользователя (сделать его пустым). Это быстрый способ заблокировать пароль учётной записи. Это сделает указанную учётную запись беспарольной. -e , --expire Немедленно сделать пароль устаревшим. В результате это заставит пользователя изменить пароль при следующем входе в систему. -h , --help Показать краткую справку и закончить работу. -i , --inactive ДНЕЙ Этот параметр используется для блокировки учётной записи по прошествии заданного числа дней после устаревания пароля. То есть, если пароль устарел и прошло более указанных ДНЕЙ , то пользователь больше не сможет использовать данную учётную запись. -k , --keep-tokens Указывает, что изменение пароля нужно выполнить только для устаревших ключей аутентификации (паролей). Пользователи хотят оставить свои непросроченные ключи нетронутыми. -l , --lock Заблокировать пароль указанной учётной записи. Этот параметр блокирует пароль, изменяя его значение на вариант, который не может быть шифрованным паролем (добавляется символ «!» в начало пароля). Заметим, что это не блокирует учётную запись. Пользователь всё ещё может войти в систему с помощью другого способа аутентификации (например, с помощью ключа SSH). Чтобы заблокировать учётную запись, администратор должен использовать команду usermod --expiredate 1 (это установит дату устаревания учётной запись равной 2 января 1970 года). Посетитель с заблокированным паролем не может изменить свой пароль. -n , --mindays МИН_ДНЕЙ Задать минимальное количество дней между сменами пароля. Нулевое значение этого поля указывает на то, что пользователь может менять свой пароль когда захочет. -q , --quiet Не выводить сообщений при работе. -r , --repository РЕПОЗИТОРИЙ Изменить пароль в РЕПОЗИТОРИИ . -R , --root КАТ_CHROOT Выполнить изменения в каталоге КАТ_CHROOT и использовать файлы настройки из каталога КАТ_CHROOT . -S , --status Показать состояние учётной записи. Информация о состоянии содержит 7 полей. Первое поле содержит имя учётной записи. Второе поле указывает, заблокирован ли пароль учётной записи (L), она без пароля (NP) или у неё есть рабочий пароль (P). Третье поле хранит дату последнего изменения пароля. В следующих четырёх полях хранятся минимальный срок, максимальный срок, период выдачи предупреждения и период неактивности пароля. Эти сроки измеряются в днях. -u , --unlock Разблокировать пароль указанной учётной записи. Этот параметр разблокирует пароль, возвращая его прежнее значение (которое было перед использованием параметра -l ). -w , --warndays ПРЕД_ДНЕЙ Установить число дней выдачи предупреждения, перед тем как потребуется смена пароля. В параметре ПРЕД_ДНЕЙ указывается число дней перед тем как пароль устареет, в течении которых пользователю будут напоминать, что пароль скоро устареет. -x , --maxdays МАКС_ДНЕЙ Установить максимальное количество дней, в течении которых пароль остаётся рабочим. После МАКС_ДНЕЙ пароль нужно изменить.

ПРЕДОСТЕРЕЖЕНИЯ

Сложность пароля проверяется на разных машинах по разному. Пользователю настоятельно рекомендуется выбирать пароль такой сложности, чтобы ему нормально работалось. Пользователи не могут изменять свои пароли в системе, если включён NIS и они не вошли на сервер NIS. Команда passwd для аутентификации пользователей и для смены паролей использует PAM.

The passwd command changes passwords for user accounts. A normal user may only change the password for his/her own account, while the superuser may change the password for any account. passwd also changes the account or associated password validity period.

Password Changes

The user is first prompted for his/her old password, if one is present. This password is then encrypted and compared against the stored password. The user has only one chance to enter the correct password. The superuser is permitted to bypass this step so that forgotten passwords may be changed. After the password has been entered, password aging information is checked to see if the user is permitted to change the password at this time. If not, passwd refuses to change the password and exits. The user is then prompted twice for a replacement password. The second entry is compared against the first and both are required to match in order for the password to be changed. Then, the password is tested for complexity. As a general guideline, passwords should consist of 6 to 8 characters including one or more characters from each of the following sets:

Lower case alphabetics

Digits 0 thru 9

Punctuation marks

Care must be taken not to include the system default erase or kill characters. passwd will reject any password which is not suitably complex.

Hints for user passwords

The security of a password depends upon the strength of the encryption algorithm and the size of the key space. The legacy UNIX System encryption method is based on the NBS DES algorithm. More recent methods are now recommended (see ENCRYPT_METHOD ). The size of the key space depends upon the randomness of the password which is selected. Compromises in password security normally result from careless password selection or handling. For this reason, you should not select a password which appears in a dictionary or which must be written down. The password should also not be a proper name, your license number, birth date, or street address. Any of these may be used as guesses to violate system security. You can find advice on how to choose a strong password on http://en.wikipedia.org/wiki/Password_strength

OPTIONS

The options which apply to the passwd command are: -a , --all

This option can be used only with -S and causes show status for all users.

-d , --delete

Delete a user"s password (make it empty). This is a quick way to disable a password for an account. It will set the named account passwordless.

-e , --expire

Immediately expire an account"s password. This in effect can force a user to change his/her password at the user"s next login.

-h , --help

Display help message and exit.

-i , --inactive INACTIVE

This option is used to disable an account after the password has been expired for a number of days. After a user account has had an expired password for INACTIVE days, the user may no longer sign on to the account.

-k , --keep-tokens

Indicate password change should be performed only for expired authentication tokens (passwords). The user wishes to keep their non-expired tokens as before.

-l , --lock

Lock the password of the named account. This option disables a password by changing it to a value which matches no possible encrypted value (it adds a ´!´ at the beginning of the password). Note that this does not disable the account. The user may still be able to login using another authentication token (e.g. an SSH key). To disable the account, administrators should use usermod --expiredate 1 (this set the account"s expire date to Jan 2, 1970). Users with a locked password are not allowed to change their password.

-n , --mindays MIN_DAYS

Set the minimum number of days between password changes to MIN_DAYS . A value of zero for this field indicates that the user may change his/her password at any time.

-q , --quiet -r , --repository REPOSITORY

change password in REPOSITORY repository

-R , --root CHROOT_DIR

Apply changes in the CHROOT_DIR directory and use the configuration files from the CHROOT_DIR directory.

-S , --status

Display account status information. The status information consists of 7 fields. The first field is the user"s login name. The second field indicates if the user account has a locked password (L), has no password (NP), or has a usable password (P). The third field gives the date of the last password change. The next four fields are the minimum age, maximum age, warning period, and inactivity period for the password. These ages are expressed in days.

-u , --unlock

Unlock the password of the named account. This option re-enables a password by changing the password back to its previous value (to the value before using the -l option).

-w , --warndays WARN_DAYS

Set the number of days of warning before a password change is required. The WARN_DAYS option is the number of days prior to the password expiring that a user will be warned that his/her password is about to expire.

-x , --maxdays MAX_DAYS

В данной статье я хочу рассказать о том, как изменять пароль пользователя в Linux. Я рассмотрю универсальный способ изменения пароля через командную строку, чтобы не привязываться к конкретному дистрибутиву.

Для изменения паролей в Linux служит команда passwd . Команду можно выполнять без указания каких-либо параметров, либо явно указать имя пользователя, пароль которого вы хотите сменить (в данном случае требуются права суперпользователя). После чего вам нужно будет ввести текущий пароль, а затем дважды ввести новый пароль.

Меняем пароль текущего пользователя

Чтобы сменить пароль текущего пользователя выполните команду passwd без параметров:

После этого нужно будет ввести текущий пароль и нажать клавишу Enter , затем ввести новый пароль и снова нажать Enter и, наконец, еще раз ввести новый пароль и нажать Enter .

Changing password for yuriy. (current) UNIX password: Enter new UNIX password: Retype new UNIX password: passed: password updated successfully

Обратите внимание на то, что когда вы вводите пароль, он не отображается на экране.

Если вдруг вы получили сообщение:

You must choose a longer password

Это означает, что вы ввели очень простой (или короткий) пароль. В таком случае повторите команду passwd и введите более сложный пароль (как минимум длиной от 6 до 8 символов, пароль должен включать цифры, прописные и строчные символы). Чтобы избежать проверки пароля на сложность необходимо выполнять команду passwd через sudo (см. ниже).

Меняем пароль произвольного пользователя

Чтобы сменить пароль любого пользователя вам необходимо запускать программу passwd под пользователем root или через sudo . Например, чтобы сменить пароль пользователя с именем pingvinus необходимо выполнить:

Sudo passwd pingvinus

В данном случае вам нужно будет ввести только новый пароль:

Enter new UNIX password: Retype new UNIX password: passed: password updated successfully

Здесь пароль не проверяется на сложность и можно задавать совсем простые и короткие пароли.

Дополнительная информация

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