Здравствуйте, гуру командной строки, я создал пользователя ftp следующим образом:
ftpasswd --passwd --name webftp --uid 33 --home /var/www --shell /bin/false
Мне нравится создавать того же пользователя с заданным паролем с помощью опции --stdin
. Если я использую:
echo < passwd > | ftpasswd --stdin --passwd --name webftp --uid 33 --home /var/www --shell /bin/false
я получил сообщение, в котором говорилось, что пароль не установлен.
Кто-нибудь видит ошибку?
Спасибо!
Я предлагаю, чтобы Вы использовали:
passwd="your_password"
echo $passwd | ftpasswd --stdin --passwd --name webftp --uid 33 --home /var/www --shell /bin/false
или
ftpasswd --stdin --passwd --name webftp --uid 33 --home /var/www --shell /bin/false < passwd.txt
где passwd.txt
файл, которые содержат пароль.
Они, потому что:
[...]
--stdin
опция не позволяет паролям быть переданными сценарию на командной строке, но на stdin. Это сделано как меры безопасности: стандартный Unixps
команда может использоваться для показа всех процессов, работающих на системе включая их параметры командной строки. Это означает, что любой пользователь мог использоватьps
наблюдать пароли, данныеftpasswd
, если те пароли должны были быть переданы командной строке.
Больше о: