以其他 root 用户身份执行的脚本在错误目录 (root) 中创建文件

以其他 root 用户身份执行的脚本在错误目录 (root) 中创建文件

我从 root 角度运行一个 bash 脚本,然后启动脚本中的一个程序

su -c "sh /home/user2/script.sh" -m user2

问题是这个脚本启动的程序在执行时用户2,仍在尝试创建文件/根/.配置/,这当然会失败,因为它不允许用户2

我做错什么了吗?有没有更好的方法可以在脚本中实际更改用户,输入用户密码然后启动程序?

答案1

如果您使用-m参数su,它将把您当前的环境传递给正在执行的命令或 shell。具体来说,变量$HOME将在调用 shell 中设置为其值,而不是由调用的用户确定。

因此,如果您以 身份登录root,则在 下执行时$HOME将是/root并且保持如此。除非您想要保留环境的其他部分,否则您可以简单地从调用中省略 。script.shsu -m-msu

相关内容