zoukankan      html  css  js  c++  java
  • Linux指定用户运行程序

    参考:http://blog.useasp.net/archive/2015/07/29/run-command-as-different-user-on-linux.aspx

    在实际中,我们有时候想在一个脚本中指定用户来运行另一个程序,从而更好地管理进程。可以通过runuser、su和sudo来实现。

    runuser

    runuser命令使用一个替代的用户或者组ID运行一个Shell。这个命令仅在root用户时有用。仅以会话PAM钩子运行,并且没有密码提示。如果用一个非root用户,并且该用户没有权限设置user ID,这个命令将会因为程序没有setuid而失败。因runuser不会运行认证和账户PAM钩子,它比su更底层。

    语法:

    runuser [options] -u user command [argument...]
    runuser [options] [-] [ user [argument...]  ]
    

    示例:

    runuser - Ruby -g Ruby -c "sh my.sh"
    

    su

    su命令允许你成为一个超级用户或者替代用户(substitute user),欺骗用户(spoof user),设置用户(set user)或者切换用户(switch user)。它允许一个Linxu用户切换当前用户到那些你知道密码的目标用户,切换包括与之关联的运行中的控制台(console)或者Shell。

    语法:

    su [options...] [-] [user [args...]]
    

    示例:

    su - Ruby -c "sh my.sh"
    

    sudo

    sudo以另外的用户来执行一个命令,但是它跟着一组关于那些用户可以以那些其他用户执行那些命令的规则(有点绕口——译注)。这个规则在/etc/sudoers这个文件中被定义。不像susudo验证用户是靠用户自己的密码而不是那个要切换的用户密码。

    语法:

    sudo command
    

    示例:

    sudo sh my.sh
    
  • 相关阅读:
    php常用函数总结
    PHP常用函数(收集)
    Web开发者的最爱 5个超实用的HTML5 API
    打开MySQL数据库远程访问的权限
    centos yum 安装问题
    CentOS6.4安装VNC
    删:Centos 7安装Nginx 1.8
    centos6.3安装nginx
    MySQL5.7重置root密码
    CentOS下MySQL忘记root密码解决方法【转载】
  • 原文地址:https://www.cnblogs.com/jmliao/p/11823209.html
Copyright © 2011-2022 走看看