Linux root用户怎么以制定的用户去执行某个程序。

su user不行。因为我是写在/etc/rc.local里的

/etc/rc.local:
/home/user/xx.sh <-- 以user用户执行这个xx.sh。

怎么搞?

1、输入用户名和密码,登录虚拟机

2、安装某个软件,结果发现当前用户没有权限。

3、输入su回车,输入root密码,进入root模式。

4、输入命令:visudo回车然后按两次回车,再用方向键↓往下翻,找到:root    ALL=(ALL)      ALL。

5、点击【a】键,进入【编辑】模式,在root    ALL=(ALL)      ALL这一行下面输入:用户名 ALL=(ALL)      ALL。

6、点击【Esc】键,退出【编辑】模式即可。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-07
可以使用 sudo命令,以指定用户身份执行程序。
如: sudo -u weblogic /home/weblogic/sbin/starup.sh
以weblogic用户身份,启动服务器。

sudo命令的常见参数
选项 含义 作用
sudo -h Help 列出使用方法,退出。
sudo -V Version 显示版本信息,并退出。
sudo -l List 列出当前用户可以执行的命令。只有在sudoers里的用户才能使用该选项。
sudo -u username#uid User 以指定用户的身份执行命令。后面的用户是除root以外的,可以是用户名,也可以是#uid。
sudo -k Kill 清除“入场卷”上的时间,下次再使用sudo时要再输入密码。
sudo -K Sure kill 与-k类似,但是它还要撕毁“入场卷”,也就是删除时间戳文件。
sudo -b command Background 在后台执行指定的命令。
sudo -p prompt command Prompt 可以更改询问密码的提示语,其中%u会代换为使用者帐号名称,%h会显示主机名称。非常人性化的设计。
第2个回答  2013-04-16
据我观察,你可能需要用 runuser这个命令
格式

runuser -c /home/user/xx.sh user追问

可以带其他参数么?
比如:
runuser -c /home/user/xx.sh p1 p2 p3 user

追答

可以的。
不过格式是
unuser -c /home/user/xx.sh user p1 p2 p3

追问

比如如果以nobody用户执行vsftpd并携带参数,就是这样?
runuser -c /sbin/vsftpd nobody -c /etc/vsftpd.conf
???

如何操作?

追答

可能是这样,具体你的自己测试一下吧。

runuser -c /sbin/vsftpd nobody “-c /etc/vsftpd.conf”

追问

E: Unable to locate package runuser
没有这个命令

Debian 6.0.7

追答

我的回答建立在 redhat系的基础之上,很遗憾没有帮到你。

本回答被提问者和网友采纳
第3个回答  2013-04-16
/home/user/xx.sh对这个用户设定权限,
ACL (访问控制)

ACL可以为某一个文件单独设置该文件具体的某用户或组的权限

-m 修改文件都acl

-x 取消文件或组的权限

Setfacl --m u:用户名:权限<文件名>//设置某个用户的访问权限

Setfacl --m g:组 名:权限<文件名>//设置某个组的访问权限

Setfacl --x u:用户名:权限<文件名>//取消某个用户的访问权限

Setfacl --x g:组 名:权限<文件名>//取消
这样:

setfacl -m u:user:777 /home/user/xx.sh
这个权限应该能够执行了。追问

不行。

root用户执行xx.sh。ps -ef。查询的xx.sh的所属user必须是指定的user

追答

不清楚了,我新手,可以试下改属主,属主在设定权限呢?

追问

也不行。试过

第4个回答  2013-04-15
先建立一个用户,亲 usradd username(好像是这样的,捂脸)。。password yourpasword。。这样就新加了一个用户。。然后su username 就进入了你新建的用户了。。追问

su user不行。因为我是写在/etc/rc.local里的

相似回答