用户
用户账号类型:
超级用户
默认是root用户,拥有最高的管理权限。 其UID和GID均为0
普通用户
- 在 centos 7中 ,普通用户的UID范围为1000-60000。
程序用户
默认情况不能登录系统。它们是系统正常运行必不可少的,他们的存在主要是方便系统管理,满足相应的系统进程都文件属主的要求。例如系统默认的bin、adm、nodoby、mail用户等。
- 在centos 7中,系统用户的UID范围为1-999。
用户信息存储文件
用户账号文件/etc/passwd
保持用户名称,宿主目录,登录Shell等基本信息
文件位置:/etc/passwd
[root@localhost ~]# cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
冒号(:)作为分隔符分为七段,每一段含义
- 第一段:root//用户名
- 第二段:x//密码占位符
- 第三段:0//用户UID编号
- 第四段:0//用户组编号GID
- 第五段:root//用户描述说明
- 第六段:/root//用户家目录
- 第七段:/bin/bash //用户登录的shell
用户口令文件/etc/shadow
存储用户的密码信息,又称为“影子文件” 。/etc/shadow 文件只有 root 用户拥有读权限
文件位置:/etc/shadow
[root@localhost ~]# cat /etc/shadow
root:$6$mypJx.EFxxIzVqgM$MIAFBCP2Bb/xocxzuzWMCmUlv8hMiKksNXcz16cVz0EaKk8x49G.PaAP3CGG0.kH/M90akJ3id..LgUMy9X/S0::0:99999:7:::
bin:*:17110:0:99999:7:::
冒号(:)作为分隔符分为九段,每一段含义
- 第一段:用户名
- 第二段:密码加密值
- 第三段:上次密码修改时间
- 第四段:最小密码修改天数
- 第五段:密码有效期
- 第六段:警告时间
- 第七段:密码过期后的宽限时间
- 第八段:账户生效时间
- 第九段:保留字段
添加用户账号
命令格式: useradd [选项] 用户名
选项:
-u 指定用户的UID
[root@localhost ~]# useradd -u 2000 test
[root@localhost ~]# tail -1 /etc/passwd
test:x:2000:2000::/home/test:/bin/bash
-d 指定用户的宿主目录
[root@localhost ~]# useradd -d /home/test1/ user04
[root@localhost ~]# tail -1 /etc/passwd
user04:x:2002:2002::/home/test/:/bin/bash
-e 指定用户的账户失效时间
-g 指定用户基本组
-G 指定用户附加组
-M 不建立家目录
-s 指定用户的登录shell(一般用于程序用户)
设置/更改用户口令 passwd
命令格式:passwd [用户名]
passwd -d //清空指定用户的密码,仅使用用户名即可登录系统
passwd -l//锁定用户密码,锁定的用户账号将无法再登录系统。
passwd -u//解锁用户密码
passwd -S//查看用户账户的状态(是否被锁定)
创建密码:echo 密码 | passwd stdin 用户名
修改用户账号的属性 usermod
命令格式: usermod [选项]... 用户名
usermod -L//锁定用户账户
usermod -U//解锁用户账户
[root@localhost ~]# usermod -L test
[root@localhost ~]# passwd -S test
test LK 2023-05-04 0 99999 7 -1 (密码已被锁定。)
[root@localhost ~]# usermod -U test
删除用户 userdel
命令格式:userdel [-r] 用户名 //结合-r可以删除宿主目录
[root@localhost ~]# userdel user04
[root@localhost ~]# ls /home
test zyc
用户账号的初始配置文件
主要的用户初始配置文件:
-
~/.bash_profile : 这个文件是为系统全局变量配置文件,可以通过重启系统或者执行 ”source /etc/profile“ 命令使profile文件被读取。
-
~/.bashrc: 这个文件实际上是/etc/profile的子目录,存放的是一些应用程序所需的启动脚本。
-
~/.bash_logout: 每一个允许bash shell 的用户都会执行此文件。可通过执行bash命令打开一个新的bash,使bashrc文件被读取。
修改/etc/profile文件中相关配置,切换bash或者用户后都需要source /etc/profile才生效;
修改/etc/bashrc文件中相关配置,切换bash或者用户后直接生效。
组账号文件
文件位置:
- /etc/group:保存组账号基本信息。
- /etc/gshadow:保存组账号的密码信息。
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
添加组账号 groupadd
命令格式:groudadd [-g GID] 组账号名
[root@localhost ~]# groupadd -g 1100 market
[root@localhost ~]# tail -1 /etc/group
market:x:1100:
添加删除组成员 gpasswd
命令格式:
gpasswd [选项]... 组账号名
-a 向组内添加单个用户
[root@localhost ~]# gpasswd market -a ky29
[root@localhost ~]# gpasswd market -a ky29
正在将用户“ky29”加入到“market”组中
[root@localhost ~]# tail -1 /etc/group
ky29:x:2002:
-d 从组内删除一个用户成员
[root@localhost ~]# gpasswd market -d ky29
正在将用户“ky29”从“market”组中删除
[root@localhost ~]# tail -1 /etc/group
ky29:x:2002:
-M 定义组成员列表
[root@localhost ~]# gpasswd market -M a,b,c
[root@localhost ~]# tail /etc/group
market:x:1100:a,b,c
修改组账号的属性 groupmod
命令格式:groupmod [选项]... 组名
groupmod -g GID 组名,修改用户组的GID
[root@localhost ~]# groupmod -g 1002 a
[root@localhost ~]# cat /etc/group
a:x:1002:
groupmod -n 新名称 当前组名,修改用户组的名称
[root@localhost ~]# groupmod -n work a
[root@localhost ~]# cat /etc/group | grep 1002
work:x:1002:
删除组账号 groupdel
命令格式:groupdel 组账号名
[root@localhost ~]# tail /etc/group
stapdev:x:158:
tcpdump:x:72:
zyc:x:1000:zyc
test:x:2000:
user2:x:2001:
market:x:1100:a,b,c
ky29:x:2002:
b:x:2004:
c:x:2005:
work:x:1002:
[root@localhost ~]# groupdel market
[root@localhost ~]# tail /etc/group
stapsys:x:157:
stapdev:x:158:
tcpdump:x:72:
zyc:x:1000:zyc
test:x:2000:
user2:x:2001:
ky29:x:2002:
b:x:2004:
c:x:2005:
work:x:1002:
查询用户所属的组 groups
命令格式:groups [用户名]
[root@localhost ~]# groups ky29
ky29 : ky29
查询用户身份标识 id
命令格式:id [用户名]
[root@localhost ~]# id zyc
uid=1000(zyc) gid=1000(zyc) 组=1000(zyc)
查询用户账号的详细信息 finger
需要安装//yum install finger -y
命令格式: finger [用户名]
[root@localhost ~]# finger zyc
Login: zyc Name: zyc
Directory: /home/zyc Shell: /bin/bash
Never logged in.
No mail.
No Plan.
查询已登录到主机的用户信息
w、who、users 命令
[root@localhost ~]# w //显示当前登录系统的用户信息以及他们的进程
18:53:02 up 1:58, 3 users, load average: 0.00, 0.01, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root :0 :0 264月23 ?xdm? 41.55s 0.10s /usr/libexec/gnome-s
root pts/0 192.168.88.1 264月23 8days 0.02s 0.02s -bash
root pts/1 192.168.88.1 17:05 6.00s 0.16s 0.02s w
[root@localhost ~]# who //显示当前登录系统的用户信息
root :0 2023-04-26 14:11 (:0)
root pts/0 2023-04-26 14:12 (192.168.88.1)
root pts/1 2023-05-04 17:05 (192.168.88.1)
[root@localhost ~]# users //查询最近三次登录的用户信息
root root root