Как я могу присвоить начальный/по умолчанию пароль пользователю в Linux?

С -L, это исследует свойства файла - содержание или метаданные, не те из ссылки. Например, если Вы используете -atime, это проверит atime из файла, не ссылки:

$ find testdir/ -name link -newer testdir/ref
testdir/link
$ find -L testdir/ -name link -newer testdir/ref
$

testdir/link был создан после testdir/ref, но файл, на который это указывает, не был.

9
07.12.2012, 01:30
4 ответа

Можно использовать chpasswd сделать это, как это:

echo "username:newpassword" | chpasswd

Можно передать по каналу в chpasswd из программ кроме echo, если удобный, но это добьется цели.

Править: Чтобы генерировать пароль в рамках сценария оболочки и затем установить его, можно сделать что-то вроде этого:

# Change username to the correct user:
USR=username
# This will generate a random, 8-character password:
PASS=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c8`
# This will actually set the password:
echo "$USR:$PASS" | chpasswd

Для получения дополнительной информации о chpasswd, см. http://linux.die.net/man/8/chpasswd

(Команда для генерации пароля была из http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html),

12
27.01.2020, 20:05
  • 1
    , спасибо @Dominick хм, chpasswd находится, возможно, в AIX... я, havn't использовал его. и каждый раз я должен записать, что пароль... не может это быть сгенерированным сценарием как в ссылке вопросов..., к сожалению, даже, которая не работала на меня –  munish 07.12.2012, 01:02
  • 2
    @munish, я не совсем уверен, под чем Вы подразумеваете, генерируют в сценарии, но я обновил свой ответ, чтобы, надо надеяться, быть более полезным. –  Dominick Pastore 07.12.2012, 01:23
  • 3
    Не работает. "Ошибка управления аутентификационным маркером" –  Cerin 01.07.2014, 02:17
  • 4
    @Cerin Случайно является Вами делающий что-то как sudo echo "username:newpass" | chpasswd? Поскольку поднятые полномочия от sudo не проходите через канал, таким образом, chpasswd работал бы как обычный пользователь. Это может быть зафиксировано путем перемещения sudo, как в echo "username:newpass" | sudo chpasswd. Существуют также другие проблемы, которые могут вызвать то сообщение об ошибке, но ошибки полномочий как это, вероятно, наиболее распространены. –  Dominick Pastore 02.07.2014, 16:38
  • 5
    на командной строке могли быть видимы к другому, вошел в систему пользователи на той же машине с помощью w, PS или других командах, которые показывают информацию о других процессах. Пароли устанавливают этот путь, должен быть изменен пользователем как можно скорее. –  Mnebuerquo 28.01.2016, 20:46

Можно использовать OpenSSL для генерации случайного пароля (16 символов, в этом случае):

# 1000 bytes should be enough to give us 16 alphanumeric ones
p=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')

Затем подайте хешированный пароль к useradd или usermod

# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>

Кредит, где должный: поколение пароля адаптировано от похожего метода, который использует /dev/urandom вместо openssl.

2
27.01.2020, 20:05

useradd должен работать (я сделал его на Ubuntu). Возможно, проверьте, что каждый из Ваших args корректен (тебя, группы существуют, путь является правильным колотить). Можно выполнить команду только с паролем и пользователем, и затем использовать userdel, чтобы удалить и затем повторить с большим количеством параметров, видеть то, что каждый вызывает проблему (метод решения "в лоб").

Существует также newusers (см. страницу справочника), по крайней мере, в соответствии с Ubuntu, где Вы даете ей файл с passwd файлом как информация, включая незашифрованные пароли и она создаст тех пользователей. Хороший способ сделать многих пользователей сразу.

2
27.01.2020, 20:05
  • 1
    +1 для упоминания newusers команда для Ubuntu –  Levon 03.10.2013, 23:49

самым простым путем я нашел:


PASSWD="mySeCr3t-default-pa55" 
echo ${PASSWD} | passwd --stdin username_here
1
27.01.2020, 20:05
  • 1
    Вы даже тестировали это? passwd: unrecognized option '--stdin' –  Cerin 01.07.2014, 02:19
  • 2
    Да, я много раз использовал это, но, как почти с любой другой командой, это не defacto решение проблемы под рукой. Некоторые изменения passwd двоичного файла, не поддерживайте - stdin переключатель. –  MelBurslan 21.07.2014, 23:18

Теги

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