Linux更改文件的权限

  • Post author:
  • Post category:linux


Linux下一切皆文件,对文件的权限管理是Linux安全的一个重要特性,那么修改文件的权限是一个必要的技能了。

一、

命令chown

(change owner)-更改文件的所有者

语法:chown 【-R】 账户名/账户名:组名 文件名

二、

命令chgrp

(change group )-更改文件属于的组别

创建分组的命令:groupadd 分组名

添加文件到分组:chgrp 组名 文件名 chgrp group_a file_a。

同样chgrp也可以更改目录的组别,用法和文件一样,不过目录的组别改了,区目

录下的文件组别并没有更改,如果想将目录及其目录下的文件同时更改组别,

在 chgrp后添加

-R

即可。

三、**命令chmod-**改变文件的权限

  1. Linux中的文件权限只要有r-可读、w-可写、x-可执行,将r记为4,w记为2,x记为1,-记为0。对一个用户的三种描述组合可能为rwxrwx—可以用770来表示,即4+2+1=7。chmod可以对文件、目录进行修改权限。

  2. 语法:chmod 【-R】 xyz 文件名,这里xyz是数字,每个字母代表三个数字的和,x代表文件所有人的权限,y代表所属组的权限,z代表其他人的权限。Linux系统下每一个目录的默认权限为755,而一个文件的默认权限是644。

    例如这里,将文件a设置不给其他人看,可以将文件的权限修改为740,所属人有全部的权限,所属组可读权限,其他人不可见。(注意a要是有后缀名的文件,要加后缀名)

    chmod 740 a
    
  3. 对所有者(u)、所属组(g)、其他人(o)可以分别进行修改权限。

    chmod u+x/u-x/a+r/a-w a
    

    其中加号就表示增加相应的权限,a表示all,即三个权限同时修改。

四、

命令umask

-改变默认权限

  • 创建文件的默认权限是644,目录是755。权限最大是777,创建普通文件没有可执行的权限,因此只有r、w权限,因此最大值为666,目录最大的权限为777。
  • 输入umask指令,可以查看umask的值为0022,第一位代表八进制,后三位为022,0表示对一个所有者的全部权限不进行更改,第二位的2表示对所有组的rwx的x(位置为2)进行舍去,那么所有组的权限值就为5了,同样其他人的权限上umask值也为2,因此也没有可写的权限,所以默认创建目录的权限值为755.那么文件的默认值就为644了。

五、

命令chattr

-文件的特殊属性

1、A:增加该属性之后对文件或者目录的atime不可以进行更改。

2、s:增加次数想将数据同步写入磁盘。

3、a:只有root用户可以设定这个属性,只能追加数据,不能删除。

4、c:自动压缩该文件,读取时自动的解压该文件。

5、i:文件不能进行删除、重命名、写入和新增数据。

chattr -i/+i/+a a

六、命令lsattr-读取文件或者目录的特殊属性

lsattr 【-aR】文件名

a表示连同隐藏文件一切列出,R表示连同子目录一起列出。

七、set uid、set gid、sticky bit

1、set uid秩针对二进制文件,表示在允许该文件是拥有该文件所有者的权限,同样set gid表示在执行阶段有该文件的所属组的权限。

2、stickt bit可以理解为防删除,文件是否可以删除主要取决于文件所在的目录该用户是否有写的权限。如果没有改文件的目录的写权限,那么就不可以删除该文件。需求:希望用户可以添加文件但是不能删除目录下其他用户的文件,可以对父目录设置此属性。

特殊权限的值分别为0、1(–t)、2(-s-)、3(-st)、4(s–)、5(s-t)、6(ss-)、7(sst)。



版权声明:本文为qq_43363657原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。