zoukankan      html  css  js  c++  java
  • 文件权限之facl丶文件属性丶特殊权限

    (1)facl:文件的访问控制列表

    作用:对象目录或文件可以对不同的用户设定不同的权限

    1)getfacl:查看文件或目录的访问控制列表权限

    查看

    getfacl file/dir 
    acl权限特征:如果一个文件或目录有acl权限,那么ll -d file/dir1有一个+号
    drwxrwxr-x+ 2 root root 6 May  5 16:09 dir1
    

    2)setfacl:设置和取消facl权限

    选项

    	-m:添加acl权限
    	-x:取消acl权限
    	-b:删除所有的acl权限
    

    添加acl权限

    setfacl -m u:tom:rw file1			//设置用户tom对file1文件具有rw权限
    setfacl -m u:jack:- file1			//设置用户jack对file1文件没有任何权限
    setfacl -m o::rw file1				//设置其他用户对file1文件具有rw权限
    

    删除acl权限

    setfacl -x g:hr file1				//删除组hr的acl权限
    setfacl -b file1 					//删除所有的acl权限,一切回到初始
    

    (2)facl高级特性:mask

    mask作用:用于临时降低用户或用户组(除了属主和other用户)的权限,mask决定了他们的最高权限
    建议:为了方便管理文件权限,其它人的权限建议置为空,如果把mask权限设置为-,那么这些用户会受到other权限的影响

    setfacl -m u:tom:rwx /opt/file1
    setfacl -m mask::r /opt/file1			//设置mask权限为r,那么这里的tom用户对这个文件只有读权限
    setfacl -m mask::- /opt/file1			//设置mask权限为无,那么tom用户对这个文件会使用other用户权限
    

    使用setfacl设置权限都会使用mask权限失效

    (3)facl高级特性:defeult

    希望tom用户能够对/opt/dir1以及以后在/opt/dir1下新建的文件或目录有读写执行权限

    步骤一:setfacl -m u:tom:rwx /opt/dir1					//tom用户对/opt/dir1目录具有rwx权限
    步骤二:setfacl -m default:u:tom:rwx /opt/dir1	 //以后在/opt/dir1目录下新建的目录,tom用户会继承该权限,注意是以后,必须要执行两步
    

    取消:setfacl -x default:u:tom /opt/dir1

    (3)特殊权限:suid ,这个权限针对二进制文件

    作用:命令或二进制文件如果有suid权限,普通用户可以使用root身份运行该进程
    一定要记住进程对文件的操作,要验证进程的运行者对文件是否有相应的权限
    添加:chmod u+s /usr/bin/cat

    [tom@master dir1]$ cat /root/file1				//普通用户查看这个文件,主要是运行cat命令的属主对/root目录(other用户)没有r和x权限
    cat: /root/file1: Permission denied
    [root@master ~]# chmod u+s /usr/bin/cat			//给cat命令赋予suid权限,以root身份运行该命令,验证文件那么就看root身份对应的权限
    [root@master ~]# ll /usr/bin/cat
    -rwsr-xr-x. 1 root root 54080 Nov  5  2016 /usr/bin/cat		//属主权限位上有s标志
    [tom@master dir1]$ cat /root/file1
    

    (4)特殊权限:sgid,这个权限针对目录

    作用:用户新建文件(或目录)继承上一级目录的用户组
    添加:chmod g+s /opt/dir

    [root@master ~]# mkdir /opt/dir					//创建一个目录
    [root@master ~]# chown .hr /opt/dir				//修改目录的用户组为hr
    [root@master ~]# ll -d /opt/dir				
    drwxr-xr-x 2 root hr 6 May  5 21:33 /opt/dir
    [root@master ~]# chmod g+s /opt/dir				//赋予这个目录权限sgid
    [root@master ~]# ll -d /opt/dir					//这个目录的用户组权限位置上有s标志
    drwxrwsr-x+ 2 root hr 19 May  5 21:34 /opt/dir
    [root@master ~]# setfacl -m u:tom:rwx /opt/dir	//设置这个目录给tom用户rwx权限
    [tom@master dir1]$ touch /opt/dir/file1			//tom用户在这个目录下创建这个文件
    [tom@master dir1]$ ll /opt/dir/file1 			//新创建的文件继承了上一级目录的用户组
    -rw-rw-r-- 1 tom hr 0 May  5 21:34 /opt/dir/file1
    

    (5)特殊权限:stick位,这个权限针对目录

    作用:用户只能删除和修改用户自己创建的文件或目录,典型的是/tmp目录和/var/tmp目录
    tmp目录特点:谁都有写权限,因此安全成问题,常常是木马第一手跳板地点;
    设置:chmod o+t /opt/dir1

    [root@master ~]# mkdir /opt/dir1
    [root@master ~]# setfacl -m o::rwx /opt/dir1	//给这个目录设置acl权限,让普通用户可以在这个目录下创建和删除文件
    [root@master ~]# chmod o+t /opt/dir1			//目录设置stick权限,
    [root@master ~]# ll -d  /opt/dir1				//目录other权限位置上有一个t标志位
    drwxr-xrwt 2 root root 32 May  5 21:43 /opt/dir1
    [tom@master dir1]$ touch /opt/dir1/file1		//tom用户在这个目录下创建一个文件
    [jack@master ~]$ touch /opt/dir1/file2			//jack用户在这个目录下创建一个文件
    [tom@master dir1]$ rm -rf /opt/dir1/file2		//用户不能删除不是用户自己创建的文件
    rm: cannot remove ‘/opt/dir1/file2’: Operation not permitted
    

    (6)特殊权限总结

    设置特殊权限

    字符方式
    chmod u+s /usr/bin/cat  
    chmod g+s dir 
    chmod o+t dir 
    数字方式
    chmod 4777 file 
    chmod 2777 dir 
    chmod 1777 dir 
    

    哪些用户可以删除权限

    root 
    文件的属主
    上一级目录的属主
    

    sudo和suid区别

    sudo :可以针对不同的用户不同的命令授权
    suid :一个二进制如果有suid权限,那么所有用户都会以root身份运行这个命令
    

    (7)文件属性:属性凌驾于权限之上,例如windows上面的属性

    • 文件属性:针对所有用户,包括root
    • 操作符
    +			//添加某个权限
    -			//删除某个权限
    =			//取消其他所有权限赋予给指定的权限
    
    • lsattr:查看文件属性
    • chattr:设置文件属性
    	a:文件内容只能追加和查看,其它操作都拒绝
    	i:文件只能被查看,其它操作都会被拒绝
    chattr 	+a	file1
    chattr 	+i	file1
    
    • 例子
    [root@master ~]# chattr +a file1			//给a属性,修改文件只能追加内容方式,其它操作都不被允许
    [root@master ~]# cat file1
    [root@master ~]# echo 123 >file1
    -bash: file1: Operation not permitted
    [root@master ~]# echo 123>>file1			//追加方式被允许
    [root@master ~]# chattr +i file1			//给i属性,任何形式的修改都不被允许
    [root@master ~]# rm -rf file1
    rm: cannot remove ‘file1’: Operation not permitted
    [root@master ~]# echo 123>>file1
    -bash: file1: Permission denied
    

    (8)umask

    作用:新建文件和目录的默认权限会受到这个umask值的影响,umask表示要减掉的权限;文件权限=666-umask值,目录权限=777-umask值

    umask			//查看当前用户的umask权限
    umask	022 	//设定umask值
    

    注意:每一个进程都可以自己设定的umask值,有些是进程自己设定的,有些使用的是shell默认的umask值

    例:这里创建用户创建用户家目录使用的umask值是077 
    [root@master ~]# grep -i  umask /etc/login.defs 
    UMASK           077
    
    例:vsftpd程序使用的umask
    [root@master ~]# grep -i umask /etc/vsftpd/vsftpd.conf 
    # Default umask for local users is 077. You may wish to change this to 022,
    local_umask=022
    
  • 相关阅读:
    67. Add Binary
    66. Plus One
    64. Minimum Path Sum
    63. Unique Paths II
    How to skip all the wizard pages and go directly to the installation process?
    Inno Setup打包之先卸载再安装
    How to change the header background color of a QTableView
    Openstack object list 一次最多有一万个 object
    Openstack 的 Log 在 /var/log/syslog 里 【Ubuntu】
    Git 分支
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/8998886.html
Copyright © 2011-2022 走看看