我以用户JSmith身份登录。 作为这个用户,我运行一个运行一系列可执行文件的csh脚本。 但是,其中一个可执行文件需要与用户HJones一起运行。 之后,其他可执行文件应该与用户JSmith一起运行。 请注意,JSmith不是root用户,HJones有密码,即“abcd”。 如何在脚本运行期间将用户更改为HJones,运行我的可执行文件,然后更改回JSmith。
这是run_execs.sh文件中的一些代码,我与用户JSmith一起运行。
#!/bin/csh -f
cd $EXEC_DIRECTORY
./doJSmithThis
./doJSmithThat
sudo -u HJones ??
./doHJonesStuff
sudo -u JSmith ??
./doJSmithAnother
./doJSmithMoreStuff
等
答案 0 :(得分:0)
su -c './doHJonesStuff' - HJones
会将脚本doHJonesStuff
作为HJones
运行,它不会影响您的其他命令。
#!/bin/csh -f
cd $EXEC_DIRECTORY
./doJSmithThis
./doJSmithThat
su -c './doHJonesStuff' - HJones
./doJSmithAnother
./doJSmithMoreStuff
答案 1 :(得分:0)
如果您希望csh脚本提供密码:
( sleep 1 ; echo abcd ) | socat -,ignoreeof EXEC:'su -c ./doHJonesStuff HJones',pty
(sleep 1
就在那里,因为su
会丢弃在提示之前到达的密码。)