本文最后更新于 2024-11-14,文章内容可能已经过时。

🌲Linux 树状结构

/ : 操作系统的起始路径根路径

  • /bin: 普通用户和管理员都可以执行的命令字

  • /sbin: 只有管理员才能执行的命令关机重启

  • /boot: 引导主引导目录独立的分区启动菜单内核

  • /dev: Device 设备设备文件存放目录

  • /etc: 配置文件存放目录

  • /home: 普通用户的家目录

  • /root: 管理员的家目录

  • /media: 光驱的挂载目录

  • /mnt: 临时设备挂载目录

  • /proc: 里面的数据都在内存中,进程的所在目录

  • /tmp: 临时文件存放目录

  • /usr: 软件的安装目录

  • /var: 常变文件存放目录日志文件邮件文件

Linux 文件与目录权限

类 Unix 系统中权限类别:文件拥有者、文件所属组、其他用户

当一个新文件创建时,其权限由创建文件的进程 umask 决定

权限就是对文件的「枷锁」,有不同权限的人才能进入不同的入口

🎈查看文件信息

在使用 ls 命令后可以看到如下格式的文件显示方式

drwxr-xr-x. 2 zyl zyl 6 Oct 11 14:02 Desktop
     1      2  3   4  5       6        7
  1. 文件权限

  2. 文件:文件的个数 ; 目录:目录的个数

  3. 文件所有者

  4. 文件所属组

  5. 文件大小

  6. 修改文件的时间

  7. 文件名 / 目录名

💡文件权限

d rwx r-x r-x .
1  2   3   4  5
  1. 文件类型

    1. - 普通文件

    2. d 目录

    3. b 块设备

    4. l 符号链接

    5. c 字符设备

    6. s 套接字

  2. 文件所有者对该文件的权限(属主权限)

  3. 文件所属组对该文件的权限(属组权限)

  4. 其他用户对该文件的权限(既不是文件所有者,也不是文件所属组)

  5. selinux 安全模块的安全标记(扩展安全上下文)

💡rwx 权限的赋予

在文件中:

r:可读

w:可写

x:可执行

在目录中:

r:可以查看目录的内容

w:可以对目录进行编辑(如创建删除文件)

x:可以进入目录

🎈文件权限修改

💡文字设定法

chmod [对象][算数运算符][权限] 文件

对象:

  • u: 文件所有者

  • g: 文件所属组

  • o: 其他用户

  • a: 所有人

算数运算符:

  • + - =

权限:

  • r w x

例子:

chmod u-w 123456/
chmod u=r 123456/
chmod ug=rwx 123456/
chmod ug+w 123456/
chmod u-w,g-wx 123456/

💡数字设定法

chmod [权限数字] 文件名
chmod 644 文件名
chmod 0644 文件名

权限数字由三个 8 进制数组成:

  • r:4

  • w:2

  • x:1

  • -:0,没有权限

  • 百位:文件所有者

  • 十位:文件所属组

  • 个位:其他用户

  • 千位:特殊权限

💡默认权限

默认情况下创建文件的默认权限

  • 普通用户:文件:664 目录:775

  • root:文件:644 目录:755

umask:权限掩码

umask 是用来指定 目前用户在新建文件或者目录时候的权限默认值

例如 root 默认的 umask 为 022,也就是说,对于当前用户没有拿掉权限,group 用户和 other 用户都被拿走了 w 权限,所以此时如果用户进行创建目录和文件的时候,默认权限是会进行如下的减法操作:

  1. 新建文件:666-022=644

  2. 新建目录:777-022=755

默认权限 = 最高权限(文件:0666 目录:0777)- 权限掩码(root:0022 普通用户:0002)

修改文件的所属用户

chown [用户] [文件]

修改文件的所属组

chgrp [组] [文件]

🎈三种特殊权限

💡sticky 粘滞位

文字设定法:o+t

数字设定法:1xxx

作用:sticky 权限一般针对目录来设置,作用是只允该目录下的文件的创建者删除自己的创建的文件,不允许其他人删除文件。(root 用户除外,因为 root 用户是超级管理员),而且 sticky 权限只能设置在 other 位置上。

其他用户权限如果没有 x 为 T ; 有 x 为 t

💡sgid

文字设定法:g+s

数字设定法:2xxx

作用:sgid 权限一般应用在目录上,当一个目录拥有 sgid 权限时,任何用户在该目录下创建的文件的属组都会继承该目录的属组。

在目录下创建文件 继承 所属组,目录 继承所属组和 sgid 权限

💡suid

文字设定法:u+s

数字设定法:4xxx

作用:让普通用户临时拥有该文件的属主的执行权限,suid 权限只能应用在二进制可执行文件(命令)上,而且 suid 权限只能设置在属主位置上。

针对 suid 权限有两种提权方式

  • vim 提权

  • find 提权