Как сменить пароль в Linux
Операционная система Linux изначально проектировалась как многопользовательская и безопасная система. Поэтому здесь у каждого пользователя есть пароль. Полномочия пользователей и способ их аутентификации заложен на уровне системы.
В Linux есть несколько утилит с помощью которых может быть выполнена смена пароля Linux. В этой статье мы будем рассматривать только способы сделать это с помощью терминала, с графическими способами, я думаю, вы и так без труда разберётесь, к тому же они не дают нужной нам гибкости.
Список пользователей в Linux хранится в файле /etc/passwd, вы можете без труда открыть его и посмотреть, пароли же выделены в отдельный файл — /etc/shadow. Этот файл можно открыть только с правами суперпользователя, и, более того, пароли здесь хранятся в зашифрованном виде, поэтому узнать пароль Linux не получиться, а поменять вручную будет сложно.
В большинстве случаев смена пароля выполняется с помощью утилиты passwd. Это очень мощная утилита, она позволяет не только менять пароль, но и управлять сроком его жизни. У неё такой синтаксис:
$ passwdопциипользователь
Рассмотрим опции, чтобы лучше ориентироваться в использовании утилиты:
- -d — удалить пароль пользователя, после этого он не сможет войти
- -e — сделать пароль устаревшим
- -i — через сколько дней после того, как пароль устарел, отключить аккаунт, если пользователь не сменил пароль
- -l — запретить пользователю входить в систему
- -n — минимальное количество дней между сменами пароля
- -S — отобразить информацию об аккаунте
- -u — отменяет действие параметра -l
- -x — максимальное количество дней, пока пароль можно использовать.
- -w — количество дней, после которых нужно предупреждать пользователя о том, что надо сменить пароль.
Возможно, сейчас всё выглядит очень непонятно, но на примерах станет проще. Мы рассмотрим, зачем и в каких случаях нужно использовать все эти опции, чтобы сменить пароль в Linux. Переходим к практике.
Если вы забыли пароль и вам его надо не просто сменить, а сбросить, вам будут полезными эти две статьи:
- Как сбросить пароль в Linux;
- Как сбросить пароль в Ubuntu.
Вы можете сменить свой пароль, когда захотите. Для этого вам не нужно особых прав суперпользователя, только знать свой текущий пароль. Просто откройте терминал и выполните утилиту passwd без параметров:
Дальше необходимо ввести новый пароль — и готово, теперь он измеён. Он кодируетсятся с помощью необратимого шифрования и сохраняется в файле /etc/shadow Но заметьте, что вы не можете использовать здесь любой пароль. Система Linux заботится о том, чтобы пользователи выбирали достаточно сложные пароли. Если он будет очень коротким или будет содержать только цифры, вы не сможете его установить.
Общие требования для пароля такие: должен содержать от 6 до 8 символов, причём один или несколько из них должны относиться как минимум к двум из таких множеств:
- Буквы нижнего регистра
- Буквы верхнего регистра
- Цифры от нуля до девяти
- Знаки препинания и знак _
Теперь рассмотрим, как изменить пароль Linux для другого пользователя.
Со своим паролем всё понятно, но если вы захотите поменять код для другого пользователя, то придётся вопользоваться правами суперпользователя. А во всём остальном процесс тот же:
Здесь user — это пользователь, для которого нужна смена пароля Linux. Требования для пароля такие же: вы не сможете установить слишком простой пароль.
Вы можете удалить пароль Linux для пользователя, тогда он не сможет войти в систему:
Наверное вы видели в своей системе файл /etc/gshadow. Этот файл эквивалентен /etc/shadow, только содержат пароли для групп. Вы не можете войти от имени группы, но зато, зная её пароль, можете получить доступ к предоставляемым ею функциям в отдельной командной оболочке с помощью команды newgrp.
Для установки пароля на группу используется утилита очень похожая на passwd — gpasswd. Естественно, нам нужны права суперпользователя. Например:
Теперь попробуем получить полномочия группы:
После ввода пароля мы временно оказываемся в этой группе и можем работать с теми файлами, к которым разрешен доступ этой группе. Чтобы удалить пароль Linux из группы, используется опция -r:
Безопасность сервера — это одна из самых важных вещей. Часто причиной проблем с безопасностью становятся сами пользователи, которые недостаточно часто меняют пароли или делают их слишком простыми. Если вы администратор, у вас есть возможность заставить пользователей выполнять смену пароля время от времени, а также автоматически отсылать им предупреждения о том, что пора сменить пароль пользователя Linux.
Всё это позволяет сделать утилита passwd. Сначала давайте рассмотрим, как посмотреть информацию о пароле в passwd. Для этого используется опция -S:
- Первое поле — имя пользователя
- Второе поле показывает одно из значений: P — пароль установлен, L — пользователь заблокирован, NP — пароля нет.
- 07/21/2016 — дата последнего изменения пароля.
- 99999 — максимальное время действия пароля
- 7 — за сколько дней нужно предупреждать об истечении срока действия пароля
- -1 — через сколько дней пароль нужно деактивировать.
Например, через тридцать дней после смены, пароль пользователя станет устаревшим:
За три дня до того, как пароль устареет, предупредим пользователя, что его нужно сменить:
Если он этого не сделает в течении пяти дней, аккаунт нужно отключить:
Пароль можно менять не чаще, чем раз в 10 дней:
Смотрим теперь, что у нас получилось:
Всё правильно.
Изменить пароль Linux для root очень просто, точно так же, как и для любого другого пользователя. Только нужно иметь права суперпользователя. Вот так это будет выглядеть:
Всё работает. Таким же способом можно задать пароль root в Ubuntu.
Операционная система Linux не была бы Linux, если бы мы не имели возможность настроить пароль вручную безо всяких утилит. Как я уже говорил, пароли хранятся в файле /etc/shadow. И хранятся они там в зашифрованном виде. Расшифровать пароль невозможно.
Когда система сохраняет пароль, она выполняет шифрование по определённому алгоритму и сохраняет уже зашифрованный результат, а когда пользователю нужно войти в систему, она просто берёт его пароль, опять же шифрует и сверяет с тем, что хранится в /etc/shadow. Если совпадает — пользователь авторизован.
Даже таким способом сменить пароль пользователя Linux не так уж сложно. Итак, сначала нам нужно получить зашифрованный пароль. Это можно сделать несколькими способами, например с помощью openssl:
Замените xyz на любую случайную комбинацию символов, чем больше, тем лучше; yourpass — это ваш новый пароль.
Скопируйте полученный результат в буфер обмена, затем откройте файл /etc/shadow и найдите там нужного пользователя. Я хочу сменить пароль Linux для test:
Синтаксис этого файла такой:
имя_пользователя:пароль:::::
Следующее поле указывает на последнее изменение пароля в виде количества дней, прошедших с первого января 1970. Остальные поля нас не интересуют, да и вы с ними очень просто разберётесь, просто сопоставив данные.
Теперь замените пароль на полученный выше и сохраненный в буфер обмена. Сохраните файл и можете пробовать войти под новым паролем:
Всё работает. Как я уже говорил, есть ещё несколько алгоритмов шифрования, с помощью которых вы можете получить пароль, вот они:
Во всех этих примерах salt — это случайная строка для увеличения надёжности шифрования, а YourPass — ваш пароль. Что делать с полученным данными вы уже знаете.
Из этой статьи вы узнали, как сменить пароль Linux. Я рассмотрел все возможные способы и даже не очень стандартные. Если у вас остались вопросы, пишите комментарии!
Как сменить пароль в Линукс
Я часто создаю новые учетные записи пользователей и меняю или устанавливаю пароль для этих аккаунтов в пакете ящиков Linux. Создать нового пользователя можно с помощью командной строки. Проблема заключается в изменении пароля. В Linux мы используем passwd для изменения пароля, но passwd требует ввода от stdin для получения нового пароля. Мы можем изменить пароль пользователя в одной командной строке. Это позволит сэкономить много времени, особенно при создании группы учетных записей пользователей.
Мы будем использовать один пример, чтобы представить, как изменить пароль пользователя Linux в одной командной строке. Предположим, мы вошли в систему как root и хотим изменить пароль пользователя linuxinsider на linuxpassword.
Команда passwd запрашивает новый пароль дважды. И эти два входа (один и тот же пароль) разделены одним «Enter». Эмулировать это можно с помощью команды echo с опцией -e. Когда -e действует, экранированные символы будут интерпретированы. Следовательно, n в вводе echo отображается как «новая строка». Кроме того, на современном Linux с достаточно новым паролем вы можете использовать опцию —stdin, чтобы позволить passwd принимать пароль от STDIN вместо того, чтобы запрашивать новый пароль дважды.
Поэтому, чтобы изменить пароль в нашем примере, мы просто выполняем одну команду:
# Echo «linuxpassword» | Passwd —stdin linuxinsider
или
# Echo -e «linuxpassword nlinuxpassword» | Passwd linuxinsider
Это также может быть помещено в один скрипт bash или выполнено на удаленном узле командой ssh.
Например, мы можем изменить пароль linuxuser на пакет серверов (100 серверов: от 10.1.0.1 до 10.1.0.100):
Более того, мы можем создать одного пользователя и установить его начальный пароль удаленно:
$ Echo -e «your_current_pass nlinuxpassword nlinuxpassword» | ПАРОЛЬ
Используемые источники:
- https://losst.ru/kak-smenit-parol-v-linux
- https://linuxinsider.ru/kak-smenit-parol-v-linuks/