Замените первое слово каждой строки в файле номером строки

Невозможно указать пароль для adduser в командной строке. Единственный способ создать сценарий - это ввести пароль (и подтверждение) на stdin , как это происходит, когда программа взаимодействует с пользователем. Вот пример использования здесь документа :

adduser "$username" <<EOF
$password
$password
EOF

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

Обновление

Фактически здесь документы могут создавать временные файлы, которые будут содержать пароль.Наиболее безопасным подходом кажется использование echo и канала (и для обеспечения 700 разрешений для скрипта):

echo "$password
$password" | adduser "$username"
0
24.01.2019, 03:44
1 ответ

Как насчет Awk?

$ awk '{$1 = FNR} 1' file
1 bar
2 foo
3 foo
4 5
3
28.01.2020, 02:23

Теги

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