阅读完这个问题后,我知道我必须这样做
sudo sh -c 'ls -hal /root/ > /root/test.out'
Run Code Online (Sandbox Code Playgroud)
以避免“权限被拒绝”错误。
但是当我这样做时
ssh hostname sudo sh -c 'ls -hal /root/ > /root/test.out'
Run Code Online (Sandbox Code Playgroud)
从另一台机器,我得到
bash: /root/test.out: Permission denied
Run Code Online (Sandbox Code Playgroud)
为什么?我怎样才能让它发挥作用?
编辑:有这条线
Defaults:<username> !requiretty
Run Code Online (Sandbox Code Playgroud)
前
<username> ALL= NOPASSWD: ALL
Run Code Online (Sandbox Code Playgroud)
在/etc/sudoers。
我可以
ssh remote-machine 'sudo ls /'
Run Code Online (Sandbox Code Playgroud)
没有任何问题。所以我不认为这是一个 tty 问题。添加 -t 并不能解决问题。