Bra*_*ell 4 linux ubuntu sudo gnu-screen
我正在尝试以screen另一个用户身份执行sudo.
我正在使用命令:
echo 'userpassword' | /usr/bin/sudo -u 'myuser' -S '/usr/bin/screen -ls'
Run Code Online (Sandbox Code Playgroud)
在互联网上找到的任何帮助都说明了sudo清除环境变量(比如PATH).所以我决定使用应用程序的完整路径,但我仍然得到命令not found错误.
错误:
sudo: /usr/bin/screen -ls: command not found
Run Code Online (Sandbox Code Playgroud)
Sudo安装在系统上.屏幕安装在系统上.
因为sudo,我已经尝试了-E和-H旗帜,但它没有帮助.
我试着PATH用这样的东西设置变量:
... | /usr/bin/sudo -u 'myuser' -S 'env PATH=$PATH; /usr/bin/screen -ls'
Run Code Online (Sandbox Code Playgroud)
据说$PATH假设在命令执行之前扩展但我得到了其他错误......
有人可以提供一个命令,让我可以作为另一个用户执行命令,并解释命令的每个部分的作用,以便我能理解它吗?
谢谢.
尝试,
export PATH=/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
可能在尝试设置新路径变量时替换了路径变量.
继续前进,在添加新的路径变量之前"回显$ PATH".