监控登陆

w 查看谁在登录
last 登录和重启的记录
lastb 登录失败次数
lastlog 最近登录日志

文件的特殊执行文件

文件的特殊执行文件:
SUID 权限为4
    设置在文件上,设置在目录上无意义
    只能作用在二进制程序上,不能作用在脚本上
    执行SUID权限的程序时,此用户将继承此文件所有者权限
    如果这个二进制程序拥有x权限则是s,如果没有x,则是S
    设置方法chmod u+s/u-s file 
    例1:passwd用户是拥有SUID权限的
        -rwsr-xr-x. 1 root root 34512 Aug 12  2018 /usr/bin/passwd    
         将passwd 的 SUID文件去掉
         chmod u-s /etc/passwd
         去掉后切换一个普通用户,去修改密码,会发现错误修改不了,因为passwd需要使用到root用户权限来执行,由root用户来更新用户信息
         $ passwd 
        Changing password for user user09.
        Current password: 
        Current Password: 
        passwd: Authentication token manipulation error
    列2:给mkdir添加SUID权限,切换到普通用户,在root目录下执行mkdri命令,发现是可以创建成功的,然后在查看创建文件的详细信息显示会发现所属人是root
        -rwsr-xr-x. 1 root root 106256 Jan 11  2019 /usr/bin/mkdir
        su - user07
        mkdir /root/user07
        drwxrwxr-x. 2 root user07 6 Sep  8 06:36 /root/user07/

SGID 权限为2
    可以设置在文件和目录上
    只能作用在二进制文件上,不能作用在脚本上
    执行SGID权限程序时,此用户将继承此文件的所属组权限,
    如果是使用在二进制文件中,则是和SUID一样的功能
    设置方法为 chmod g+s/g-s file 



目录的特殊执行权限:
SGID  权限为2
    当一个目录有SGID权限时,此文件下所有新建的文件都自动继承此目录的组
    如果是目录上,如果此目录都有sgid的权限,则在该目录下创建的文件都会默认继承为该目录的组,如果为继承目录下的子目录,就无法继承
    列1:user07拥有人和组分别为root、user07,给该用户加入SGID权限,在user07目录下创建目录会发现user07下的目录会继承user07的权限,【如果当你在次修改了user07的目录权限,在创建子目录,权限不会发送变化】
    drwxrwxr-x. 2 root user07     6 Sep  8 06:36 user07
    [root@abc ~]# chmod g+s user07
    [root@abc ~]# ll -d user07
    drwxrwsr-x. 2 root user07 6 Sep  8 06:36 user07
    [root@abc user07]# mkdir 1
    [root@abc user07]# ll
    total 0
    drwxr-sr-x. 2 root user07 6 Sep 11 02:40 1



stciky 权限为1
    对于一个多人可写的目录,如果设置了sticy,则每个用户仅能删除和改名自己的文件或目录
    用户在设置sticky权限的目录下新建的目录不会自动继承Sticky权限
    设置方法chmod o+t [目录] 或者 chmod 1777 dir
    列:创建一个it目录所属组为it,权限为733;如果未设置stciky权限user05用户可以删除user07、9的文件,如果加上stciky权限就不能删除
    [root@abc ~]# cat /etc/group | grep it
    it:x:1111:user05,user09,user07

    drwx-wx-wt. 4 root it 34 Sep 11 03:05 it

    [root@abc it]# ll
    total 0
    drwxrwxr-x. 2 root user09 6 Sep 11 02:49 user09
    drwxrwxr-x. 2 root user07 6 Sep 11 02:52 user07

    [root@abc it]# rm -rf user09
    [root@abc it]# ls         ASZ
    user07    
    [user07@abc it]$ rm -rf user05
    rm: cannot remove 'user05': Operation not permitted

ACL

ACL(Access Control list)
红帽8文件时默认开启ACL的,如果文件显示“+”表示该目录已经拥有了ACL权限,它高云chmod的普通权限

getfacl 查看文件完整的ACL信息

ACL权限优先级:
    文件拥有者 > ACL指定的用户 > ACL指定的组 > 其他人



setfacl 设置ACL权限
    -m 设置ACL
        给指定用户设置ACL u:[用户名]:rwx,如果不写用户名,则默认会给文件拥有人添加权限
        给指定组设置ACL u:[用户名]:rwx,如果不写用户名,则默认会给文件拥有组添加权限
        给其他用户设置ACL o:[用户名]:rwx
        设置mask值   mask值控制权限范围,指定用户不能超过mask的权限范围,如果超过了则以mask值的最大权限为准,如果设置mask值,那么ls -l 查看文件,组权限显示就会被替换为mask值显示,使用chmod修改的也将是mask的值,如果需要修改组的权限需要使用 setfacl命令
    -x 删除指定用户和组的ACL权限
    -R 递归修改ACL权限
    -b 清空所有ACL权限
            列1: userlist文件设置mask值为rx,使用chmod命令修改组的值,再去查看发现时修改mask的值
                [root@abc ~]# getfacl userlist 
                # file: userlist
                # owner: root
                # group: root
                user::rw-
                group::r--
                mask::r-x
                other::r--
                [root@abc ~]# chmod g+rwx userlist 
                [root@abc ~]# getfacl userlist 
                # file: userlist
                # owner: root
                # group: root
                user::rw-
                group::r--
                mask::rwx
                other::r--


            列2:使用setfacl修改userlist文件的mask值为rx,在给指定用户user09分配rwx权限
                [root@abc ~]# getfacl userlist 
                # file: userlist
                # owner: root
                # group: root
                user::rwx
                user:user09:rwx            #effective:r-x
                group::r--
                mask::r-x
                other::rwx


            列3:user09是it组的成员,创建it目录,设置拥有组为root拥有用户为root,要求user09可以在it目录创建和删除,it组其他成员只能进入该目录及其子目录,且不能查看该目录的内容
            [root@abc data]# ll
            total 0
            drwxr-x---. 5 root root 48 Sep 11 04:12 it            
            [root@abc data]# getfacl  it/
            # file: it/
            # owner: root
            # group: it
            user::rwx
            group::r-x
            other::r-x
            [root@abc data]# setfacl -m u:user09:rwx it
            [root@abc data]# setfacl -m g:it:x it
            [root@abc data]# getfacl it/
            # file: it/
            # owner: root
            # group: root
            user::rwx
            user:user09:rwx
            group::r-x
            group:it:--x
            mask::rwx
            other::---

设置默认ACL权限,默认ACL权限是为了确保在目录中创建的文件和目录继承的特地的ACL权限,如果是文件继承最大只能继承rw,设置了默认的ACL不会对目录本身的权限进行修改,不能在文件中使用,需要在目录中使用,
    在常规的设置权限前加“d”,比如设置ACL用户默认权限 d:u:[用户名]:rx 
    -x 删除默人ACL
    -k 清除默认权限

sudo命令

sudo 提权命令,给予非管理员用户使用root用户的权限,以root的身份来运行
visudo 打开 sudo 配置文件,目录在 /etc/sudoers
配置文件格式
    用户    需要在哪执行主机(hosts文件)=(以设定身份/用户执行)