首页 > 代码库 > Linux 学习命令权限的下放——10.1

Linux 学习命令权限的下放——10.1

##################################################
#################命令权限的下放###################
1.sudo :sudo可以让你以其他用户的身份执行命令(通常是以root的身份来执行命令)并非所有人可以使用sudo,只有在/etc/sudoers内的用户才能够执>行sudo这个命令。
        [root@localhost ~]# sudo -u sshd touch /tmp/fil
        [root@localhost ~]# ls -ld /tmp/fil
        -rw-r--r--. 1 sshd sshd 0 10月  8 20:54 /tmp/fil   ##从root身份切换到sshd的身份来创建目录
        ***因为/etc/sudoers 文件是有语法的,如果设置错误会造成无法使用sudo 故一般使用visudo命令来修改该文件内容
        1).单一用户可以使用root的所有命令:
                97 ## Allow root to run any commands ao@localhost ~]$ sudo passwd
Sorry, user hao is not allowed to execute ‘/bin/passwd‘ as root on localhost.
[hao@localhost ~]$ sudo passwd hao
Changing password for user hao.
nywhere
                98 root    ALL=(ALL)       ALL
                99 student ALL=(ALL)       All                          ##更改sudo内的文件内容  该语句的语法格式详见鸟哥P431

        修改后发现:
        [student@localhost ~]$ sudo useradd hao
        [sudo] password for student:
        [student@localhost ~]$ su - hao                                 ##student用户可以执行root用户的命令来添加用户了
        *****************************************************
        root    ALL=(ALL)       ALL
        1       2     3          4
        1.用户帐号:系统的哪个帐号可以使用sudo这个命令,默认只有root这个账户
        2.登陆者的来源主机名
        3.可切换的身份
        4.可执行的命令:必须使用绝对路径编写
          ** ALL 为特殊的关键字,代表任何身份,主机或者命令的意思

        2)透过群组的功能让用户管理系统
                105 ## Allows people in group wheel to run all commands
                106 %wheel  ALL=(ALL)       ALL
                108 ## Same thing without a password
                109 # %wheel        ALL=(ALL)       NOPASSWD: ALL
        通过这几行我们可以看到只要加入wheel这个用户组就可以run all commands!
                [root@localhost ~]# usermod -G wheel student
                root@localhost ~]# su - student                         ##加入该用户组并且切换到student用户下
                [student@localhost ~]$ sudo useradd zeng                ##发现可以使用useradd了
        若感执行sudo后要输入用户密码繁琐,可以加上NOPASSWD: 这一句,类似109行所视
        3)对指定主机下放指定命令操作
                ## Allow root to run any commands anywhere
                root    ALL=(ALL)       ALL
                hao     localhost=(root)        NOPASSWD: /usr/bin/passwd   ##使localhost这台主机上可以以root的身份执行/usr/bin/passwd>这条命令

                root    ALL=(ALL)       ALL
                hao     localhost=(root)        NOPASSWD: !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*,!/usr/bin/passwd root
                ##这样修改后发现hao这个用户无法使用passwd命令来更改root的密码,但可以更改其他用户与自己的密码
                        [hao@localhost ~]$ sudo passwd
                        Sorry, user hao is not allowed to execute ‘/bin/passwd‘ as root on localhost.
                        [hao@localhost ~]$ sudo passwd hao
                        Changing password for user hao.
##################end#################################

Linux 学习命令权限的下放——10.1