红帽Linux — 2管理本地用户
用户的概念
-
用户账户用于在运行命令的不同人员和程序之间提供安全界限
-
Linux中通过UID区分不同的用户,用户名和UID的映射在账户信息数据库中定义
用户类型
-
超级用户:0
root用户,具有系统中至高无上的权力
-
系统用户:1-999
一些用来做系统服务的用户
-
普通用户:1000+
一些基本使用系统的用户
用户的配置文件
-
/etc/passwd
:存储所有用户的大部分信息 -
/etc/shadow
:存储这用户的密码信息
注:root有权限直接修改,但不建议,可能导致root无法登录,且错误配置无法恢复
/etc/passwd
- 用户的用户名
- 曾是加密后的用户密码,出于安全考虑,已转移,使用x作为占位符
- 用户的UID
- 用户的主要组的GID
- 用户的注释,通常是其真实姓名
- 用户的家目录
- 用户登录的shell
/etc/shadow
- 用户的用户名
- 用户加密后的密码,包括三个部分,用"$"分隔,用哈希算法加密,随机选取的salt值
- 上次更改密码的日期,从1970年1月1日起的天数
- 密码最短使用期限,上次改密后,多久才能再次改
- 密码最长使用期限,上次改密后,多久必须再次改
- 警告期,密码过期前的警告时长
- 非活动期,密码过期后的宽限期,非活动期后,不该密码将锁定用户
- 密码过期日,空字段表示不会过期
- 留空,预留给未来使用
管理用户
新建用户
-
指令
useradd <user> #创建用户
-
例子
-
新建用户 Tom
useradd tom #或 useradd -m tom #创建用户时在/home同步创建家目录 #或 adduser tom #创建用户时在/home同步创建家目录 passwd tom #不设密码无法登录,密码有复杂度要求,root不受限制
-
新建用户ken,要求UID为610,注释为thisisken,家目录为/ken,非交互式登录
useradd -u 610 -c thisisken -d /ken -s /sbin/nologin ken tail -1 /etc/passwd #查看最后一行
-
-
一些默认值会从 /etc/login.defs 中读取,如UID编号范围和默认密码过期规则等。修改后只对新创建的用户有效
删除用户
-
指令
userdel <user> #删除用户 Find / -nouser -nogroup #找到无人拥有的目录和文件(拥有者被删除了),然后再手动分配这些文件 #或 userdel -r <user> #删除用户时同步删除主目录
-
默认情况下,新用户的UID会从1000开始分配,被删后的UID可能会被分配到新用户,具有相同UID的用户具有相同权限,并且可以直接接管之前用户的文件。因此要考虑是否删除用户时删除文件夹。
-
假设有Linux A和Linux B。A上的用户tom,UID为1001,对1.txt有读写权力,B上的用户tom,UID为1002,将1.txt拷贝到B上,B上的tom对文件没有权限,若B上有用户lisa,UID为1001,则lisa对1.txt文件有读写权限。
修改用户属性
-
格式
usermod [option] <user>
-
指令
usermod选项 作用 -c 或 --comment 将用户的真实姓名添加到注释字段 -g 或 --gid 为用户账户指定主要组 -G 或 --groups 为用户账户指定附加组的逗号分隔列表 -a 或 --append 与-G选项组合使用,将附加组添加到用户当前的组成员集合中,而不是将附加组集合替换为新集合 -d 或 --home 为用户账户指定特定的主目录(HOME_DIR) -m 或 --move-home 将用户的主目录移到新的位置,必须与-d搭配使用 -s 或 --shell 为用户账户指定特定的登录shell -L 或 --lock 锁定用户账户 -U 或 --unlock 解锁用户账户 -l 或 --login 更改账户登录的用户名
-
修改ken用户的名称为bob
usermod -l bob ken #使用-l选项修改用户名称,选项与useradd基本一致
-
新建一个admin,UID为0,然后禁用root用户
-
useradd -o -u 0 admin #使用-o选项去除UID的唯一性 usermod -L root #锁定root用户,U解锁
-
由于root用户具有非常高的权限,所以锁定root用户是非常操作,使用-L选项进行锁定,其实是在root用户的密码前加了个感叹号。
-
另外也可将root的shell修改为nologin shell,也可以显示禁止root用户登录的效果。
-
-
添加用户tom到group1、group2用户组中
-
usermod -G group1, group2 tom
-
注:使用usermod -G 时,若该用户还有其他补充组,将从其他补充组中移除
usermod -aG <group> <user>
#把用户追加到某些组中,通常-a -G连用
-
-
设置密码
passwd user01
有复杂度要求,用root权限则可强制改
UID范围
范围 | 设定 |
---|---|
0 | 始终分配给 root 账户 |
1-200 | 系统用户,由红帽静态分配给系统进程 |
201-999 | 系统用户,供文件系统中没有自己的文件的系统进程使用。通常在安装需要它们的软件时,从可用池中动态分配它们。程序以这些”无特权“系统用户身份运行,以便限制它们仅访问正常运行所需的资源。 |
1000+ | 分给普通用户 |
常用指令
Windows cmd:
scp <文件> <账户>@<IP>:/home/用户名/ #远程传输文件
查找文件
find \ -name \*keyword\*
参考资料:Red Hat Training and Certification