zoukankan      html  css  js  c++  java
  • linux基础权限管理篇二

    一、特殊权限:suid sgid

    1.suid(set uid 设置用户ID)限定:只能设置在二进制可执行程序上面。对目录无效

    功能:程序运行时的权限从执行者变成程序所有者的权限

    sgid:既可以给二进制可执行程序设置也可以对目录设置

    功能:在设置了sgid权限的目录下建立文件时,新创建的文件的所有组会继承上级目录的所属组

    设置suid

    chmod u+s  二进制可执行文件或chmod u=4 二进制可执行文件

    设置sgid

    chmod g+s 二进制可执行文件或chmod g=2 二进制可执行文件

    suid属性一般用在可执行的文件上,当用户执行该文件时,会临时拥有该执行文件的所有者权限。

    使用“ls -l”或者”ll“命令浏览文件时,如果可执行文件所有者权限的第三位是一个小写的“s”,就表明该执行文件拥有suid属性

    [root@andy ~]# which cat
    /bin/cat
    [root@andy ~]# chmod u+s /bin/cat
    [root@andy ~]# ls -l /bin/cat
    -rwsr-xr-x. 1 root root 54080 11月 6 2016 /bin/cat
    [root@andy ~]# su - test
    上一次登录:三 11月 27 22:00:51 CST 2019pts/0 上
    [test@andy ~]$ cat /etc/shadow
    bin:*:17110:0:99999:7:::
    daemon:*:17110:0:99999:7:::
    adm:*:17110:0:99999:7:::
    lp:*:17110:0:99999:7:::
    sync:*:17110:0:99999:7:::
    shutdown:*:17110:0:99999:7:::
    halt:*:17110:0:99999:7:::
    mail:*:17110:0:99999:7:::
    operator:*:17110:0:99999:7:::
    games:*:17110:0:99999:7:::
    ftp:*:17110:0:99999:7:::
    nobody:*:17110:0:99999:7:::
    systemd-bus-proxy:!!:18079::::::
    systemd-network:!!:18079::::::
    dbus:!!:18079::::::
    polkitd:!!:18079::::::
    tss:!!:18079::::::
    postfix:!!:18079::::::
    sshd:!!:18079::::::
    chrony:!!:18079::::::
    mysql:!!:18117::::::
    apache:!!:18118::::::
    zabbix:!!:18118::::::
    dhcpd:!!:18123::::::
    geoclue:!!:18123::::::
    andy:!!:18218::::::
    andy1:$6$Xs6FGgpm$gOXgBQLVRVGGc6DbbWPxqU/ZK775VbGxkZD0ip3ziYHEtYCRaYXh1hjDKsn7dP4JpIRZwHxwBAHYPyMbRdIJQ.:18219::::::
    root:$6$UL3tJO.I$L7IO.DLLH/SQj7dZ.c5ljFJKzQaRjUf9tPBDZnFBL46EhDhFANXsh7h93v6g0f4/pZknX9S7paLLCptQwp.d20:18219::::::
    test:$6$DRHD2FZ5$ky30s5SlL8dup7.vn7Uhj7/4Q5PAOyKltZPp488OAWn2OoEQz.0OYg.4mJ/ajWqJNpJnNMMhnabpYG2aeG9M1.:18227:0:99999:7:::
    [test@andy ~]$

    去除suid权限

    chmod u-s 可执行二进制文件 

    [root@andy ~]# ls -l /bin/cat
    -rwsr-xr-x. 1 root root 54080 11月 6 2016 /bin/cat
    [root@andy ~]# chmod u-s /bin/cat
    [root@andy ~]# ls -l /bin/cat
    -rwxr-xr-x. 1 root root 54080 11月 6 2016 /bin/cat
    [root@andy ~]#

    sgid既可以给二进制可执行文件设置,也可以给目录设置

    功能:在设置了sgid权限的目录下建立文件时,新创建的文件的所属组会继承上级目录的权限

    chmod g+s 可执行二进制文件  当其他用户执行二进制命令时,可以拥有执行执行该命令用户,所属组的权限

    [root@andy ~]# ls -l /bin/cat
    -rwxr-xr-x. 1 root root 54080 11月 6 2016 /bin/cat
    [root@andy ~]# chmod g+s /bin/cat
    [root@andy ~]# ls -l /bin/cat
    -rwxr-sr-x. 1 root root 54080 11月 6 2016 /bin/cat
    [root@andy ~]# ls -l /etc/passwd
    -rw-r----- 1 root root 1463 11月 28 02:29 /etc/passwd
    [root@andy ~]# id test
    uid=1000(test) gid=1002(test) 组=1002(test)
    [root@andy ~]# su - test
    上一次登录:四 11月 28 02:59:39 CST 2019pts/0 上
    /usr/bin/id: cannot find name for user ID 1000
    /usr/bin/id: cannot find name for user ID 1000
    [I have no name!@andy ~]$ cat /etc/passwd
    root:x:0:0:root:/root:/bin/bash
    bin:x:1:1:bin:/bin:/sbin/nologin
    daemon:x:2:2:daemon:/sbin:/sbin/nologin
    adm:x:3:4:adm:/var/adm:/sbin/nologin
    lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
    sync:x:5:0:sync:/sbin:/bin/sync
    shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
    halt:x:7:0:halt:/sbin:/sbin/halt
    mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
    operator:x:11:0:operator:/root:/sbin/nologin
    games:x:12:100:games:/usr/games:/sbin/nologin
    ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
    nobody:x:99:99:Nobody:/:/sbin/nologin
    systemd-bus-proxy:x:999:997:systemd Bus Proxy:/:/sbin/nologin
    systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin
    dbus:x:81:81:System message bus:/:/sbin/nologin
    polkitd:x:998:996:User for polkitd:/:/sbin/nologin
    tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
    chrony:x:997:995::/var/lib/chrony:/sbin/nologin
    mysql:x:27:27:MariaDB Server:/var/lib/mysql:/sbin/nologin
    apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
    zabbix:x:996:994:Zabbix Monitoring System:/var/lib/zabbix:/sbin/nologin
    dhcpd:x:177:177:DHCP server:/:/sbin/nologin
    geoclue:x:995:993:User for geoclue:/var/lib/geoclue:/sbin/nologin
    andy:x:994:991::/home/andy:/sbin/nologin
    andy1:x:993:990::/home/andy1:/sbin/nologin
    test:x:1000:1002::/home/test:/bin/bash
    andy2:x:992:989::/home/andy2:/bin/bash
    [I have no name!@andy ~]$ su - root
    密码:
    上一次登录:四 11月 28 03:01:35 CST 2019pts/0 上
    [root@andy ~]# chmod g-s /bin/cat
    [root@andy ~]# ls -l /bin/cat
    -rwxr-xr-x. 1 root root 54080 11月 6 2016 /bin/cat
    [root@andy ~]# su - test
    上一次登录:四 11月 28 03:05:27 CST 2019pts/0 上
    /usr/bin/id: cannot find name for user ID 1000
    /usr/bin/id: cannot find name for user ID 1000
    [I have no name!@andy ~]$ cat /etc/passwd
    cat: /etc/passwd: 权限不够
    [I have no name!@andy ~]$

    chmod g+s 目录  继承所属组的权限

    [root@andy ~]# ls -ld
    dr-xr-x---. 4 root root 225 11月 28 03:13 .
    [root@andy ~]# ls -ld test
    drwxr-xr-x 3 root root 19 11月 28 03:16 test
    [root@andy ~]# chown test:G1 test
    [root@andy ~]# ls -ld test
    drwxr-xr-x 3 test G1 19 11月 28 03:16 test
    [root@andy ~]# cd test
    [root@andy test]# mkdir test1
    [root@andy test]# ls -ld test1
    drwxr-xr-x 2 root root 6 11月 28 03:21 test1
    [root@andy test]# cd
    [root@andy ~]# chmod g+s test
    [root@andy ~]# ls -ld test
    drwxr-sr-x 4 test G1 32 11月 28 03:21 test
    [root@andy ~]# cd test
    [root@andy test]# mkdir test3
    [root@andy test]# ls -ld test3
    drwxr-sr-x 2 root G1 6 11月 28 03:24 test3
    [root@andy test]#

    二、 sbit权限

    对于设置sbit权限的文件,用户只能删除自己创建的文件,不能删除其他用户创建的文件

    对目录/tmp添加sbit权限,删除文件的时候显示拒绝

     root用户设置sbit

    [root@andy ~]# chmod o+t /tmp

     

    切换到andy1用户创建andy1文件

     

    [root@andy ~]# su - andy1

     [andy1@andy ~]$ cd /tmp

    [andy1@andy tmp]$ touch andy1

    切换到andy2用户

    [andy1@andy tmp]$ su - andy2

    [andy2@andy ~]$ cd /tmp

    [andy2@andy tmp]$ rm -rf andy1
    rm: 无法删除"andy1": 不允许的操作

    切换到root取消suit权限再次切换到andy2就可以删除了

    [andy2@andy tmp]$ su - root
    密码:
    上一次登录:三 12月 4 13:43:03 CST 2019pts/1 上
    [root@andy ~]# chmod o-t /tmp
    [root@andy ~]# su - andy2
    上一次登录:三 12月 4 15:18:15 CST 2019pts/1 上
    [andy2@andy ~]$ rm -rf /tmp/andy1
    [andy2@andy ~]$

    三、文件扩展权限ACL

    扩展ACL:access control list

    场景:设置用户andy3对文件a.txt拥有rwx权限,andy不属于a.txt的所属主和组,andy是other,同时还要保证除了andy这个用户,other中其他的用户,没有rwx权限。

    1.查看andy3属主属组,创建并查看a.txt属主属组

    [root@andy ~]# id andy3
    uid=1003(andy3) gid=1003(andy3) 组=1003(andy3)
    [root@andy ~]# rm -rf a.txt
    [root@andy ~]# id andy3
    uid=1003(andy3) gid=1003(andy3) 组=1003(andy3)
    [root@andy ~]# touch a.txt
    [root@andy ~]# ls -lh a.txt
    -rw-r--r-- 1 root root 0 12月 4 15:45 a.txt
    [root@andy ~]#

    2.设置a.txt扩展权限,查看a.txt扩展权限

    [root@andy ~]# setfacl -m u:andy3:rwx a.txt
    [root@andy ~]# getfacl a.txt
    # file: a.txt
    # owner: root
    # group: root
    user::rw-
    user:andy3:rwx
    group::r--
    mask::rwx
    other::r--

    [root@andy ~]#

    3.修改权限-R一定要在-m(设置)前边表示目录下所有文件

    [root@andy ~]# setfacl -R -m u:andy3:rw- /root/
    [root@andy ~]# getfacl a.txt
    # file: a.txt
    # owner: root
    # group: root
    user::rw-
    user:andy3:rw-

    4.去掉单个权限

    [root@andy ~]# setfacl -x u:andy3 a.txt
    [root@andy ~]# getfacl a.txt
    # file: a.txt
    # owner: root
    # group: root
    user::rw-
    group::r--
    mask::r--
    other::r--

    [root@andy ~]#

    5.去掉所有acl权限(假如a.txt对多个用户开放acl权限)

    [root@andy ~]# setfacl -b /root/a.txt

    四、sudo实战

    1.sudo概念

    sudo是linux下常用的允许普通用户使用超级用户权限的工具,允许系统管理员让普通用户执行一些或者全部的root命令。减少了root登陆管理时间,同样提高了安全性

    2.特点

    1)sudo能限制用户只在某台主机上运行某些命令

    2)sudo提供了丰富的日志,详细地记录了每个用户干了什么。它能够将日志传到中心主机或者日志服务器上

    3)sudo使用时间戳文件--日志 来执行类似检票系统,当用户调用sudo并且输入他的密码时,用户获得一张存活期为5min的票

    4)sudo的配置文件是/etc/sudoers,属性必须为440,它允许系统管理员集中的管理用户的使用权限和使用的主机,一般使用visudo编辑配置文件

    3.实战sudo

    1)创建用户andy并创建密码

    [root@andy ~]# useradd andy
    [root@andy ~]# echo "andy" | passwd --stdin andy
    更改用户 andy 的密码 。
    passwd:所有的身份验证令牌已经成功更新。
    [root@andy ~]#

    2)修改配置文件为andy添加useradd权限

    [root@andy ~]# visudo

    ##
    ## user MACHINE=COMMANDS
    ##
    ## The COMMANDS section may have other options added to it.
    ##
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL
    andy ALL=(ALL) /usr/sbin/useradd
    ## 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

    3)验证andy的useradd权限

    [root@andy ~]# su - andy
    [andy@andy ~]$ useradd test1
    -bash: /usr/sbin/useradd: 权限不够
    [andy@andy ~]$ sudo /usr/sbin/useradd test1

    We trust you have received the usual lecture from the local System
    Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

    [sudo] password for andy: (输入andy密码)
    [andy@andy ~]$ 
    [andy@andy ~]$ sudo /usr/sbin/useradd test2
    [andy@andy ~]$

    4)配置日志

    1.创建日志文件

    [root@andy ~]# touch /var/log/sudo.log
    [root@andy ~]#

    2.配置rsyslog

    [root@andy ~]# vim /etc/rsyslog.conf

    #sudo log
    local2.debug /var/log/sudo.log
    "/etc/rsyslog.conf" 92L, 3272C 已写入
    [root@andy ~]#

    3.配置visudo

    [root@andy ~]# visudo

    Defaults logfile=/var/log/sudo.log
    "/etc/sudoers.tmp" 112L, 3983C written
    [root@andy ~]#

    4.测试,查看日志

    [root@andy ~]# cat /var/log/sudo.log
    Dec 12 16:42:47 : andy : TTY=pts/0 ; PWD=/home/andy ; USER=root ;
    COMMAND=/usr/sbin/useradd test5
    [root@andy ~]#

      

  • 相关阅读:
    查看端口有没有被占用
    微信公众号2()
    How to insert a segment of noise to music file
    puppet practice
    Docker Commands
    LempelZiv algorithm realization
    The algorithm of entropy realization
    Java network programmingguessing game
    Deploy Openstack with RDO and Change VNC console to Spice
    puppet overview
  • 原文地址:https://www.cnblogs.com/yzandy/p/11946683.html
Copyright © 2011-2022 走看看