当前位置: > Linux命令 >

linux su sudo命令详解

时间:2015-12-20 00:33来源:linux.it.net.cn 作者:IT
#su [OPTION] USERNAME 切换用户
        [OPTION]
                - 变更当前的工作环境PWD
                空 默认切换为root用户

        默认情况下使用su只是将PAHT和用户切换为USERNAME的,并不变更PWD。使用-则和用USERNAME登陆在实质上是一样的。

#sudo [OPTION] COMMAND
        某用户在不切换用户的情况下以另一个用户的权限通过某个主机执行某个命令。
        [OPTION]

                -l 列出当前用户可以使用的所有sudo类命令。

                -k 清除认证,下次使用需输入密码。默认第一次输入密码后,5分钟之内不再提示输入密码。

        /etc/sudoers
                sudo的配置文件,权限为440。
                除去额外配置条目,每一行定义个sudo条目,结构如下:
                        WHO        WHICHHOST=[FLAG:](RUNAS) COMMAND

                别名:
                        类似于组,别名只能使用大写字母。先定义后使用。
                        使用!表示取反。
                        1.用户别名 User_Alias
                                User_Alias NAME=USERNAME|%GROUP|OTHERUSERLIST
                                        USERNAME 当前系统上的用户。
                                        %GROUP 用户组,用%引导。
                                        OTHERUSERLSIT 其他的别名列表。

                        2.主机别名 Host_Alias
                                Host_Alias HOST=HOST|IPADD|IP/NETMASK|+GROUP|OTHERHOSTLIST
                                        HOST 主机名
                                        IPADD IP地址
                                        IP/NETMASK IP地址/子网掩码
                                        +GROUP 主机组,用+引导。
                                        OTHERHOSTLIST 其他的别名列表

                        3.以哪个用户运行 Runas_Alias
                                Runas_Alias RUNAS=USERNAME|#UID|%GROUP|+NETGROUP|OHTERRUNASLIST
                                        USERNAME 用户名
                                        #UID UID,用#引导。
                                        %GROUP 组名,用%引导。
                                        OTHERRUNASLIST 其他的别名列表

                        4.命令 Cmnd_Alias
                                Cmnd_Alias CMND=COMMAND|COMMDIR|OTHERCMNDLIST
                                        COMMAND 命令,使用绝对路径。
                                        COMMDIR 目录,包含此目录内的所有命令
                                        OTHERCMNDLIST 其他的别名列表

                FLAG(标签):
                        NOPASSWD 用户无需输入密码
                        PASSWD 需要密码

        相关的操作日志可以在/var/log/secure中查看。此日志文件的权限为600,只允许root查看。

        例如:
                1.hadoop用户使用root执行useradd
                        #vimsudo
                                hadoop ALL=(root) /usr/sbin/useradd,/usr/sbin/usermod

                        hadoop$ sudo /usr/sbin/useradd tom
                        [sudo] passowrd for hadoop:
                        hadoop$

                2.清除hadoop用户的认证,并在配置文件中变更为useradd不需要密码,usermod需要密码。
                        #sudo -k
                        #vimsudo
                                hadoop ALL=NOPASSWD:(root) /usr/sbin/useradd,PASSWD: /usr/sbin/usermod

                3.创建别名组,并禁止修改root密码:
                        #visudo
                                User_Alias USERADMIN=hadoop,%hadoop,%useradmin

                                Cmnd_Alias USERADMINCMD=/usr/sbin/useradd,/usr/sbin/usermod,/usr/sbin/userdel,/usr/bin/passwd[A-Za-z]*,!/usr/bin/passwd root
                                        这里的[A-Za-z]*类似于文件名通配,不是正则表达式。


                                USERADMIN ALL=NOPASSWD:USERADMINCMD




        #visudo [OPTION] 编辑sudo配置文件的专用命令,可以检查配置文件错误。
                [OPTION]
                        -f FILE 指定其他的sudoers文件


#man sudoers 查看有关/etc/sudoers的具体定义内容。


(责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容