[root@localhost ~]# ll
drwxr-xr-x. 2 root root 6 Jul 11 08:38 Desktop
权限位如果不计算最后的.(这个点表示该文件收SELinux保护),那么就只有10位
Linux不像Windows使用后缀名来标识文件类型,而是使用权限位的第一位表示文件类型,详细文件名可以使用info ls
来查看
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
如果有字母,则代表拥有对应的权限;如果是“-”,则代表没有对应的权限
修改权限信息的命令,其基本信息如下:
[root@localhost~]# chmod [选项] 权限模式 文件名
选项:
-R: 递归设置权限,也就是给予目录中的所有文件设定权限
普通用户可以修改所有者是自己的文件的权限
普通用户不能修改文件的所有者,哪怕文件是属于自己的。只有root才能修改文件所有者。
权限模式
chmod 命令的权限模式的格式是[ugoa] [[±=] [perms]],也就是[用户身份] [[赋予方式] [权限]]的格式,我们来解释一下。
用户身份:
赋予方式:
权限:
数字权限:
数字权限的赋予方式是最简单的,但是不如之前的字母权限好记、直观。
常用权限:
数字权限的赋予方式更加简单,但是需要用户对这几个数字更加熟悉。其实常用权限也并不多,只有如下几个:
首先,读,写,执行权限对文件和目录的作用是不同的
执行权限对于目录来说是必需的,所以目录的权限只有0、5、7三种
chown可以修改文件和目录的所有者和所属组,其基本信息如下:
[root@local~]# chown [选项] 所有者:所属组 文件或目录
选项
-R: 递归设置权限,也就是给子目录中的所有文件设置权限
普通用户可以修改所有者是自己的文件的权限。
但是普通用户不能修改文件的所有者,哪怕自己是这个文件的所有者也不行。
chgrp是修改文件和目录的所属组的命令,其基本信息如下:
[root@local~]# chgrp user file
#将文件file的所属组改为user
默认八进制显示; -S 用字母表示;
先了解一下新建文件和目录的默认最大权限。
对文件来讲,新建文件的默认最大权限是666,没有执行权限。这是因为执行权限对文件来讲比较危险,不能在新建文件的时候默认赋予,而必须通过用户手工赋予。
对目录来讲,新建目录的默认最大权限是777。这是因为对目录而言,执行权限仅仅代表进入目录,所以即使建立新文件时直接默认赋予,也没有什么危险
按照官方的标准算法,umask默认权限需要使用二进制进行逻辑与和逻辑非联合运算才可以得到正确的新建文件和目录的默认权限。这种方法既不好计算,也不好理解
这里还是按照权限字母来讲解umask权限的计算方法。超级用户的umask值为002,我们就按照普通用户默认的umask值是022来分别计算一下新建文件和目录的默认权限吧:
-rw-rw-rw- 减去 -----w–w- 等于-rw-r–r–
drwxrwxrwx 减去 d----w–w- 等于 drwx-r-xr-x
注意:umask默认权限的计算绝不是数字直接相减。
例如umask是033呢?
文件的默认权限最大只能是666,而umask的值是033
如果直接数字加减,那么权限是633,而3不可能出现在权限数字里
-rw-rw-rw-减去-----wx-wx等于-rw-r–r—