在Linux系统中,权限是用来控制用户对文件和目录的访问权限的一种机制。每个文件或目录都有相应的权限设置,用来确定哪些用户可以对文件进行何种操作。Linux中的权限分为三种类型:读(Read)、写(Write)和执行(Execute)。
一般为文件的创建者,谁创建了该文件,就自然的成为该文件的所有者。
通常情况下,文件与其所有者在同一个组中。
1) [r]代表可读(read): 可以读取.查看
2)[w]代表可写(write): 可以修改,但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件
3) [x]代表可执行(execute):可以被执行
1) [r]代表可读(read): 可以读取,ls 查看目录内容
2) [w]代表可写(write): 可以修改,对目录内创建+删除+重命名目录
3) [x]代表可执行(execute):可以进入该目录
查看详细信息
ls -l
解析
文件类型和权限:这一列显示了文件的类型和权限信息。文件类型可能是普通文件、目录、符号链接等。
第一个字符表示的是文件类型,可能的值为:
-
:普通文件d
:目录l
:符号链接b
:块设备文件c
:字符设备文件s
:套接字文件p
:命令管道文件s
:套接字文件其余的字符分为三组,每组三个字符,分别代表文件所有者的权限、组内其他用户的权限和其他用户的权限。每组字符的含义如下:
r
:可读权限(4)w
:可写权限(2)x
:可执行权限(1)-
:无权限(0)链接数:这一列显示了文件的硬链接数。对于目录,这一列显示了目录下的子目录数。如果是普通文件,这一列显示为-
。
所有者:这一列显示了文件的所有者用户名。
组:这一列显示了文件所属的用户组名称。
大小:这一列显示了文件的大小,以字节为单位。对于目录,这一列显示为-
,因为目录的大小表示其包含的文件和子目录的总大小。
时间戳:这一列显示了文件的最后修改时间或最后访问时间。具体显示的日期和时间取决于系统的配置和语言环境。
文件名:这一列显示了文件的名称。
chmod可以修改文件或者目录的权限
字符形式:使用三个字母来表示权限,其中u
表示文件所有者,g
表示与文件所有者属于同一组的其他用户,o
表示其他用户。权限字符可以是r
(读取)、w
(写入)和x
(执行)。
通过 + 、-、= 变更权限
示例:
chmod u+x [文件/目录] 给 文件/目录的 u(所有者) 添加 x(执行) 权限
chmod u-x [文件/目录] 给 文件/目录的 u(所有者) 减少 x(执行) 权限
数字形式:通过数字变更权限 r = 4, w = 2, x = 1
示例:
chmod u=rwx,=rx,o=x 文件/目录名
相当于 chmod 751 文件/目录名
rwx=4+2+1=7, rx=4+1, x=1
选项用于指定不同的操作方式
-R
:递归处理,将目录下的所有文件和子目录的所有权都修改为指定的用户和组。
-f
:不显示错误信息。
-v
:显示详细的处理信息。
选项
-R
:递归处理,将目录下的所有文件和子目录的组都修改为指定的组。
-f
:不显示错误信息。
-v
:显示详细的处理信息。
示例:
chgrp -R new_group directory/
将directory及其子目录的文件所在组设置为new_group