07-Linux文件权限管理
文件的类型
Linux的哲学思想:一切皆文件。
Linux的文件分为多种类型。
可以通过ll命令查看文件的类型:
ll
#输出:
-rw-------. 1 root root 1266 2月 29 11:42 anaconda-ks.cfg
#解释:
第一个字段中的第一个字符表示文件的类型:这里为-,表示这是普通文件。
Linux常见的文件类型:
- #普通文件(如.txt文件)
d #目录
c #字符文件(比如键盘)
b #block文件(比如硬盘)
l #软链接(类似于Windows快捷方式)
权限分类
基本文件权限分为几种:
- r表示读权限,用4表示。
- w表示写权限,用2表示。
- x表示执行权限,用1表示。
若文件为普通文件:
- r表示可以读取文件内容。
- w表示可以修改文件内容。
- x表示可以执行这个文件,比如二进制文件、脚本文件。
若文件为目录:
- r表示可以用ls查看目录
- w可以在目录里操作文件(如创建,删除和移动文件)
- x表示可以用cd进入目录
可以通过ll命令查看文件的权限:
ll
#输出:
-rwxrw-r--. 1 root root 1266 2月 29 11:42 anaconda-ks.cfg
解释:
文件类型后面的字符rwxrw-r–表示文件权限,分为属主、属组和其他用户的权限。
比如这里rwxrw-r–表示:属主的权限为rwx,属组的权限为rw-,其他用户的权限为r–。
文件有所属主和所属组。即这个文件属于哪个用户,属于哪个组。
举例:
- 文件的主人操作此文件,权限为rwx。
- 文件的所属组操作此文件,权限rw-。
- 其他用户的权限为r–。
权限管理
chmod命令
此命令用于改变文件的权限
#增加文件权限
chmod +x 123.txt #给这个文件添加执行权限(给所属主、所属组和其他用户都添加了x权限)
chmod u+x 123.txt #给这个文件的所属主添加x权限。
chmod g+x 123.txt #给这个文件的所属组添加x权限。
chmod o+x 123.txt #给这个文件的其他用户添加x权限。
#去除文件权限的命令类似
chmod o-x 123.txt #去除这个文件的其他用户的x权限。
- 利用数字来修改文件权限
r用4表示。w用2表示。x用1表示。那么,这些数字就能唯一确定文件的权限。
比如:0表示无任何权限。
比如:1表示只有x权限。
比如:2表示只有w权限。
比如:3表示有w和x权限(2+1=3)。
比如:4表示只有r权限。
比如:5表示有r和x权限(4+1=5)。
比如:6表示有r和w权限(4+2=6)。
比如:7表示有r、w和x权限(4+2+1=7)。
chmod 644 hello.txt #将文件的权限修改为rw-r--r--。
chown
用来改变文件的所属主和所属组
- 可以使用
ll
命令查看文件的所属主和所属组:
ll
输出:
-rwxrwx--- 1 root root 27 3月 7 14:25 123 #这个文件的所属主和所属组分别是root和root。
- 使用chown命令改变文件的所属主和所属组:
chown user1:user1 123 #将文件的所属主和所属组都改为user1
chown :root 123 #将文件的所属组改为user1
注意:如果文件是目录,要使用
-R
参数递归修改。
facl
chmod命令按照文件的所属主、所属组和其他用户来管理文件权限。
facl可以不仅可以做到按照文件的所属主、所属组和其他用户来管理文件权限,还能按照根据某个用户来管理。
- getfacl:用于查看文件的权限
getfacl 123.txt
#输出
# file: 123.txt #文件名
# owner: user1 #所属主
# group: root #所属组
user::rwx #所属主的权限
group::rw- #所属组的权限
other::r-- #其他用户的权限
- setfacl:用于修改文件的权限
setfacl -m u:xiaoming:r-x,g::r--,o::--- 123.txt
#参数-m表示修改
# u:xiaoming:r-x 表示用户xiaoming的权限为r-x
# g::r-- 表示所属组的权限为r--
# o::--- 表示其他用户的权限为---