在linux系统中,文件权限是用于控制文件和目录的访问权限的重要机制。文件权限分为三类::用户(User)、组(Group)和其他(Others),每类权限又分为读(Read)、写(Write)和执行(Execute)三种权限。
文件权限可以用数字表示,也可以用字母表示
使用数字表示权限
权限可以用三位八进制数表示,每一位分别对应用户、组和其他的权限。每种权限对应的数值如下:
-
读(r):4
-
写(w):2
-
执行(x):1
eg:
-
755
表示rwxr-xr-x
-
644
表示rw-r--r--
chmod 755 filename # 设置文件权限为 rwxr-xr-x
chmod 644 filename # 设置文件权限为 rw-r--r--
使用字母表示权限
格式为 [ugoa][+-=][rwx]
:
-
u
:用户(文件所有者) -
g
:组 -
o
:其他 -
a
:所有(等同于ugo
) -
+
:添加权限 -
-
:移除权限 -
=
:设置权限
chmod u+x filename # 为用户添加执行权限
chmod go-w filename # 移除组和其他的写权限
chmod a=r filename # 设置所有用户只有读权限
修改文件所有者和所属组
除了修改权限,还可以修改文件的所有者和所属组:
-
chown
:修改文件所有者 -
chgrp
:修改文件所属组
chown newuser filename # 修改文件所有者为 newuser
chgrp newgroup filename # 修改文件所属组为 newgroup
查看文件权限
可以使用 ls -l
命令查看文件的详细信息,包括权限:
ls -l filename
输出示例:
-rw-r--r-- 1 user group 1234 Jan 1 12:34 filename
其中:
-
-rw-r--r--
表示文件权限 -
1
表示链接数 -
user
表示文件所有者 -
group
表示文件所属组 -
1234
表示文件大小 -
Jan 1 12:34
表示文件修改时间 -
filename
表示文件名