Linux 命令输出位置
我试图找出以下命令的输出指向何处: sudo-i-u someuser/home/someuser/test.sh test.sh脚本的内容:Linux 命令输出位置,linux,bash,shell,login,command,Linux,Bash,Shell,Login,Command,我试图找出以下命令的输出指向何处: sudo-i-u someuser/home/someuser/test.sh test.sh脚本的内容: echo "test" 命令是从另一个用户的主目录调用的。最简单的方法是用sudo运行pwd(1),尽管我会破坏乐趣,并透露当使用“-I”开关执行sudo(1)时,工作目录将设置为有效用户id(=未指定时,使用“-u”或root指定的任何内容)如果没有'-i',它将是当前目录 例如: user@host:~/work/linux-3.11.7$ sud
echo "test"
命令是从另一个用户的主目录调用的。最简单的方法是用sudo运行pwd(1),尽管我会破坏乐趣,并透露当使用“-I”开关执行sudo(1)时,工作目录将设置为有效用户id(=未指定时,使用“-u”或root指定的任何内容)如果没有'-i',它将是当前目录 例如:
user@host:~/work/linux-3.11.7$ sudo -i -u games pwd
[sudo] password for user:
/usr/games
user@host:~/work/linux-3.11.7$ sudo -u games pwd
/home/user/work/linux-3.11.7
因此,如果您将sudo(1)的输出重定向到未指定完整路径的某个文件,那么您就可以知道将在何处创建该文件。-选中-i选项。您是否尝试以someuser身份运行该命令?环境是以一种奇怪的方式设置的吗?
echo
只是打印到标准输出,这里没有任何东西表明它正在被重定向。除非您忽略了关键信息,否则输出将被发送到调用用户的终端。当以someuser身份运行时,该命令的行为与预期相同。我已经在我的本地PC上检查了该命令,它是正常的。但是,在远程服务器上则不同。我注意到命令sudo-I-u someuser/home/someuser/test.sh不打印任何内容。但是命令sudo-i-u someuser./test.sh会打印预期的文本“test”。我想这是权限问题。是否可以检查所有父目录的权限?