权限概念
操作系统基本权限: r w x
操作系统权限划分: 属主 属组 其他用户
对于一个普通文件
可读(r) : 表示具有读取、浏览文件内容的权限
可写(w) : 表示具有增加、删除、修改文件内容的权限
可执行(x) : 表示具有执行文件的权限
详细分析
文件没有权限 | 拥有读权限 | 拥有写权限 | 拥有执行权限 | |
---|---|---|---|---|
root用户 | 可读 可写 | 可读 可写 | 可读 可写 | 可读 可写 可执行 |
属主用户 | 可写(覆盖原有内容) | 可读 可写 | 可写(覆盖原有内容) | 不可执行 |
其他用户 | 没有任何能力 | 可读 | 可写(覆盖原有内容) | 不可执行 |
总结
1) root 用户可以随意查看和编辑任意文件信息, 不受到权限限制
2) 文件的权限中, 读权限是最重要. 有了rw 配合才能正常编写文件;有了rx 配合才能正常执行文件
3) 默认文件权限是 644 --- 属主权限:6 (rw) 属组权限:4 (r) 其他用户:4 (r)
对于一个目录文件
可读(r) : 表示具有浏览目录下面文件及子目录名的权限
可写(w) : 表示具有增加、删除、修改目录内文件的权限
可执行(x) : 表示具有进入目录的权限
分析权限
目录没有权限 | 拥有读权限 | 拥有写权限 | 拥有执行权限 | |
---|---|---|---|---|
root用户 | 可读 可写 可执行 | 可读 可写 可执行 | 可读 可写 可执行 | 可读 可写 可执行 |
属主用户 | 没有任何能力 | 只能看数据名称 | 没有任何能力 | 可以切换到目录中 |
其他用户 | 没有任何能力 | 只能看数据名称 | 没有任何能力 | 可以切换到目录中 |
总结
1) root用户可以随意查看和编辑任意目录信息, 不受到权限限制
2) 目录的权限中, 执行权限是最重要. 有了rx 配合才能正常查看目录下面的信息; 有了wx 配合才能正常在目录中创建/删除/修改数据信息
3) 默认目录权限是 755 --- 属主权限:7 (rwx) 属组权限:5 (rx) 其他用户:5 (rx)
默认权限及设置命令 umask
功能说明
umask 是通过八进制的数值来定义用户创建文件或目录的默认权限的. 系统会根据预先设定的 umask 值计算出默认情况下创建的文件或目录权限.
默认权限
创建文件: 默认权限 644
创建目录: 默认权限 755
计算方式
umask --- 查看默认权限运算数值/改变默认权限
文件
默认文件权限 : 666 - umask = 666 - 022 = 644
umask等于偶数时 : 666 - 044 = 622 --- umask偶数正常运算
umask等于偶数时 : 666 - 033 = 644 --- umask奇数正常运算之后+1
目录
默认目录权限 : 777 - umask = 777 - 022 = 755
umask等于偶数时 : 777 - 044 = 733
umask等于偶数时 : 777 - 033 = 744
系统默认权限调整
vim /etc/profile
系统权限调整方法
直接修改数据权限
chmod u/g/o +/-/= --- 针对不同用户设置权限
chmod a +/-/- --- 针对所有用户统一设置权限
chmod 755 --- 针对所有用户设置权限
chmod -R 文件 --- 递归设置权限 (慎用)
修改数据属主用户
chown 属主信息 数据信息
chown 属组信息 数据信息
chown 属主信息 属组信息 数据信息
chown -R 属主信息 属组信息 目录信息 --- 递归修改目录属主和属组信息
补充 :
root用户无法编写文件信息,确认数据信息是否上锁了
chattr +i 文件信息 --- 上锁
chattr -i 文件信息 --- 解锁
lsattr 文件信息 --- 确认数据是否上锁
特殊权限
suid(setuid)
概念
suid (setuid)位通过S字符标识, 存在于基本权限的用户权限位的 x 权限对应的位, 如果用户权限位对应的 x 权限位上有x权限, 则suid就用小写的 s 标识, suid 的 s 对应的数字权限为 4, 完整权限用八进制数 4000 表示 .
作用
让普通用户可以拥有属主用户能力 (对操作文件命令进行权限调整)
设置方法
chmod u+s / chmod 4644 --- 设置setuid权限
sgid(setgid)
概念
sgid (setgid)位同样是通过 S 字符来进行标识的,但是,sgid 位存在于基本权限的用户组权限位的 x 权限对应的位置, 如果用户组权限位对应的 x 权限位上有x权限, 则 sgid 就用小写的 s 来标识, suid 的 S 对应的数字权限为 2, 完整的权限用八进制数 2000
作用
让普通用户可以拥有属组用户能力 (对操作文件命令进行权限调整)
设置方法
chmod g+s / chmod 2644 --- 设置setgid权限
sticky(粘滞位)
概念
sticky (粘滞)位通过字符 T 标识, 存在于基本权限的其他用户位对应的 x 权限位上, 如果其他用户位的x权限位上有x权限, 则 sticky (粘滞)位通过小写的 t 标识, 对应的数字权限是 1, 完整的权限用八进制数1000表示
作用
创建一个共享目录, 只能文件属主用户对自己数据进行调整, 其他用户只能查看
设置方法
chmod o+t / chmod 1755 --- 设置粘滞位权限
注:
/tmp/ 目录的权限必须是 1777 权限, 不能改动
用户提权(sudo 配置文件 /etc/sudoers)
作用
指定相应普通用户可以拥有root用户能力
语法注意事项
1) 命令必须是文件或目录的绝对路径
2) 必须有三列信息, 列与列之前要有空格分隔
3) 提权多个命令, 用逗号空格进行分隔
4) 提权多个命令时,在指定命令前面加上!, 表示取消指定特权(回收指定权利)
5)提权操作时,在命令信息前面加上 NOPASSWD: 表示取消提权输入密码的过程
应用场景
当工作中有很多台服务器, 每台服务器又包含多个系统用户, 需要对用户权限进行严格管理 (关键命令的使用)、分层授权管理用户的时候
操作
第一个历程: 编写提权配置文件 --- vim /etc/sudoers
root ALL=(ALL) ALL
oldboy ALL=(ALL) /bin/cat /etc/shadow, /bin/rm /oldboy/*
注:
第一列: 只能提权用户信息
第二列: 权限集中管理配置
第三列: 指定特权信息
第二个历程: 测试提权效果
sudo -l --- 查看是否拥有特权信息
sudo cat /etc/shadow
扩展: setfacl/getfacl --- 指定文件信息, 将文件操作权限赋予给哪个用户
用户、用户组相关命令
useradd
作用
添加普通用户
语法
useradd 选项 参数
选项
-c : 加上备注文字
-d : 指定用户登入时的启始目录
-D : 变更预设值
-e : 指定帐号的有效期限
-f : 指定在密码过期后多少天即关闭该帐号
-g : 指定用户所属的群组
-G : 指定用户所属的附加群组
-m : 自动建立用户的登入目录
-M : 不要自动建立用户的登入目录
-n : 取消建立以用户名称为名的群组
-r : 建立系统帐号
-s : 指定用户登入后所使用的shell
-u : 指定用户id
userdel
作用
删除普通用户
语法
userdel 选项 参数
选项
-f : 强制删除用户, 即使用户当前已登录
-r : 删除用户的同时, 删除与用户相关的所有文件
usermod
作用
用于修改用户的基本信息
语法
usermod 选项 参数
选项
-c : 修改用户帐号的备注文字
-d : 修改用户登入时的目录
-e : 修改帐号的有效期限
-f : 修改在密码过期后多少天即关闭该帐号
-g : 修改用户所属的群组
-G : 修改用户所属的附加群组
-l : 修改用户帐号名称
-L : 锁定用户密码, 使密码无效
-s : 修改用户登入后所使用的shell
-u : 修改用户ID
-U : 解除密码锁定
groupadd
作用
创建用户组
语法
groupadd 选项 参数
选项
-g : 指定新建工作组的id
-r : 创建系统工作组, 系统工作组的组ID小于500
-K : 覆盖配置文件“/ect/login.defs”
-o : 允许添加组ID号不唯一的工作组
groupdel
作用
用于删除指定的用户组
语法
groupdel 参数
groupmod
作用
用于更改群组识别码或名称
语法
groupmod 选项 参数
选项
-g : 设置欲使用的群组识别码
-o : 重复使用群组识别码
-n : 设置欲使用的群组名称
系统用户相关文件和目录
和用户相关文件
/etc/shadow --- 记录用户密码信息
/etc/group --- 记录用户组信息
/etc/gshadow --- 记录用户组密码信息
/etc/passwd --- 记录系统用户信息
注 :
oldboy01: X: 1001: 1001: : /home/oldboy01: /bin/bash
oldboy02: X: 1002: 1002: : /home/oldboy02: /bin/bash
① ② ③ ④ ⑤ ⑥ ⑦
① 用户名称信息
② 用户密码信息
③ 用户uid数值信息
④ 用户gid数据信息
⑤ 用户注释信息
⑥ 用户家目录路径信息
⑦ 用户登录系统方式
和用户相关目录
/etc/skel --- 所有用户家目录 样板房