Use ssh -t
:
man ssh
-t Force pseudo-tty allocation. This can be used to execute arbitrary
screen-based programs on a remote machine, which can be very useful,
e.g. when implementing menu services. Multiple -t options force tty
allocation, even if ssh has no local tty.
Então seu comando será
ssh remotemachine -t "sudo -u www mkdir -p /path/to/new/folder"
Se você não quiser digitar a senha, você pode (se tiver permissão para) modificar sudoers
usando o comando visudo
.
Adicione o parâmetro NOPASSWD:
, por exemplo
username ALL=(ALL) NOPASSWD: /bin/mkdir
Se você não conseguir editar o / etc / sudoers, use sudo -S
:
man sudo
-S The -S (stdin) option causes sudo to read the password from
the standard input instead of the terminal device. The
password must be followed by a newline character.
Com isso, o comando seria
echo "your_password" | ssh remotemachine -t \
"sudo -S -u www mkdir -p /path/to/new/folder"
Lembre-se que isto irá adicionar sua senha ao histórico de comando do seu shell (com bash, que seria ~/.bash_history
file).