chmod,chown ,umask , chattr,lsattr命令的简单介绍
chmod命令
查看文件信息,使用ls -l命令,执行后其结果如下:
如下图显示,文件类型由第一位表示;
文件或目录的权限由后面9个权限位组成,三位一组;2-4位表示文件或目录的所有者的权限,5-7位表示文件所属组对这个文件的权限,8-10位表示出去所有者和所属组外其他用户对它的权限。
权限表示顺序是是否可读、是否可写、是否可执行=rwx ,比如说没有写的权限,就表示为r-x 。 其中r=4 w=2 x=1 rwx=7 ,---=0, ---=0 , rwx-------=700 。
chmod命令=change mode 更改目录或者文件的权限。用法如下:
这样就更改了文件2.txt的权限。-rw-r-xr-x.这个字符串最后一个.表示这个目录或文件受制于SELinux。
chmod -R 加上-R选项时更改目录的权限时会将该目录下所有的子目录,子文件都更改权限。级联更改。
chmod命令还有一种格式
chmod u=rw,g=r,o=r filname。这条命令当中,u 表示所有者,g 表示所属组,o表示其他用户。 chmod a-x filname,其中a表示所有,这条命令的意思是,对于这个文件,所有者、所属组、其他用户都没有执行权限;chmod a+x filname_这条命令表示对于这个文件,所有者,所属组,其他用户都有执行权限。
chown命令= 更改文件或目录的所有者
chown命令格式为:chown [-R] 账户名 文件名 chown [-R] 帐户名:组名 文件名 (-R选项只适用于目录,作用是联级更改,不仅更改当前目录,连目录里面的目录或文件也一并更改了)
chgrp命令
chgrp命令=更改文件或目录的所属组
chgrp命令格式为:chgrp [组名] [文件名]
上图中,chgrp命令只更改了目录本身,而目录下的目录或文件并没有被更改,如果想级联更改子目录或文件,
需要加上-R选项,
umask命令
umask决定默认的文件和目录的权限,系统root用户的umask值默认是0022,通过umask值可以确定文件和目录的权限是什么;用法是umask xxx(3个X代表3个数字)
若用户建立普通文件,预设没有可执行权限,只有r、w两个权限,最大值为666(-rw-rw-rw-)
若用户建立目录,预设所有权限开放,即777(drwxrwxrwx)
所以,目录的权限默认为rwxrwxrwx - ----w---w-=rwxr-xr-x(755)
普通文件的权限默认为rw-rw-rw- - ----w---w-=rw-r--r--(644)
从上图实验中,我们得出umask不能用数字减,应该是九位权限位减,还有(rw-rw-rw) - (--- --- -wx)=结果是rw-rw-r--=664
umask可以在etc/bashrc配置文件中更改。
隐藏权限 chattr lsattr
命令chattr(change attrbute)表示更改属性,格式:chattr [+-=][Asaci][文件或者目录名],其中+、-和=分别表示增加、减少和设定。
A:增加该属性后,表示文件或目录的atime将不可修改。
s:增加该属性后,会将数据同步写入磁盘中。
a(常用):增加该属性后,表示只能追加不能删除,非root用户不能设定该属性。
c:增加该属性后,表示自动压缩该文件,读取时会自动解压。
i(常用):增加该属性后,表示文件不能删除,重命名,设定链接,写入以及新增数据。
lsattr 命令
该命令用于读取文件或目录的特殊权限,格式为:lsattr 参数 文件或目录 a:类似于ls -a 选项,连同隐藏的文件一同列出
-R:连同子目录的数据一同列出