您的位置:首页 > 运维架构 > Linux

文件和目录权限管理

2018-08-15 20:59 387 查看
1、文件、目录的权限和归属
权限:r可读4、w可写2、x可执行1、-无权限0
归属:属主、属组(新创建的文件和目录的属主是当前用户,属组是当前用户的基本组)
1)查看文件和目录的权限
ls –l /etc/passwddrwxr-xr-x 1 root root 12288 05-12 04:03 /etc第1字符表示文件类型,-普通文件、d目录、l链接文件、b块设备文件、c字符设备文件第2-4字符表示文件的属主对该文件的权限第5-7字符表示文件的属组内的用户对该文件的权限第8-10字符表示其他用户对该文件的权限注:第二列的含义,如果是文件则表示文件的硬链接数,如果是目录则表示包含的子目录数(默认.和..)2)设置文件和目录的权限
语法:①chmod [ugoa] [+-=] [rwx] 文件或目录②chmod nnn 文件或目录 (简便易用)u 代表属主;g 代表属组;o 代表其他任何用户;a 代表所有用户(省略时也代表所有用户)+ 表示添加权限;- 表示删除权限;= 表示仅设置对应的权限r表示可读;w表示可写;x表示可执行;- 表示相应的权限没有被授予rwx也可以用数字来代替:r 4;w 2;x 1;- 0-R选项表示递归修改目录中所有子目录和文件的权限注:①root是超级管理员,所有权限设置对root无效 ②也可通过字母方式同时设置多个权限,如chmod u=rw,g=w,o=x install.log ③rwx是文件/目录权限的基本ACL规则3)设置文件和目录的归属
语法:chown 属主[:属组] 文件或目录-R选项表示递归修改目录中所有子目录和文件的归属注:①只有root用户才能使用chown命令②同时修改属主、属组时中间用冒号分隔,即使只设置属组,也要保留冒号③chown可同时修改属主和属组,而chgrp只能修改属组,所以一般都使用chown④默认只有root能修改属主和属组,其他任何用户都没权限,除非执行chmod u+s /bin/chown⑤即使文件的所有者对文件没有写权限,也可以写入文件,保存时使用!强制保存即可 注:①用户宿主目录的所有者是其对应的用户,权限是700,即其他用户没有任何权限 ②当为目录设置某用户具有可执行权限,但没有读取权限时,用户必须直接访问目录下的子目录或文件才行,用户不能使用ls命令浏览目录中的内容2、umask权限掩码
新建目录默认权限:root用户新建目录的权限是755,普通用户新建目录的权限是775
新建文件默认权限:root用户新建文件的权限是644,普通用户新建文件的权限是664
1)概念
权限掩码用于设置用户新创建的文件或目录的默认权限权限掩码由三位数字组成,用默认满权限减去权限掩码,就是创建文件或目录时的默认权限注:默认满权限,即Linux内核级别新建目录或文件时的默认权限,分别为777(目录)和666(文件)2)设置
语法:umask 权限掩码#umask --直接执行umask可查看当前用户权限掩码#umask 0077 --设置root的umask为0077,使创建的文件或目录只对root有权限(700、600)注:①默认root用户的umask值为022,普通用户的umask值为002 ②将默认满权限减去权限掩码,得出root新建的目录权限应为755,新建的文件权限为644 ③直接使用umask命令修改只是临时生效,重启后失效,可将命令写入~/.bashrc文件中永久生效 ④使用umask命令显示权限掩码时为4位,千位的0表示SUID、SGID、Sticky属性3、附加权限
1)SET位权限(SUID、SGID)
执行文件被设置了SUID、SGID权限后,任何用户在执行时都将获得文件属主、属组相对应的权限SUID表示对属主用户增加SET位权限;SGID表示对属组内用户增加SET位权限语法:chmod u+s myfile | chmod g+s myfileSUID对应数字为4;GUID对应数字为2,其也可通过数字形式表示4775,2775,6775设置SET位权限后对应位置的x将变为s例: ls -l /usr/bin/passwd 查看权限/etc/passwd文件,普通用户虽无法直接修改文件,但可通过passwd命令修改自己的密码2)粘滞位Sticky
用于对目录设置的附加权限,设置粘滞位后只有文件目录的所有者或root用户可以删除对应文件语法:chmod u+t myfile | chmod g+t myfile对应数字为1和0,1表示添加粘滞位;0表示移除粘滞位设置粘滞位后其他用户的x将变为t例:ls –ld /tmp 或 ls –ld /var/tmp注:①SET位权限只对可执行文件有效,为普通文件设置无效,设置后标记字符将变为大写字母“S”
②粘滞位只对目录有效,为普通文件设置无效,设置后标记字符将变为大写字母“T”4、ACL访问控制列表
1)概述
ACL是Linux文件系统的一种文件访问控制机制,可以设置特定用户或者组对于一个文件的操作权限
setfacl是用来设定文件的ACLgetfacl命令是用来读取文件的ACL2)开启ACL功能
#setfacl --version //查看setfacl版本#tune2fs -l /dev/sdb1 //查看文件系统是否支持acl权限控制#tune2fs -o acl /dev/sdb1 //开启acl功能,永久生效#mount -o remount,acl /dev/sdb1 //重新挂载,开启acl功能,临时生效#vi /etc/fstab //使分区永久支持acl功能 /dev/sdb1 /mnt/acltest ext4 defaults,acl 0 0注:①默认只有在安装系统时建立的分区才支持ACL功能,后建立的分区默认都不支持ACL功能 ②开启acl功能,既可以通过tune2fs命令,也可以通过修改/etc/fstab文件3)设置权限
语法:setfacl 选项 文件|目录
-m修改权限、-x删除指定权限、-b删除全部权限、-d设置默认权限、-k删除默认权限、-R递归操作
(1)配置用户权限
#setfacl -m u:tom:rw a.txt#setfacl -m u:tom:r,u:jack:rw a.txt#ls -l#getfacl a.txt注:①权限可以使用字母或数字,多条acl规则间以逗号相隔
②当为文件设置acl规则后,使用ls查看时文件权限后会出现+号,表示此文件被设置了acl规则
③当为文件设置acl规则后,使用getfacl来查看其权限,以此为准,不要再使用ls -l查看权限
(2)配置组权限
#setfacl -m g:manager:rw a.txt(3)配置默认权限DEFAULT ACL
默认权限是指对于一个目录进行Default ACL设置,并且在此目录下建立的文件都将继承此目录的ACL例:创建目录software,并希望在此目录下建立的文件都可以被tom读写#mkdir software# setfacl -d -m u:tom:rw ./software/或#setfacl -m d:u:tom:rw ./software/ ---此两种方式都可以设置默认ACL属性#getfacl ./software/ ---查看#touch ./software/b.txt#getfacl ./software/b.txt ---验证注:只能为目录指定default ACL属性,不能针对文件设置
(4)删除acl规则
#setfacl -x g:manager a.txt ----取消某项权限
#setfacl -k a.txt ----删除默认acl规则,如果没有默认规则,则不会提示#setfacl -b a.txt ----删除所有扩展的acl规则,基本的acl规则被保留#chacl -B ----彻底删除文件或者目录ACL属性(包括Default ACL),ls –l查看不再显示+号(5)配置有效权限(Effective permission),可用于限制最大权限
#setfacl -m m:r a.txt注:①设置有效权限后,以“#effective:”后的权限为准,但最大权限设置并不影响基本的acl规则
②设置有效权限后,通过ls看到的属组权限其实不再是属组的权限,而ACL的最大权限,所以要查看准备的权限应使用getfacl命令
注:①默认文件目录仅包含3个基本的acl规则(属主、属组、其他)
②用cp复制文件时候加上-p选项保留文件的ACL属性,mv命令将会默认地移动文件的ACL属性
③setfacl和chmod设置的权限可以相互覆盖
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 权限