Как я могу изменить пароль root с помощью однострочной команды в NetBSD? Во FreeBSD это примерно так
echo "password" | pw mod user root -h 0 ;
NetBSD не поддерживает pw
по умолчанию install. Ты можешь:
pw
для NetBSD и установите ее в своих системахОбратите внимание, что в зависимости от вашего скрипта вы должны наверное использовать -H
(и предоставив соответственно зашифрованный пароль) вместо -h
.
Передача незашифрованных паролей по системе (особенно если вы делаете что-то вроде echo "password"
) является плохой идеей, так как это может привести к раскрытию вашего пароля любому зарегистрированному пользователю (или службе).
Использовать usermod
с участием -p
переключатель. Он включен в базовую систему, нет необходимости в сборке pw
.
Мы столкнулись с аналогичным вариантом использования: автоматическое создание демо-пользователей с ужасными паролями в обход всех политик паролей. Без лишних слов, вот неприятный, но действенный прием, основанный на предложении списка рассылки:
# example: set_password_insecure sybil magic
# $1: username
# $2: password
set_password_insecure() {
if [ -z "$1" ]; then
echo 'Missing username' >&2
return 1
fi
( PASSWORD_HASH="$(/usr/bin/pwhash "$2" | /usr/bin/sed 's@[\\$/]@\\&@g')"
/usr/bin/env EDITOR="in_place_sed() { /usr/bin/sed \"\$1\" \"\$2\" > \"\$2.bak.\$\$\" && /bin/mv \"\$2.bak.\$\$\" \"\$2\" ;}; in_place_sed 's/^$1:[^:]*:/$1:$PASSWORD_HASH:/' " \
/usr/sbin/vipw
)
}
( USERNAME='mallory' PASSWORD='sex'; \
PASSWORD_HASH="$(/usr/bin/pwhash "$PASSWORD" | /usr/bin/sed 's@[\\$/]@\\&@g')"
/usr/bin/env EDITOR="in_place_sed() { /usr/bin/sed \"\$1\" \"\$2\" > \"\$2.bak.\$\$\" && /bin/mv \"\$2.bak.\$\$\" \"\$2\" ;}; in_place_sed 's/^$USERNAME:[^:]*:/$USERNAME:$PASSWORD_HASH:/' " \
/usr/sbin/vipw )
sh
и bash
(с участием shells/bash
установлен), и возможно zsh
тоже (непроверено).sudo
(с участием security/sudo
установлен) или su - root -c
перед /usr/bin/env
.sed
/mv
взломать из-за EDITOR
ограничения + NetBSD sed
+ требование отсутствия других зависимостей / ненужных временных ограничений / загрязнения окружающей среды.