乐趣区

关于linux:Linux权限管理漫谈之基本权限

根本权限

Linux 文件(包含目录)通过绝对权限进行治理,这里的绝对是指绝对文件所有者,权限分为文件所有者权限(user),所有者同组用户权限(group)和其余用户权限(other),通过 ll 命令能够查看用户对文件的操作权限,权限分为 r:读权限,w:写权限,x:执行权限。如:通过 ll 命令显示文件的权限为:-rwxr-xr,为便于阐明,图示如下。

  • 第 9 位:文件类型,- 示意一般文件,d 示意目录,还有软连贯等其余类型
  • 第 6 - 8 位:文件所有者权限
  • 第 3 - 5 位:文件所有者同组用户权限
  • 第 0 - 2 位:其余用户权限

每个类型的用户权限又能够形容为一个 3 位的二进制。

  • r 为第二位,十进制值为 4
  • w 为第一位,十进制值为 2
  • x 为第零为,十进制值为 1

权限位和十进制对应如下:

  • rwx = bin(111) = 4 + 2 + 1 = 7
  • r-x = bin(101) = 4 + 0 + 1 = 5
  • r– = bin(100) = 4 + 0 + 0 = 4

rwx 对于文件和目录的权限意义:

权限 简写 对一般文件的权限 对目录的权限
读取 Read r 查看文件内容 列出目录内容(ls)
写入 Write w 编辑文件内容 增加、删除、挪动(重命名)目录中的文件
执行 eXecute x 作为程序运行文件 进入目录(cd)

umask

umask(user file-creation mode mask)为用户创立文件时的掩码,是创立文件和目录时管制默认权限的根底,如果没有设置 umask,文件默认权限为 0666,目录默认权限为 0777。
umask 的作用是在创立文件和目录时,应用“默认权限 -umask 值”为创立的对象设置权限,大多数 Linux 中的默认 umask 为 022,则创立的文件默认权限为0666 - 022 = 0644,创立目录的默认权限为0777 - 022 = 0755

SUID、SGID 和 Sticky

Linux 中还有三个和权限相干的属性
SUDI:Set User ID,管制位:4
SGID:Set Group ID,管制位:2
Sticky:管制位:1

SUID

该属性只对 可执行文件(Shell 除外)无效,执行具备 SUID 权限的程序时,程序将以文件所有者的权限执行,而不是启动程序的用户。比方,一个程序的所有者为 root,普通用户执行该文件时,程序将以 root 的权限运行,程序能够拜访只有 root 用户才有拜访权限的文件,这为一些非凡场景的程序运行带来了不便,同时也存在肯定的安全隐患。

此属性的一个典型场景为用户批改明码应用的 /usr/bin/passwd 程序,用户批改明码时须要向 /etc/passwd/etc/shadow 写入数据,而这两个文件是只有 root 采纳写入权限的,通过给 /usr/bin/passwd 文件设置 SUID,普通用户调研此文件批改明码时,将取得 root 用户权限,能够向以上配置文件写入新密码。

SUDI 通过 s 示意,当程序设置了 SUID 后,文件所有者权限的 x 位将会变为 s,如通过 ll 查看 /usr/bin/passwd 文件的权限为 -rwsr-xr-x。

SGID

对于 可执行文件,该属性的作用和 SUID 相似,引发程序运行的权限为组用户权限,设置 SGID 后,组用户权限的 x 为会变为 s

对于 目录,设置此属性后,会引发在此目录下创立的文件的所属组和此目录雷同。

Sticky

此属性仅对 目录 无效,设置了 Sticky 属性的目录中的文件仅可被目录的所有者删除和改名,其余用户无此权限,能够避免文件误删,零碎中的 /tmp 目录就利用了此属性。设置了 Sticky 后,目录的其余用户权限的 x 位将会变为 t。通过 ll 命令查看 /tmp 目录的权的权限为 drwxrwxrwt

退出移动版