权限介绍
ls命令的结果显示,第一列就是文件的权限。如果不算最后的".",有十位。权限的含义如下图所示:
第一位:文件类型常见有以下几种,摘自Centos6.8的info ls命令中
`-' regular file 普通文件
`b' block special file 块设备文件,存储文件都是这种文件
`c' character special file 字符设备文件,输入设备一般是这种
`d' directory 目录文件
`l' symbolic link 软链接文件
`p' FIFO (named pipe) 管道符文件
`s' socket 套接字文件
第二~四位(第五~七位,第八~十位):rwx。表示读,写,执行三个权限。read,write,excute。
第十一位的"."表示该文件是否受SELinux安全保护。
GNU `ls' uses a `.' character to indicate a file with an SELinux security context, but no other alternate access method. (摘自info ls)
基本权限命令
chmod:修改文件的权限模式。
chmod [选项] 权限模式 文件名
选项: -R 递归设置权限
权限模式格式:[ugoa][[+-=][perms]]
- ugoa:user,group,other,all
- +-=:加入权限,减去权限,设置权限
- perms:包含rwx,表示读,写,执行三个权限。
例如:给a文件的所有者和其他人赋予写权限。
chmod g+w,o+w a
数字权限:数字权限的赋予方式比较简单
- r:4
- w:2
- x:1
例如:给a文件赋予755权限,表示自己拥有rwx权限,所属组和其他人拥有rx权限
chmod 755 a
常见数字权限:
- 644:所有者拥有读、写权限,所属组、其他人拥有只读权限。
- 755:所有者拥有所有的权限,所属组、其他人拥有读、执行权限。
- 777:最大权限,慎用!
chown和chgrp
chown 修改文件和目录的所有者和用户组
chown [选项] 所有者:所属组 文件或目录
选项: -R 递归设置权限
普通用户不能修改文件的所有者,哪怕自己是文件的所有者也不行,超级用户才可以。
普通用户可以修改所有者是自己文件的权限。
chgrp修改文件和目录的所属组的命令
权限需要注意的
对文件有写权限,是不能删除文件本身的,只能修改文件中的数据,如果像删除文件,则需要对文件的上级目录拥有写权限。
目录的执行(x)权限代表可以进入该目录。
对文件来说,执行(x)权限是最高权限。
对目录来说,写(w)权限是最高权限。
umask默认权限
系统通过umask来保证新建文件和目录拥有默认权限。
查看系统的umask权限:
[root@192 opt]# umask
0022 #用八进制数值显示umask权限
[root@192 opt]# umask -S
u=rwx,g=rx,o=rx #用字母表示文件和目录的初始权限
umask权限的计算方法:
- 对文件来说,新建文件的默认最大权限是666,没有执行(x)权限
- 对目录来说,新建目录的默认最大权限是777
- 文件的默认权限最大只能是666,umask的值是022,"-rw-rw-rw-"减去"-----w--w-"等于"-rwxr--r--"
- 目录的默认权限最大可以是777,umask的值是022,"drwxrwxrwx"减去"-d---w--w-"等于"drwxr-xr-x"
永久修改umask权限:在/etc/profile文件修改,建议不要修改。