linux - 在使用非 root 用户执行 csh 脚本期间更改用户

标签 linux shell csh

我以用户 JSmith 的身份登录。 作为这个用户,我运行了一个运行一系列可执行文件的 csh 脚本。 但是,其中一个可执行文件需要以用户 HJones 运行。 之后,其他可执行文件应该以用户 JSmith 运行。 请注意,JSmith 不是 root 用户,并且 HJones 有一个密码,即“abcd”。 如何在脚本运行期间将用户更改为 HJones,运行我的可执行文件,然后再更改回 JSmith。

这是我与用户 JSmith 一起运行的文件 run_execs.sh 中的一些代码。

#!/bin/csh -f

cd $EXEC_DIRECTORY

./doJSmithThis
./doJSmithThat

sudo -u HJones ??

./doHJonesStuff

sudo -u JSmith ??

./doJSmithAnother
./doJSmithMoreStuff

等等

最佳答案

su -c './doHJonesStuff' - HJones 将作为 HJones 运行脚本 doHJonesStuff,它不会影响您的其他命令。

#!/bin/csh -f

cd $EXEC_DIRECTORY

./doJSmithThis
./doJSmithThat

su -c './doHJonesStuff' - HJones

./doJSmithAnother
./doJSmithMoreStuff

关于linux - 在使用非 root 用户执行 csh 脚本期间更改用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37547295/

相关文章:

php - 服务器崩溃可能会泄露php源代码?

c - fork:子进程不会停留在无限循环中

python - Linux - 如何将位于多个子目录中的相同扩展名的文件直接复制到一个文件中?

python - 在python中检测当前shell是否是powershell

linux - csh 内联数学

unix - 如何在 C-shell echo 命令中包含换行符?

linux - 看起来 Busybox shell 没有删除引号

c++ - Openssl SSL_CTX_new(SSLv3_method()) 返回 NULL

linux - 无法在 shell 脚本中使用 awk 命令进行打印

linux - 从原始数组创建一个数组,但基于代码运行的位置?