在linux系统下,一切皆为文件。
我们先执行一下ls -l
命令
1 2 3 [root@centos7g home] total 0 drwx------ 4 qiantang sonargroup 214 Jun 18 18:36 sonar
最左边的drwx------
就代表 sonar
的权限。
那么这些权限都代表什么意思呢? 第一位代表文件类型
1 2 3 d:是英语directory的缩写,表示“目录”。就是说这是一个目录。 l:是英语link 的缩写,表示“链接”。就是说这是一个链接。 -:代表普通文件。
剩余还有9位,分为三组,依次代表文件所有者的权限、群组用户的权限、其他用户的权限。 每组又分为3位。
1 2 3 r:是英语read 的缩写,表示“读”。就是说可以读这个文件。 w:是英语write 的缩写,表示“写”。就是说可以写这个文件,也就是可以修改。 x:是英语execute 的缩写,表示“执行,运行”。就是说可以运行这个文件。
举个栗子:
1 -rwxr-xr-x sonar sonargroup a .txt
还是分成4部分:
1 2 3 4 -: 代表a.txt是一个普通文件 rwx: 代表文件所有者(sonar用户)对文件有读、写、执行权限。 r-x: 代表文件所在组(sonargroup组)中的用户有读、执行权限。 r-x: 代表其他用户有读、执行权限。
那么文件的权限是如何设置的呢? chmod命令 使用命令chmod
来设置文件权限。(具体可以使用chmod --help
来查看使用方法)
1 2 ls -l -rwxrw-r-x sonar sonargroup a.txt
a.txt的权限已经被改变了。
其实Linux系统对每种权限分配了对应的数字。
所以chmod 744 a.txt
代表了赋予了(4+2+1)(4+2)(4+1)
权限,即(rwx)(wx-)(r-x)
。
另外,还可以直接用字母来设置权限。
需要用到的参数:
1 2 3 4 u:user 的缩写,是英语“用户”的意思。表示所有者。 g:group 的缩写,是英语“群组”的意思。表示群组用户。 o:other的缩写,是英语“其他”的意思。表示其他用户。 a:all 的缩写,是英语“所有”的意思。表示所有用户。
1 2 3 +:加号,表示添加权限。 -:减号,表示去除权限。 =:等号,表示分配权限(会覆盖原有的权限)。
使用例子:
1 2 3 4 5 6 7 8 9 10 chmod =- a.txtchmod u+rwx a.txtchmod g+rx a.txtchmod o=r a.txtchmod u+rwx,g+rw,o=r a.txt
文件的所有者和群组是如何改变的呢? chown 命令 使用chown
命令来改变文件的所有者和群组。(使用chown --help
查看具体使用方法)
1 Usage : chown [OPTION ]... [OWNER ][:[GROUP ]] FILE ...
Examples:
1 2 3 chown root /u Change the owner of /u to "root" .chown root:staff /u Likewise, but also change its group to "staff" .chown -hR root /u Change the owner of /u and subfiles to "root" .
chgrp命令 chgrp命令用于改变文件的群组。