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
    
  • 相关阅读:
    .Net中DataGridview数据如何导出到excel表
    SQLSEVER 中的那些键和约束
    数据仓库中数据粒度
    详解三层架构图
    三层概念总结
    SQL Sever 2008配置工具中过程调用失败解决方法
    设计模式之中介者模式
    设计模式之访问者模式
    设计模式之代理模式
    设计模式之迭代器模式
  • 原文地址:https://www.cnblogs.com/lovelinux199075/p/8998886.html
Copyright © 2011-2022 走看看