用户身份与能力
- root不是管理员uid为0的才是,我们可以改root的名字
- uid是1-999为系统用户,为程序启动时自动添加,系统用户无法登陆,其作用类似于安装Oracle数据库或mysql数据库时,为了防止他人非法入侵后对数据进行破坏,就新增了/sbin/nologin的Oracle和mysql用户。目前的理解是这样,没找到其他描述。
- uid大于1000的为普通用户,分配用户时若不指定,则会从1000开始自动分配
命令
- useradd 新增用户
常用参数
-d 默认家目录
-u 指定uid
-g 指定基本用户组
-s 指定默认shell解释器,默认是/bin/bash,应场景需求,可以指定为/sbin/nologin
user <参数> 用户名 - groupadd 新增用户组
groupadd 用户组名 - usermod 修改用户属性
常用参数
-d -m 连用更改用户的家目录并且把旧数据迁移至新目录
-g 变更基本用户组
-G 变更扩展用户组
-u 变成uid
-L 锁定用户
-U 解锁用户 - passwd 修改密码
常用参数
-l 等同于usermod -L
-u 等同于 usermod -U
–stdin 允许标准输入修改密码 一般都是输入两遍隐藏的的密码,加了这个参数直接明文修改密码
passwd --stdin haha - userdel 删除用户
-f 强制删除
-r 删除家目录数据
文件权限及归属
常见文件类型
-:普通文件。
d:目录文件。
l:链接文件。
b:块设备文件。
c:字符设备文件。
p:管道文件。
最常见的,前三个
权限
属性的分类
- 普通属性,rwx
- 特殊属性:suid,sgid,sbit,主要是用于保护
- 隐藏属性:更高级的限制,比如特殊属性sbit可以限制删除,chattr -a 文件名,只允许追加,不能删除和修改。
权限 | 文件中含义 | 文件夹中含义 |
---|---|---|
r | 读取 cat等 | 查看列表 ls |
w | 写入(Linux一切都是文件)vi等 | 新建文件 touch或mkdir等 |
x | 执行文件 bash等 | 打开文件 cd |
suid | 临时拥有root权限 | 没用,只对文件有用 |
sgid | 临时拥有root属组 | 在某个目录中创建的文件自动继承该目录的用户组 |
sbit | 保护位,不能被除了拥有者之外的人删除 | 同文件 |
普通属性的权限设置
chmod 777 文件名 赋权
chmod 777 -R 文件夹名
r=4
w=2
x=1
chown root:root a 更改所有者
特殊属性的权限设置
基于普通属性,777前加个7
chmod 7777 文件名
suid=4
sgid=2
sbit=1
显示规则为
suid占用所属者的x位置,当有x时用s当无x用S
sgid占用所属组的x位置,当有x时用s当无x用S
sbit占用其他用户的x位置,当有x时用t当无x用T
例如 chomod 7000 a 则该文件显示为—S–S--T
chomod 7111 b 则该文件显示为—s–s--t
隐藏属性
chattr <参数> 文件 加权限
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
S 文件内容在变更后立即同步到硬盘(sync)
s 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A 不再修改这个文件或目录的最后访问时间(atime)
b 不再修改文件或目录的存取时间
D 检查压缩文件中的错误
d 使用dump命令备份时忽略本文件/目录
c 默认将文件或目录进行压缩
u 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复
t 让文件系统支持尾部合并(tail-merging)
x 可以直接访问压缩文件中的内容
lsattr 文件显示权限
- 用的较少,但是要会看这个是否加了隐藏属性
- +参数 是增加参数 -参数是去掉参数
文件访问控制列表
setfacl -Rm u:linuxprobe:rwx /root
setfacl 增加控制列表命令
-R 递归
-m 普通文件
u:linuxprobe 对用户或者g:xxxx对用户组
/root 加列表的文件名
getfacl 文件名 获取控制列表
- 有控制列表的权限最后一位后面的 . 变成**+**
- 挺酷
su命令与sudo服务
- su 切换 一般加上-即su - 用户名环境变量也跟着切换,尤其是在操作数据库之类,会有无法备份的情况,是因为环境变量不一样
- 限制用户执行指定的命令:
- 记录用户执行的每一条命令;
- 配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数;
- 验证密码的后5分钟内(默认值)无须再让用户再次验证密码。
- 只有root管理员才可以使用visudo命令编辑sudo服务的配置文件。
- 谁可以使用 允许使用的主机=(以谁的身份) 可执行命令的列表
- 暂时用的少,或者还不知道在哪用
- 针对命令的,通过visudo配置好,哪个主机访问的哪个用户可以通过谁的身份去执行哪些命令,哪个主机=允许使用的主机,哪个用户=谁可以使用,谁=以谁的身份,哪些命令=可执行命令的列表
- 哪些命令 用绝对路径
- linuxprobe ALL=NOPASSWD: /usr/sbin/poweroff
NOPASSWD前面省略了(root)被默认为root了