【发布时间】:2014-05-19 06:47:16
【问题描述】:
我是初学者,我需要在脚本的一个命令行中为两个不同的用户使用sudo su - 和pwd。 (我以pwd为例,具体的命令并不重要。)
我正在使用命令sudo su - user -c pwd。此命令在切换到一个用户时有效,但在切换到另一个用户时无效。
例如:-
$ sudo su - ora -c pwd
/oracle/
$ sudo su - adm -c pwd
Sorry, user myuser is not allowed to execute '/usr/bin/su - adm -c pwd' as root on server.
$
我怎样才能让它也适用于“adm”用户?
【问题讨论】:
-
你真正想做什么?为用户
ora和adm建立主目录?如果是这样,这不是你这样做的方式:echo ~ora ~adm应该完成这项工作。至于失败的原因,您需要(认真)查看/etc/sudoers配置文件。 -
我认为这不是一个好方法。通常,您编写脚本时假设它以适当的用户身份运行。然后,您可以为该脚本只
sudo给该用户(并在 sudoers 文件中添加适当的条目)。 -
第二个用户(不工作的那个)是 sudoer 用户?因为不是所有的用户都是sudoers,也就是说不是所有的用户都能做sudo su。看看这个博客Take Control of your Linux
-
不,这只是一个例子,与密码无关,它不允许我运行任何命令
sudo su - adm -c anycommand.. -
那么您需要仔细检查您的
/etc/sudoers文件。它似乎允许您切换到ora,但不能切换到adm;这有点奇怪,因为它可以让你成为 root。您可以尝试:sudo sh -c "su - adm -c pwd"看看这是否能让您有所收获。