Как сменить пароль с помощью usermod?

Я являюсь суперадмином сервера и хотел бы сменить пароль существующего пользователя. Как я могу это сделать?

Я пытался

usermod -p 'new-password' john

, но это не сработало?

10
задан 11 March 2016 в 20:11

8 ответов

Флаг usermod -p ожидает, что данные будут паролем уже в зашифрованном формате.

Используйте openssl passwd для генерации зашифрованных данных или сделайте так:

usermod -p `openssl passwd` (USERNAME)
0
ответ дан 11 March 2016 в 20:11

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

Со страницы руководства usermod:

 -p, --password PASSWORD
       The encrypted password, as returned by crypt(3).

Установка пароля таким способом не рекомендуется.

Вместо этого следует использовать passwd <username>. Это должно быть сделано (как usermod) от имени пользователя root (если вы не меняете пароль пользователя, вошедшего в систему).

Чтобы сменить пароль для пользователя foo.

sudo passwd foo

Это запросит новый пароль.

Просмотрите страницу руководства для passwd для получения дополнительной информации о настройке, например, времени истечения.

Удачи!

0
ответ дан 11 March 2016 в 20:11

Способ присвоения пароля с помощью usermod (именно этого и требовал OP) - использовать хешированный пароль crypt() для аргумента -p.

SALT="Q9"
PLAINTEXT="secret_password"
HASH=$(perl -e "print crypt(${PLAINTEXT},${SALT})")
echo "Password Hash = \"${HASH}\""

Затем используйте это в аргументе командной строки usermod -p:

usermod -p ${HASH} john
0
ответ дан 11 March 2016 в 20:11

Неинтерактивная однострочная команда для изменения пароля пользователя:

sudo usermod -p `perl -e "print crypt("new-password","Q4")"` john

usermod -p для работы требуется зашифрованный пароль. Обратите внимание, что new-password будет отображаться для пользователей, которые могут перечислять процессы.

0
ответ дан 11 March 2016 в 20:11

Вы можете использовать passwd:

sudo passwd USERNAME 

Вам не нужно sudo, если вы сами являетесь суперпользователем

0
ответ дан 11 March 2016 в 20:11

Что-то, что должно быть добавлено здесь, следующее. Этот метод:

sudo usermod-p perl -e "print crypt("new-password","Q4")" Джон

средства, что будут ВСЕ работать несколько очень похожих паролей. Например, на сервере Oracle Linux 7.4 и рабочем столе Ubuntu 17.10 рассмотрите:

sudo usermod-p perl -e "print crypt("borkling","Q4")" orabuntu

Теперь, если Вы делаете:

su - orabuntu

Вы найдете, что ЛЮБОЙ пароль, который запускается с "borkling", будет работать, например.

borkling88 borklingjars

хотя "borkline" не будет работать, который является, потому что столь же установленный ранее любой пароль, который имеет "borkling", как это - префикс, будет также работать, когда пароль будет установлен таким образом.

Путь к к этому, что afaik не имеет этого нежелательного побочного эффекта, следующий:

(кредит на эти движения к "Sandeep" здесь:
https://stackoverflow.com/questions/2150882/how-to-automatically-add-user-account-and-password-with-a-bash-script)

На RedHaty Linux: (опустите "-G колесо", если Вы не хотите sudo privs предоставленный),

sudo useradd-m-p $ (openssl passwd-1$ {ПАРОЛЬ})-s/bin/bash-G $ колеса {ИМЯ ПОЛЬЗОВАТЕЛЯ}

На Linux Debiany (опускают-G sudo, если Вы не хотите sudo privs):

sudo useradd-m-p $ (openssl passwd-1$ {ПАРОЛЬ})-s/bin/bash-G sudo $ {ИМЯ ПОЛЬЗОВАТЕЛЯ}

2
ответ дан 11 March 2016 в 20:11

Просто введите

passwd

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

0
ответ дан 11 March 2016 в 20:11

Мы можем использовать команды mkpasswd и usermod. Это просто и надежно.

  • Чтобы иметь команду mkpasswd:

    apt install whois
    
  • mkpasswd -m sha-512 ваш-секретный-пароль
    
  • с результатом mkpasswd вы можете запустить usermod следующим образом

    usermod -p 'the-result-from-mkpasswd' root
    

Посмотрите скриншот из моего теста Демонстрация смены пароля

0
ответ дан 1 June 2020 в 23:06

Другие вопросы по тегам:

Похожие вопросы: