摘要:2.14 文件和目录权限chmod
2.15 更改所有者和所属组chown
2.16 umask
2.17 隐藏权限lsattr/chattr
一 文件和目录权限chmod
1.文件权限
1)-rwxr--r--:第一个字符表示文件类型,其余字符代表文件权限,
2)权限位第一段:所有者权限[rwx],[可读(r)、可写(w)、可执行(x)、不可读/不可写/不可执行(-)];
第二段:所属组权限[r--]
第三段:其他用户对此文件的权限[r--]
3)文件权限可以使用数字表示:r=4 w=2 x=1,三个权限用三个数字相加,如rwx=7 rw-=6 --x=1 rw-r--r--=644 rw-r-xr-x=655
2.更改文件和目录权限
1)chmod: change mode 更改权限,针对目录使用时,只对当前目录有效,子目录/子文件无效
2)用法# chmod 【权限】 【文件名/目录】
更改权限前:
更改权限后:
3)在文件权限后面有时候会有一个点【.】:表示此文件受制于selinux,当selinux开启时,它的文件权限位后面会有一个点,selinux有三种状态(「disabled」「permissive」「enforcing」);
4)chmod -R:更改目录权限时,对子目录、子文件权限也有效;
更改权限前目录和子目录的权限如下:
更改权限后目录和子目录的权限如下:
3.更改权限另一种写法
1)# chmod u=rwx,g=r,o=r aming2:其中u表示user,g表示group ,o=表示other;
2)chmod a+x aming2:其中a表示所有权限,a+x表示给文件或目录的三段权限都加上可执行(x)权限;
3)chmod a-x aming2:表示给文件aming2所有x权限都被取消;
4)另外还有的写法如:u-x u+x g-x g+x
二 更改所有者和所属组
1.chown
change owner更改所有者
2.查看系统用户
# cat /etc/passwd
3.更改所有者
# chown 【用户名】 【文件名/目录】,含义为更改【文件名/目录】的所有者为【用户名】
4.更改所属组
1)# chown 【所有者用户名】:【所属组用户名】 【文件名/目录】:同时更改所有者和所属组
2)#chown :【用户名】 【文件名/目录】:更改【文件名/目录】的所属组为【用户名】
3)# chgrp【用户名】 【文件名/目录】:change group更改所属组
4)# chown -R :-R 选项表示更改目录的所有者或所属组时,目录下的子目录和子文件也会被更改所有者和所属组
总结:chown -R username:group filename
三 umask
1.root用户系统umask值
0022
2.# umask 【值】
更改系统umask值
3.更改umask值后,新创建文件或目录权限
更改前系统umask值为0022,新创建文件或目录的权限如下
更改umask为002后,新创建文件或目录的权限如下:
umask 值为022时,新创建的文件权限为644、新创建的目录权限为755
umask 值为002时,新创建的文件权限为664、新创建的目录权限为775
权限规律:
1、目录必须有x权限
2、新创建目录权限计算公式(以umask=003为例):rwxrwxrwx - -------wx = rwxrwxr--(774)
3、新创建文件权限计算公式(以umask=003为例):rw-rw-rw- - -------wx = rw-rw-r--(664)
四 隐藏权限
1.# chattr +【权限名】 【文件名/目录】
: change file attributes on a Linux file system设置隐藏权限,用的少
2 # chattr +i filename
给filename 这个文件增加隐藏的i权限,有了这个权限,文件将不能写、不能改/移动文件名、不能删除文件,touch命令更改时间也无效,且使用ls -l命令查看其权限时并不能显示这个隐藏的权限,只能使用lsattr filename这个命令才能查看隐藏权限
文件名后带~符号:是使用vi命令时,会生成一个被编辑的副本文件,只有当保存退出时才会覆盖原来的文件,如果文件带有隐藏权限使文件不能被vi编辑,则这个带有~符号的文件副本就会被遗留下来
3 # chattr -i filename
去掉i权限
4.# chattr +a filename
+a表示只能追加内容到文件末尾,不能改名字、不能删除、不能移动、可以touch更改时间。如日志文件就有这个隐藏权限
-a表示去掉这个a权限
5.lsattr
lsattr dirname:查看的是目录下子文件/子目录的隐藏权限
lsattr -d dirname:查看的是目录本身的隐藏权限
给目录加隐藏权限跟给文件加隐藏权限的效果是一样的,权限赋予的是目录本身,跟已经存在的子目录或子文件关系不大,当给目录加i 或a权限时,其子文件是可以编辑操作文件内容的;+i时是可以给目录touch文件的
lsattr dirname:只能查看一层的文件/目录隐藏权限;
lsattr -R dirname:可以查看到多层的文件/目录的隐藏权限
lsattr -a /root/:可以查看到隐藏的文件