美文网首页
su命令与sudo服务

su命令与sudo服务

作者: 别把风景搬上天堂 | 来源:发表于2019-12-23 22:06 被阅读0次

    su命令

    在Linux中,当以某个用户登录后,在不退出系统重新登录的情况下,可以切换成另一个用户,使用su命令来实现。
    su 命令语法格式:
    su [options] [-] [user [arg]...]

    选项 说明
    -m, -p 保留环境变量
    -g 指定主要组
    -G 指定附属组
    -,-l,-login 开启login shell ,如果没指定的用户,默认为root
    -c 执行命令
    -s 运行指定的shell
    -h 帮助
    -V 查看版本
    [root@localhost ~]# echo $PATH    #查看当前用户的环境变量和工作目录
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    [root@localhost root]$ pwd
    /root
    [root@localhost ~]# su wufujie    #su  切换用户
    [wufujie@localhost root]$ echo $PATH 
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
    [wufujie@localhost root]$ pwd
    /root
    [root@localhost ~]# su - wufujie     # su - 切换用户
    Last login: Mon Dec 23 20:14:25 CST 2019 on pts/3
    [wufujie@localhost ~]$ echo $PATH 
    /usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/wufujie/.local/bin:/home/wufujie/bin
    [wufujie@localhost ~]$ pwd
    /home/wufujie
    [root@localhost ~]# pstree | grep bash   #查看进程树
            |-gnome-terminal--+-bash
            |-sshd-+-sshd---bash---su---bash-+-grep
            |      `-sshd---bash---vim
    [root@localhost ~]# su wufujie
    [wufujie@localhost root]$ pstree | grep bash
            |-gnome-terminal--+-bash
            |-sshd-+-sshd---bash---su---bash---su---bash-+-grep
            |      `-sshd---bash---vim
    

    通过上面的例子可以看出在使用su切换用户时,当前工作目录和环境变量保持不变,当使用su - 切换用户时,当前工作目录和环境变量都发生了变化。因此,我们一般将su USER 称为不完全切换,su - USER 称为完全切换。
    通过上面的执行过程,所谓的不完全切换只是在原来的shell中又通过su 新开了一个shell。

    sudo服务

    在使用su命令时,从root切换到普通用户可以直接切换,不用输入密码,而从普通用户切换到root用户,则需要输入密码;此时可以通过sudo技术实现对普通用户的授权,使其可以执行授权过的管理特定的任务。
    sudo的配置文件放置在/etc/sudoers。不管sudoers文件放置在哪里,有一个专用命令visudo来编辑该文件。强烈建议使用visudo命令来修改sudoers,因为它会帮助校验文件是否正确,在保存退出时,会提示你哪段配置出错。

    sudoers缺省变量如下:
    ## Syntax:
    ##
    ##  user    MACHINE=COMMANDS
    ##
    ## The COMMANDS section may have other options added to it.
    ##
    ## Allow root to run any commands anywhere
    root    ALL=(ALL)   ALL
    
    ## Allows members of the 'sys' group to run networking, software,
    ## service management apps and more.
    # %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
    
    ## Allows people in group wheel to run all commands
    %wheel  ALL=(ALL)   ALL
    
    ## Same thing without a password
    # %wheel    ALL=(ALL)   NOPASSWD: ALL
    
    ## Allows members of the users group to mount and unmount the
    ## cdrom as root
    # %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
    
    ## Allows members of the users group to shutdown this system
    # %users  localhost=/sbin/shutdown -h now
    
    root ALL = (ALL) ALL
    用户名 主机名 = 以什么身份运行 要执行的命令

    例如:① wufujie ALL=(ALL) ALL 这条命令表示wufujie用户可以在任意主机上执行任意权限,即获得了root的所有权限
    ② wufujie ALL=/bin/chown,/bin/chmod 这条命令表示用户wufujie可以在任意主机名的系统中切换到root用户下执行/bin/chown,/bin/chmod命令。在(ALL)省略的情况下,默认为root.

    [wufujie@localhost ~]$ sudo -l     #通过sudo -l  或 sudo -ll查看用户被授权情况
    User wufujie may run the following commands on localhost:
        (root) /bin/chown, /bin/chmod
    

    ③ wufujie ALL=(ALL) NOPASSWD:ALL 示例①在执行命令时还需要输入root的密码,NOPASSWD: 定义了用户执行操作时不需要输入密码
    ④ wufujie ALL=(root)NOPASSWD:/bin/chown,/bin/chmod 这条命令表示用户wufujie可以在任意主机名的系统中切换到root用户下执行/bin/chown,并且不需要密码,能在root用户下执行/bin/chmod命令需要输入密码。
    ⑤ %wufujie ALL=/bin/chown,/bin/chmod 加上%表示用户组,只要在该用户组下的用户皆可执行该命令的赋予的权限
    ⑥ wufujie ALL=/usr/sbin/,/sbin/,!/usr/sbin/fdisk 该命令表示wufujie用户可以在
    任意主机上运行任意/usr/sbin和/sbin下的所有命令,/usr/sbin/fdisk除外

    在sudoers文件中,可以使用别名,对复杂场景下简化授权过程。

    User_Alias SYSADER=wufujie,wfj,%wufujie    #定义用户别名SYSADER,表示用户wufujie,wfj和组wufujie
    Host_Alias SERS=192.168.0.0/24,192.168.0.99   #定义主机别名SERS ,表示指定的网络和主机
    Runas_Alias OP=root    #定义runas别名OP,表示以root身份执行命令
    Cmd_Alias DSKCMD=/sbin/parted,/sbin/fdisk    #定义命令别名DSKCMD,表示parted和fdisk
    SYSADER SERS=(OP) DSKCMD     #引用上面的别名
    

    相关文章

      网友评论

          本文标题:su命令与sudo服务

          本文链接:https://www.haomeiwen.com/subject/mwjtoctx.html