我经常需要运行在作为一个不同的用户。我一直在做类似的东西如何以不同的用户身份运行'at'?
$ echo "$PWD/batchToRun -parameters" | sudo su - otheruser -c "at now"
batchToRun
还计划通过otheruser的crontab来运行。直到batchToRun
开始运行,取决于环境变量设置的细微副作用 - 如LANG(排序任何人?) - 从运行sudo
的用户环境传入。
我通常不想以登录其他用户;这是一个半特权帐户,我想要一个与其相关联的活动的“纸质足迹”,以便我可以回头看看究竟做了什么,由谁,什么时候等。
除了明显的重写batchToRun
独立于这些设置,确保sudoer环境不会污染目标环境的好方法是什么?
注:这是对FC7(须藤版本1.6.8p12版本得以)等老的发行版,所以任何闪亮的新功能sudo
/su
/at
(值得注意的是,与-i
参数传递到sudo
的能力)都超出了我把握。
更新:事实证明,su - otheruser
实际上是用户之间足够的防火墙,并且我的污染源自交互式启动顺序中的某些内容。不过,我仍然喜欢env
编辑功能。
不错。而这些年来,我认为“env”仅用于打印你的环境。 – jhfrontz 2013-03-22 23:07:09