用户管理
用户和用户组分类
用户分为三种以UID来区分
超级用户 UID = 0 在系统中拥有至高无上的权限.
系统用户 UID 1-499 bin,ftp,mail等,不具备登录系统的权利,却是系统运行不可缺少的.
普通用户 UID 500以上 管理员建立的用户.密码和权限都由管理员制定.
超级组 GID = 0
系统组 GID = 1-499
普通组 GID = 500以上
用户相关文件文件位置
- 用户信息 /etc/passwd
早起的linux 在密码列会存储一个加密后的密码,但是现在只是一个标记列了,实际的密码不放在这里了
用户名 密码控位键 用户UID 组GID 用户描述信息 用户家目录 用户默认shell root :x :0 :0 :root :/root :/bin/bash man :x :6 :12 :man :/var/cache/man:/usr/sbin/nologin czhn :x :1000 :1000 :czhn :/home/czhn :/bin/bash
-
用户组信息 /etc/group 用户名 密码密码空位 组id 附属组(加入的其他组) koala :x :1000 : infra :x :1002 :prometheus,grafana,loki,pigstyuser,dba
-
真正的密码 /etc/shadow 用户 密码 加密方式 加密盐 加密迭代次数 密码过期时间 密码锁定时间 密码创建时间 密码修改时间 user1 :$6$ZWqoztNi$8DZaXNASfMPUvK8q8WlgvlaXOqEfQxkEOO/NZSQ.hq3LPGZMyj61aqxwiP02W3BcZ.eJvlZWoaYUg8RJsdg4m1:16352:0:99999:7::: user2 :!! (说明没有密码) user3 :! (用户被禁用)
用户管理命令
添加用户
-
useradd 用户名 useradd 是一个低级命令,更底层。适合精细控制的场景 相关参数 -u UID -d 家目录目录 一般用-d 就不用-m了 两个用一个就行 -m 自动创建家目录 -g GID -c 用户描述信息 -s 默认shell -p 密码
-
adduser 用户名 adduser 是一个高级命令,适合一般场景
在centos中这两个命令差不多, 在Ubuntu中 adduser 命令是一个交互命令
-
将用户名添加到sudo组中,使他具有sudo 权限,现代的发行版中大多数使用这个方式进行sudo赋权 sudo usermod -aG sudo 新用户名
-
免密执行sudu
在 /etc/sudoers.d 目录添加文件
这个文件最好和用户名一致
例如用户名叫 user1 那么文件名就是 user1写入
%user1 ALL=(ALL) NOPASSWD:ALL
修改用户密码
passwd user1
修改用户属性
usermod 修改用户属性命令 -u UID -d 家目录 -g GID -s 指定用户shell -L 禁用用户user1 -U 启用用户user1
删除用户
userdel -r 删除用户及用户家目录
切换用户
su - user1 会修改到user1的环境变量
su user1 不会修改环境变量
sudo su 不需要密码切换到root用户
登录后的检查
whoami 查看当前用户身份 who 查看登录本机用户及来源ip w 查看登录用户在做什么 id 查看用户和查看用户所属的组 users 都有哪些登录用户
koala@HomeName:/path$ id koala
uid=1000(koala) gid=1000(koala) groups=1000(koala),4(adm),20(dialout),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),100(users),107(netdev),1001(docker)
koala@HomeName:/path$ users
koala
koala@HomeName:/path$ w
15:09:06 up 15:07, 2 users, load average: 0.01, 0.04, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
koala 10.0.8.24 08:54 15:48m 0.00s 0.02s sshd: koala [priv]
koala pts/1 - Mon23 15:48m 0.01s 0.01s -bash
koala@HomeName:/path$ who
koala pts/1 2025-05-19 23:21
koala@HomeName:/path$ whoami
koala
组管理命令
组添加
groupadd 组名称
groupadd -g 组编号 组名称
删除组
groupdel 组名称
管理组
用法:gpasswd[-a user][-d user][-A user,...][-M user,...][-r][-R]groupname
参数:
-a:添加用户到组
-d:从组删除用户
-A:指定管理员
-M:指定组成员和-A的用途差不多
-r:删除密码
-R:限制用户登入组,只有组中的成员才可以用newgrp加入该组
把user1用户加入到用户组group1 ----- gpasswd -a user1 group1
把user1用户从group1组中删除 ----- gpasswd -d user1 group1
物理机 忘记root密码
可以进单用户模式,方法为:
重启Linux系统,出现"5秒之内要按一下回车"的界面,然后输入字母"e",
选择第二行按字母"e"进入编辑模式,将光标移动到末尾输入"single"或数字"1"或字母"s",回车,
最后按字母"b"来启动.进入单用户模式,然后输入修改root密码的命令:passwd,修改好后重启系统就ok了
直接设置root密码, 不需要控制台交互
-
这个应该是红帽能用,不过没试过 echo “redhat” | passwd –stdin root
-
在ubuntu22.04实战使用过 echo “root:soft01”|chpasswd