У меня есть 2 пользователя на моем сервере Debian, gooduser
и root
.
Команда my_cmd
запрашивает пароль (он подключается к ssh-серверу).
Когда я выполняю my_cmd
как gooduser
, все работает как положено:
gooduser@debian:/mydir$ my_cmd
someone@192.168.2.122's password:
Permission denied, please try again.
someone@192.168.2.122's password:
Permission denied, please try again.
someone@192.168.2.122's password:
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
gooduser@debian:/mydir$
Выше я проигнорировал подсказки пароля, нажав три раза клавишу ввода. Почему, я скажу вам в ближайшее время.
Однако, когда я вошел в систему как пользователь root
, я пытаюсь выполнить my_cmd
от имени пользователя gooduser
(я должен сделать так, чтобы любые создаваемые файлы принадлежали myuser
). Тем не менее, он не запрашивает пароль ни разу, и работает так, как будто я нажимал клавишу ввода 3 раза, за исключением того, что я этого не делал (сообщения "Отказано в доступе" такие же, как и выше):
root@debian:/mydir# su - gooduser -c "cd $PWD; my_cmd"
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly
root@debian:/mydir#
Почему это происходит? Почему su
игнорирует запросы пароля? Или, точнее, почему кажется, что нажимает ввод от моего имени? Что еще более важно, как я могу решить это?
(Я знаю, что мог бы настроить ssh-ключи для входа без пароля и, возможно, именно этим я и займусь, но мне хотелось бы знать, в чем здесь проблема глубже).