Top22:RHEL学习札记-5-用户身份与管理权限
用户
管理员
相当于Windows里的内置管理员
UID 为0
系统用户
不能登录服务器 Linux默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏的范围
rhel 5/6 UID 为1-499 范围
rhel 7/8 UID 为1-999
普通用户
是由管理员创建的用于日常工作的用户,7/8版本rhel默认从1000开始,即使前面有闲置的号码
rhel 5/6 UID 为500-65535 范围
rhel 7/8 UID 为1000-无上限
UID 用户的身份标识符,相当于人的身份证号码,不能冲突
GID 组的ID号码,第一个叫基本组,第二个叫扩展组
基本组有且只有一个,扩展组可以有多个,是自行去添加的
基本用户组与扩展用户组
在 Linux 系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。
如果该用户以后被归纳入其他用户组,则这个其他用户组称之为扩展用户组。
一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。
参数
useradd 用户名称
-d 指定用户的家目录
-e 账户的到期时间,格式为YYYY-MM-DD
-u 指定用户的UID
-G 组名 用户 指定一个或多个扩展组
-g 指定初始的用户基本组,必须已经存在
-N 不创建与用户同名的基本用户组
-s 指定用户的默认shell解释器
例:创建一个普通用户并指定家目录的路径、用户的UID 以及Shell 解释器。
useradd -d /home/linux -u 8888 -s /sbin/sh carl
查看用户信息
id 用户名称 用户查看用户 uid,gid,groups
新建一个组
groupadd 组名
例:
groupadd ronny
修改用户基本属性
usermod 参数 用户名
-d -m 重新指定用户的家目录并自动把旧的数据转移过去
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID
设置指定用户密码
passwd 用户名
-l 锁定用户禁止其登录系统
-u 解锁用户,允许其登录系统
--stdin 允许通过标准输入修改用户密码
-d 使该用户可用空密码登录系统
-e 强制用户在下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所采用的加密算法名称
例:修改用户密码
echo "NewPassWord" | passwd --stdin Username
删除用户
userdel 用户名
-r 删除用户的家目录等文件
-f 强制删除用户
例:
useradd -u 66666 xiaogao 新建一个名为xiaogao的用户,并指定了uid
useradd -g 88888 xiaogao 指定gid码
id xiaogao 查看用户信息
usermod -u 12345 xiaogao 修改uid码
groupadd xiaogao 新建一个组名为xiaogao
usermod -G xiaodai xiaogao 将xiaogao用户组加到xiaodai组里
删除已经添加了的扩展组
vim /etc/group
找到要删除的用户名对应的扩展组删除即可
调取所有用户信息
cat /etc/passwd | cut -d : -f 1
文件权限与归属
一般有10位组成 无权限为 - 代替
第一位 -:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件
二到四 文件所有者的权限
五到七 文件所属组的权限
八到十 其他用户的权限
rwx
分别为 read、write、execude 对应数字为 4 、 2 、 1
文件和目录的 rwx的含义
文件
r 对文件内容的读权限
w 对文件内容的写权限
x 如果文件是一个脚本文件 有其执行权限
目录
r 查看目录内文件列表的权限
w 在目录中 新建 剪切 重命名 删除的权限
x 进入到目录的权限 cd 目录
权限
SUID u+s
命令的执行者临时获取所有者的权限,永久生效
所有者原有权限 rwx 授权SUID后变为 rws
所有者原有权限 rw- 授权SUID后变为 rwS
SGID g+s
命令的执行者临时获取所有组的权限,永久生效
在目录上设置SGID 特殊权限位,任何人员在里面创建的任何文件都会归属于该目录的所属组,
而不再是自己的基本用户组
在某个目录中创建的文件自动继承该目录的用户组,只可以对目录进行设置
SBIT o+t
保护文件只能被自己删除
当目录被设置SBIT 特殊权限位后,原本有x 执行权限则会写成t,原本没有x 执行权限则会被写成T
例:在/tmp临时目录里的文件只能被自己所删除
例: 对haha文件夹赋予g+s
chmod -R g+s haha
ls -ld haha/
rws 与rwS的区别
如果之前的权限为rwx 修改后为 rws
如果之前的权限为rw- 修改后为 rwS
例:计算权限
rw–wS-wt
首先要看一般权限,可以看做rw–w--wx,对应权限为623
接着看sgid权限和sbit权限,分别为2和1,加起来为3,所以最后为3623
设置文件的权限
chmod 权限 文件
设置文件的所有者和所有属
chown 所有者:所有属 文件名
文件的隐藏属性
隐藏权限,即被隐藏起来的权限,默认情况下不能直接被用户发觉。
格式
chattr +权限 文件 设置权限
chattr -权限 文件 取消权限
参数
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充内容,无法覆盖或删除内容
S 文件内容在变更后立即同步到硬盘
s 彻底从硬盘中删除,不可恢复,就是用0 填充原文件所在硬盘区域
A 不再修改这个文件或目录的最后访问时间
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump 命令备份时忽略本文件或目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,日后可以恢复
t 让文件系统支持尾部合并
X 可以直接访问压缩文件中的内容
例:新建一个普通文件,并为其设置不允许删除与覆盖权限,然后再尝试将这个文件删除
echo "for Test" > test
chattr +a test
rm -rf test
查看权限状态
lsattr 文件 文件的隐藏权限使用ls无法查看,只能使用lsattr显示
ACL
文件访问控制列表ACL 对某个指定的用户进行单独的权限控制
如果针对某个目录设置了ACL,则目录中的文件会继承其ACL;
若针对文件设置了ACL,则文件不再继承其所在目录的ACL。
setfacl
管理文件的ACL 规则
-R 针对目录文件需要使用,递归参数
-m 针对普通文件则使用
-b 删除某个文件的ACL
例:设置用户在/root 目录上的权限
setfacl -Rm u:linuxprobe:rwx /root
可以使用ls 查看是否设置了ACL
文件的权限最后一个点(.)变成了加号(+),表示该文件已经设置了ACL 了
例:
ls -ld /root
dr-xrwx---+ 14 root root 4096 May 4 2017 /root
getfacl
显示文件上设置的ACL 信息
例:
getfacl /root
su
su - 用户名
切换用户身份,当前用户不退出登录
参数 “-” 表示 完全切换到新的用户,即把环境变量信息也变更为新用户的相应信息,而不是保留原始的信息
管理员切换普通用户不用密码,普通用户切换管理员需要密码
sudo
sudo 服务 可以不给普通用户管理员的密码的前提下执行
-h 列出帮助信息
-l 列出当前用户可执行的命令
-u 用户名或UID值 以指定的用户身份执行命令
-k 清空密码的有效时间,下次执行sudo 时需要再次进行密码验证
-b 在后台执行指定的命令
-p 更改询问密码的提示语
功能:
限制用户执行指定的命令
记录用户执行的每一条命令
配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
验证密码的后 5 分钟内(默认值)无须再让用户再次验证密码