【02】文件权限

5 阅读2分钟

[26/3/6]文件权限

参考资料:《鸟哥的 Linux 私房菜 基础篇》第 5、6 章

用户组

首先需要理解三个概念:用户、用户组、其他人。

Linux 作为多人多任务操作系统,为了管理多人,以及多人协作,所以使用了用户组这一概念。

比如说,user1、user2、user3 均属于用户组 usergroup

那么,不属于这一用户组的其他用户都属于其他人。

此外,一个用户可以同时在多个用户组下。

  1. u :user,用户/拥有者
  2. g :group,用户组
  3. o :other,其他人

文件权限

首先权限分为:

r :read,读取权限

w :write,写入权限

x :execute,执行权限

实例说明:

# 先运行 ls -al
-rw-r--r--  1 muxinyue muxinyue   84 Mar  4 13:37 .gitignore
drwxr-xr-x  2 muxinyue muxinyue 4096 Mar  2 15:37 .vscode

可以看到依次是:

权限、链接数、拥有者、所在用户组、文件大小、最后修改时间、文件/目录名

重点看权限:注意有 10 个字符!

第一个字符:表示文件类型,比如说 .gitignore 是一个文件,所以开头是 -

.vscode 是一个文件夹,也就是目录,所以开头是 d

类似的还有 l 表示链接文件(link file),b 表示可供存储的周边设备,c 表示串行端口设备。

接下来按三个一组表示权限,分别是是拥有者权限、用户组权限、其他人权限。

此外因为是 3 个布尔值,所以可以用二进制数来表示。比如说 5 = 101 也就是 r-x 即可读不可写可执行权限。

补充:对于一个目录/文件夹,执行权限就是进入到文件夹内

修改权限

权限修改相关的命令:

  1. chgrp :(change group) 修改文件所属用户组。
  2. chown :(change owner) 修改文件的拥有者。
  3. chmod :修改文件权限。

例如,想把文件权限改为【-rwxr-xr--】就需要 [111][101][100]=754

那么运行 chmod 754 filename

还可以运行 chmod u=rwx,g=rx,o=r filename # 用=指定权限

此外还有用 + 新增权限,用 - 取消权限

例如 chmod a+w filename # 这里 a 表示所有用户,所有用户都授予写入权限

目录管理

  1. cd :切换目录
  2. pwd :显示当前路径
  3. mkdir :新建文件夹
  4. rmdir :删除空文件夹
  5. rm -r <dir_name> :删除整个文件夹
  6. ls [-a -l] :查看路径下的文件和目录
  7. cp :copy,复制(不同用户使用此命令时会有权限上的差别)
  8. rm :remove,删除
  9. mv :move,移动