Изменить пароль ftp пользователя linux

Обновлено: 01.07.2024

В этом руководстве мы объясним, как изменить пароль пользователя в Linux. Мы также покажем вам, как заставить пользователей изменить свой пароль при следующем входе в систему.

Инструкции должны работать с любым дистрибутивом Linux, включая Ubuntu, Debian и CentOS.

Введение

В Linux вы можете изменить пароль учетной записи пользователя с помощью утилиты passwd .

Зашифрованные пароли пользователей, а также другая информация, связанная с паролями, хранится в /etc/shadow .

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

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

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

Измените свой пароль пользователя

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

Вам будет предложено ввести текущий пароль. Если пароль правильный, команда попросит вас ввести и подтвердить новый пароль.

При вводе пароли не отображаются на экране.

В следующий раз, когда вы войдете в свою систему, используйте новый пароль.

Изменить пароль другого пользователя

Как мы упоминали во введении, только пользователь root и пользователи с доступом sudo могут изменить пароль другой учетной записи.

В следующем примере предполагается, что вы вошли в систему как пользователь с привилегиями sudo.

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

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

В случае успеха команда напечатает что-то вроде этого:

Заставить пользователя изменить пароль при следующем входе в систему

По умолчанию срок действия паролей не истекает. Чтобы заставить пользователя изменить свой пароль при следующем входе в систему, используйте команду passwd с параметром --expire за которым следует имя пользователя:

Приведенная выше команда немедленно истечет срок действия пароля пользователя.

Как только пользователь установит новый пароль, соединение будет закрыто.

Выводы

В этом руководстве вы узнали, как изменить пароли пользователей и как установить срок действия пароля.

Вы можете найти дополнительную информацию о команде passwd, набрав man passwd в своем терминале или посетив страницу руководства Linux passwd .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Меняем пароль в Linux

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Данное руководство рассматривает некоторые базовые файлы, такие как «/etc/passwd» и «/etc/shadow», а также такие инструменты для настройки проверки подлинности, как команды «passwd» и «adduser».

Для демонстрации примеров используется выделенный сервер Ubuntu 12.04 , но любой современный дистрибутив Linux работает таким же образом.

Что такое файл «/etc/passwd»?

Для начала нужно рассмотреть файл под названием «/etc/passwd», который на самом деле не содержит паролей.

Когда-то этот файл хранил хешированные пароли всех пользователей в системе. Тем не менее, по соображениям безопасности позже эта ответственность была перенесена в отдельный файл.

Итак, что же находится в файле «/etc/passwd»?

less /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
. . .

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

То есть, любой пользователь системы может читать данный файл. Вот почему все пароли были перенесены в другой файл.

Рассмотрим формат файла.

Чтение файла «/etc/passwd»

Каждая строка файла содержит информацию о входе всех пользователей системы. Некоторые из этих пользователей могут быть созданы для работы демонов и фоновых служб.

Чтобы объяснить, какая именно информация содержится в строках данного файла, нужно подробно рассмотреть одну строку.

Поля информации разделяются двоеточием (:). Каждая строка типичного Linux-файла «/etc/passwd» содержит 7 полей:

  1. Root: имя пользователя;
  2. х: место для информации о паролях; пароль можно найти в файле «/etc/shadow».
  3. 0: ID пользователя. Каждый пользователь имеет уникальный идентификатор, благодаря которому система распознает его. ID root-пользователя всегда 0;
  4. 0: ID группы. Каждая группа имеет уникальный идентификатор. По умолчанию у каждого пользователя есть главная группа. Опять же, ID root-группы всегда 0;
  5. root: поле для примечаний. Данное поле можно использовать для описания пользователя или его функций. Оно может содержать что угодно, начиная от контактной информации пользователя и заканчивая описанием сервисов, для которых была создана учетная запись;
  6. /root: домашний каталог. Для обычных пользователей домашним каталогом является «/home/username», для root-пользователя это «/root»;
  7. /bin/bash: оболочка пользователя. Данное поле содержит оболочку, которая будет создана, или команды, которые будут выполняться при входе пользователя в систему.

По мере добавления пользователей с помощью таких команд, как «adduser» и «useradd», или с установкой большего количества сервисов этот файл будет расти. Информация о новом пользователе будет добавлена в конце данного файла.

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

Что такое «/etc/shadow»?

Фактические данные о паролях хранятся в файле с именем «/etc/shadow».

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

Функция выведения ключей – это алгоритм, создающий при вводе одних и тех же данных определенный хэш. Такой же алгоритм выполняется на пароль, который дается в процессе аутентификации, и это значение сравнивается со значением в этом файле.

Имейте в виду, данный файл, в отличие от файла «/etc/passwd», не доступен дл прочтения непривилегированными пользователями.

Пользователь root имеет привилегии читать и писать в файлах; группа «shadow», содержащая пользователей, которым необходима аутентификация, имеет права на чтение.

Чтение файла «/etc/shadow»

Чтобы открыть файл «/etc/shadow», введите:

sudo less /etc/shadow
root:$6$mJD3Rsj4$xUa7jru6EEGTXnhwTfTT26/j8M5XiQvUl6UH32cfAWT/6W9iSI5IuIw5OOw4khwrsOHPyMwfCLyayfYiVdhAq0:15952:0:99999:7.
daemon:*:15455:0:99999:7.
bin:*:15455:0:99999:7.
sys:*:15455:0:99999:7.
sync:*:15455:0:99999:7.
games:*:15455:0:99999:7.
man:*:15455:0:99999:7.
. . .

Как и в файле «/etc/passwd», каждая строка содержит информацию об отдельном пользователе, а каждое поле отделяется символом двоеточия.

Примечание: символ звездочки (*) во втором поле строк значит, что данная учетная запись не может войти в систему. Обычно это используется для сервисов.

Для примера можно рассмотреть одну строку данного файла:

Файл «/etc/shadow» содержит следующие поля:

  1. daemon: имя пользователя;
  2. *: соль и хешированный пароль; данное поле можно просмотреть, войдя как root. Как указано выше, звездочка значит, что данная учетная запись не может быть использована для входа в систему.
  3. 15455: последнее изменение пароля. Данное значение ограничивается датой начала «Unix-эпохи» (1 января 1970).
  4. 0: допустимое количество дней для смены пароля. 0 в данном поле значит, что таких ограничений нет.
  5. 99999: количество дней до необходимости смены пароля. Значение 99999 указывает на то, что ограничения на продолжительность использования одного пароля не установлены.
  6. 7: количество дней до предупреждения об истечении срока использования пароля. Если требуется сменить пароль, пользователь будет извещен о данной необходимости за указанное количество дней.
  7. [blank]: последние три поля нужны для того, чтобы указать количество дней до деактивации учетной записи. Последнее поле не используется.

Изменение пароля

Для изменения паролей пользователей используется команда «passwd».

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

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

sudo passwd username

Будет запрошен пароль для команды «sudo», затем можно будет ввести новый пароль и подтвердить его.

Если сравнить значение хэш в файле «/etc/shadow», можно увидеть, что после ввода команды passwd оно изменилось.

Создание нового пользователя

Нового пользователя можно создать при помощи нескольких команд.

Самый простой способ – использовать команду «adduser». В системах Ubuntu данная команда связана со скриптом «perl», который обрабатывает создание пользователя.

Команду можно вызвать следующим образом:

adduser demo
Adding user `demo' .
Adding new group `demo' (1000) .
Adding new user `demo' (1000) with group `demo' .
Creating home directory `/home/demo' .
Copying files from `/etc/skel' .
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for demo
Enter the new value, or press ENTER for the default
Full Name []: test
Room Number []: room
Work Phone []: work phone
Home Phone []: home phone
Other []: other
Is the information correct? [Y/n]

На данном этапе появится несколько вопросов, которые помогут внести необходимую информацию в файлы «/etc/passwd» и «/etc/shadow».

Можно просмотреть внесенную в файл «/etc/passwd» запись, введя:

tail -1 /etc/passwd
demo:x:1000:1000:test,room,work phoneme phone,other:/home/demo:/bin/bash

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

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

sudo tail -1 /etc/shadow
demo:$6$XvPCmWr4$HXWmaGSeU5SrKwK2ouAjc68SxbJgUQkQ.Fco9eTOex8232S7weBfr/CMHQkullQRLyJtCAD6rw5TVOXk39NAo/:15952:0:99999:7.

Итоги

При помощи этих простых инструментов можно изменить регистрационную информацию системы.

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

у нас есть несколько серверов Red Hat linux в нашей ИТ-среде. Члены моей команды просят меня написать сценарий (предпочтительно сценарий оболочки), чтобы изменить пароль пользователя на каждом из них за один раз, используя SSH.

Я попытался найти решение, но многие из найденных скриптов используют Expect. Мы не ожидаем, установленный на наших серверах, и системные администраторы отказались позволить нам установить его. Кроме того, пользователи не имеют доступа root so passwd --stdin или chpasswd не может быть использован.

есть ли способ написать скрипт, чтобы пользователь мог запустить его и изменить пароль только своего пользователя на всех серверах в списке?

удаленным машинам не нужно ожидать установки. Вы можете установить expect на локальную рабочую станцию или виртуальную машину (virtualbox) или любой *Nix box и написать оболочку, которая вызывает это .ex (expect) скрипт (могут быть небольшие изменения от дистрибутива к дистрибутиву, это проверено на CentOS 5/6):

вам не нужен root-доступ, чтобы использовать passwd .

Это shoud работает просто отлично.

вы должны попробовать pssh (параллельный ssh одновременно).

основываясь на примере squashbuff, я попробовал следующее, что хорошо сработало для меня:

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

другая возможность: измените его вручную на одном сервере. Получите зашифрованный пароль из /etc / shadow. Теперь сделайте что-нибудь вроде этого:

конечно, "encrypted_passwd" - это то, что вы получили из /etc/shadow, где вы вручную изменили пароль. И $HOST_LIST-это список хостов, на которых вы хотите изменить пароль. Это может быть создано просто с помощью:

или, возможно, с файлом (как предлагали другие):

где файл "host_list.txt " имеет список всех систем, в которых вы хотите изменить пароль.

Edit: если ваша версия passwd не поддерживает опцию-p, у вас может быть доступна программа "usermod". Пример выше остается тем же, просто замените "passwd" на "usermod".

кроме того, вы можете рассмотреть полезный инструмент pdsh, что упростило бы приведенный выше пример примерно так:

последний "gotcha", чтобы искать: зашифрованный пароль, вероятно, содержит символ знака доллара ('$') в качестве разделителя полей. Вероятно, вам придется избегать тех, кто находится в вашем цикле for или pdsh (т. е. "$" становится "\$").

установить sshpass на любом сервере, с которого вы хотите выполнить скрипт.

подготовьте текстовый файл, в котором вы должны передать детали, такие как Хоста, Имя Пользователя, пароль и порт. (По вашему требованию).

подготовьте файл сценария, используя ниже подробности.

альтернативой, которую вы можете представить своим коллегам, будет использование аутентификации без пароля. Они сгенерируют пару открытый / закрытый ключ и зарегистрируют свой открытый ключ в

/.ssh / authorized_keys файл на каждом из серверов, в которые они входят.

можете ли вы использовать Perl?

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

Если требуется несколько модулей Perl (Net::OpenSSH:: Parallel, ожидал и их зависимости), установленные на локальном компьютере, на котором запущен скрипт, но ничего на удаленных серверах, где пароль должен быть изменен.

Читайте также: