Пароль изменения пользователя в/etc/shadow

Дать Вам формулу, которая включает wc- основанная проверка:

(($(wc -l<input_file)<=$(tput lines))) && echo 'will fit' || echo 'not enough'

Существует a $LINES окружите переменную, которая может также использоваться:

(($(wc -l<input_file)<=LINES)) && echo 'will fit' || echo 'not enough'

Но $LINES обновляется только когда в командной строке. Для понимания, что я имею в виду выполните это и измените размер окна терминала во время sleep:

( sleep 3; echo $LINES; tput lines )
7
19.05.2013, 09:03
3 ответа

Можно использовать mkpasswd инструмент, чтобы сделать это. Существует хорошая краткая информация о том, как использовать ее на cyberciti.biz, названном: Linux / UNIX: Генерация случайного пароля с mkpasswd.

Пример

mkpasswd --char=10 --crypt-md5

Пакет обычно называют makepasswd, но инструмент обычно называют mkpasswd.

Дополнительную информацию см. в странице справочника.

Генерация содержания /etc/shadow непосредственно

Следующая команда Python генерирует часть, которая входит /etc/shadow файл:

Python

$ python -c "import crypt, getpass, pwd; \
         print crypt.crypt('password', '\$6\$SALTsalt\$')"

Perl

$ perl -e 'print crypt("password","\$6\$saltsalt\$") . "\n"'

Который генерирует следующий вывод:

$6$SALTsalt$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/

Изменение/etc/shadow

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

perl -pe 's|(root):(\$.*?:)|\1:\$6\$SALTsalt\$UiZikbV3VeeBPsg8./Q5DAfq9aj7CVZMDU6ffBiBLgUEpxv7LMXKbcZ9JSZnYDrZQftdG319XkbLVMvWcF/Vr/:|' /etc/shadow > /etc/shadow.new

Примечание: Это - грубый пример, но работы. Необходимо будет взять результаты команды, которая генерировала хешированный пароль, и выйдите из знаков доллара ($) с наклонными чертами (\$).

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

10
27.01.2020, 20:17
  • 1
    Спасибо, но мне нужна команда для редактирования строки в теневом файле. –  John Smithv1 19.05.2013, 00:09
  • 2
    Посмотрите мои обновления, это, что Вы после? –  slm♦ 19.05.2013, 02:48
  • 3
    Привет, можно ли также предоставить мне команду для замены текущего пароля пользователя в/etc/shadow файле со сгенерированным паролем? –  John Smithv1 19.05.2013, 11:57
  • 4
    Почему Вы не можете использовать изменяющиеся программы пароля? @JoelDavis задал вопрос как комментарий к Вашему вопросу также. Просто любопытный. –  slm♦ 19.05.2013, 13:52
  • 5
    @slm, в моем случае, я не хочу входить в систему в машине пользователя и оставлять что-либо внутри их history или last журналы. –  Qian Chen 18.07.2015, 10:00

Удалите все вместе пароль для пользователя в / etc / shadow, загрузите систему, войдите в систему без пароля, затем используйте команду passwd. Если возможно, не подключайте систему к сети, пока это не будет выполнено.

-1
27.01.2020, 20:17

Самое простое решение, если пустой пароль для вас не проблема, — изменить файл /etc/passwd, а не файл /etc/shadow.

Пример строки файла /etc/passwd::

root:x:0:0:root:/root:/bin/bash

«x» в этой строке означает, что пароль фактически хранится в хешированном виде в теневом файле. Единственное, что вы можете сделать, это просто удалить его вот так:

root::0:0:root:/root:/bin/bash

После этого вы сможете войти в систему с именем пользователя root и пустым паролем.

Надеюсь, это поможет

8
27.01.2020, 20:17

Теги

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