Linux 中任何一个文件都具有 「用户、用户组与其他用户」三种权限,一个用户可属于多个用户组。所有用户的相关信息都记录在 /etc/passwd 文件中,密码记录在 /etc/shaodw 文件,用户组记录在 /etc/group 文件。root 用户权限最高,不算其他用户
文件属性
ls -al
drwxr-xr-x 2 zhoust staff 64 Apr 10 18:19 database
分为七个部分:
- 文件类型与权限
- 文件类型:普通文件(-)、目录文件(d)、链接文件(l)
- 权限:当前用户、同用户组的权限、其他用户权限,rwx 用数字表示就是 421
- 有多少文件名链接到此节点(inode)
- 拥有该文件的用户名
- 该文件所属用户组
- 文件大小:默认为 Byte
- 创建时间
- 文件名
- 相关教程:Linux视频教程
rwx 对于文件和目录的意义
对文件来说,w 意味着可以修改该文件的内容(但不包含删除文件),x 意味着该文件有被执行的权限(真正是否能执行与文件内容有关)。
目录主要负责记录文件名列表
- r:意味着可以读取该目录结构
- w:可对该目录下的文件(或目录)进行删除、添加、修改、移动、重命名等,权限极大
- x:能进入该目录
如果用户只对某目录拥有 r 权限,只能查看该目录下的文件名称和类型,连文件大小以及各种属性都看不到。如 zst 用户只拥有 /home/zhoust 目录的读权限,只能看到该目录下的文件名称
[xxx@CentOS ~]$ ls -al
total 36
drwxr-xr-- 5 zhoust zhoust 4096 Apr 21 14:55 .
[xxx@CentOS ~]$ ls -l /home/zhoust/
ls: cannot access /home/zhoust/learn: Permission denied
total 0
能完成任务的最小权限
如果用户对某目录没有 x 权限,无法执行该目录下的任何命令,也不能查询该目录下的文件内容。
操作动作/dir1/dir1/file1/dir2解释读取 file1 内容xr-要能够进入 /dir1 才能读到里面的文件数据!修改 file1 内容xrw-能进入且能修改删除 file1 文件wx--能够进入 /dir1 具有目录修改的权限即可!将 file1 复制到 /dir2xrwx要能够读 file1 且能够修改 /dir2 内的数据
修改文件属性与权限
三个命令,chown、chgrp、chmod 分别表示修改文件所属用户、修改文件所属用户组、修改文件权限
chmod 语法分为两种,一种是用数字修改,另一种是用符号修改文件权限。
使用数字修改,分别是 421 将对应位置上的数字相加,例如:
# 在 /home/zhoust 目录下,其他用户都不可进入
[xxx@CentOS ~]$ ls -al
# 使用 chmod 修改为其他用户可进入,zst 就能进入这个目录了
[xxx@CentOS ~]$ chmod 705 .
[xxx@CentOS ~]$ ls -al
drwx---r-x 5 zhoust zhoust 4096 Apr 21 14:55 .
使用符号类型修改文件权限,格式为 [范围][修改][某权限],u 所属用户,g 用户组,o 其他用户,a 全部用户,用于修改的符号有 +-=,权限还是那三个 rwx。现在再把 /home/zhoust 目录的其他用户权限关闭: