文件权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件权限相关的知识,希望对你有一定的参考价值。

在Linux的世界里,一切皆文件,用文件代表了系统的所有数据。既然文件那么重要,自然会给文件赋予一定的权限,要不然每个人都可以乱来,那系统会十分危险。所以文件的所有者会给文件设定权限,每个用户在自己权限的范围下做各自的操作。

一、Linux文件权限

Linux一般将文件可存取的身份分为3类:owner/group/others(即所有者/所属组/其他),且有四种访问权限:可读(r)、可写(w)、可执行(x)和无权限(-)。所做的一切都是为了保障数据安全,维护隐私。

1、利用ls -l命令可以看到文件或目录的权限

-rwxrw-r--. 1 root root 914 Jul 29 08:21 test

- 10个字符确定不同用户能对文件干什么

- 第一个字符代表文件(-),目录(d),链接(l)

- 其余字符每3个一组(rwx),读(r),写(w),执行(x)

- 第一组rwx:文件所有者的权限是读、写和执行

- 第二组rw-:与文件所有者同一组的权限是读、写但不能执行

- 第三组r--:不与文件所有者,所属组的其他用户的权限是读、不能写和执行

也可用数字表示为:r=4,w=2,x=1  。

- 1 表示连接的文件数

- root 表示用户

- root表示用户所在的组

- 914 表示文件大小(字节)

- Jul 29 08:21 表示文件建立或这最近的修改时间,月-日-时-分

- test 表示文件名

二、修改权限

chmod (改变文件或目录的访问权限)

chmod  who  opt  per  file(只有所属人和root可以更改文件的权限)

有2种形式:

A.数字形式: 将rwx换算成数字,规则r=4, w=2, x=1,rwx=4+2+1=7; r-x=4+1=5;

chmod 755 abc:赋予abc权限rwxr-xr-x

B:  表达式的形式:【身份】【操作符】【权限】

【身份】取值:u(表示所有者);g(所属组);o(其他);a(表示所有的身份)

【操作符】取值:+ , - ,=;+:添加权限;-删除权限;=赋予权限

【权限】取值:r w x 3种权限的组合

chmod u-w,g+w,o=rwx  test

表示owner去掉w权限,group加上w权限,others权限设置为rwx;

注意:逗号前后不能有空格

chmod a+r test:给所有用户添加读的权限。

chown命令(改变文件的所有者或组)这个命令只有root能使用

格式:chown [选项] 用户或组 文件名

-R  文件: 递归,修改多级文件的子目录

:group或 .group  文件的owner也可以使用chown修改文件的所属组(owner必须属于目标组)如果属主为空,应该是“:属组”;如果属组为空,“:”可以不用带上。
命令中的冒号可用.替换

技术分享

chown xiaoxiao abc:改变abc的所有者为xiaoxiao

chown root ./abc:改变abc这个目录的所有者是root

chown ‐R root ./abc:改变abc这个目录及其下面所有的文件和目录的所有者是root

chown –R root:root rootfs                将rootfs文件夹及其子录的权限和组均改为root

chgrp命令(改变文件或目录所属的用户组)

chgrp(选项)组名 文件名

该命令用来改变指定文件所属的用户组。其中,组名可以是用户组的id,也可以是用户组的组名。文件名可以是由空格分开的要改变属组的文件列表,也可以是由通配符描述的文件集合。如果用户不是该文件的文件主或超级用户(root),则不能改变该文件的组。

-R  文件: 递归,修改多级文件的子目录,把指定文件或目录的所属群组全部设成和参考文件或目录的所属群组相同。

chgrp root abc:改变abc所属的组为root

三、目录权限

目录权限的修改和文件权限修改不同,权限代表的含义如下:

r:可列出目录中的内容

w:可在目录中创建、删除和修改文件

x:可以使用cd命令切换到此目录

rw:等于只有r

wx:能进入,能创建能删除,不能列出。故用户能否删除文件与文件自身权限无关。

rx:用户可以进入目录,且进行长列出,不能创建

rwx: 全部权限

-:没有任何此目录的访问权限

注意:目录可以使用通配符"*"来表示目录中的所有文件,如将/test目录中的所有文件的权限设置为任何人都可以读写。

四、指定文件的默认权限掩码-----umask

权限掩码有4个八进制的数字组成。一般来说,新建文件的默认值是666,新建目录的默认值是777,可以直接输入umask命令来检查目前的默认权限掩码,或输入"umask 权限掩码"来指定默认权限掩码。

新建文件默认权限: 666-umask   新建目录默认权限: 777-umask

当umask中全部是偶数时,可以直接减,当umask中包含奇数时,对于目录直接减,对于文
件,在奇数所在的位减完后加一。


以上是关于文件权限的主要内容,如果未能解决你的问题,请参考以下文章

文件系统权限管理

CentOS下如何修改文件执行权限

在Linux系统中,如何更改文件的访问权限

共享权限和ntfs 文件权限

Java中的文件权限,检查权限和更改权限 - Break易站

如何更改文件权限