### 1、用户登录信息查看 ```shell [root@tencentos ~]# whoami root ``` ```shell [root@tencentos ~]# who root pts/0 2023-11-25 19:37 (111.201.149.21) ``` ```shell [root@tencentos ~]# w 00:25:21 up 17:30, 1 user, load average: 0.00, 0.00, 0.00 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 111.201.149.21 19:37 0.00s 0.20s 0.00s w ``` ## 2、用户 Linux中每隔用户是通过User ID(UID)来唯一标识的 - 管理员:root,0(因为UID是0,所以root是管理员) - 普通用户:1-60000 UID自动分配 - 系统用户:1-999 UID,对守护进程获取资源进行权限分配 - 登录用户:1000+,给用户进行交互式登录使用 ** id命令查看用户的UID,GID等信息** ## 3、用户组 Linux中可以将一个或者多个用户加入用户组中,用户组是通过Group ID(GID)来唯一标识的,GID 同UID相同 ## 4、用户及用户组配置文件 /etc/passwd:用户机器属性信息(名称、UID、主组ID等) /etc/shadow:用户密码及其相关属性 /etc/group:组及其属性信息 /etc/gshadow:组密码机器相关属性 ##### 4.1 passwd文件格式 - login name:用户名(root) - passwd:密码(X) - UID - GID - GECOS:注释 - home directory:用户家目录 - shell:用户默认使用的shell ##### 4.2 shadow文件格式 - 登录名 - 用户密码 - 从1970年1月1日起到密码最近一次被修改的时间 - 密码再过几天可以变更(0表示随时可变) - 密码再过几天必须变更(99999表示永不过期) - 密码过期前几天系统提醒用户(默认为一周) - 密码过期几天后账号会被锁定 ##### 4.3 group文件格式 - 群组名称 - 群组密码 - GID - 以当前组为附加组的用户列表,多个用户间用逗号分隔 ## 5、用户管理命令 - useradd - usermod - userdel ##### 5.1 用户创建 **useradd格式:** `useradd [options] LOGIN` **常见选项:** - -u:UID - -g:GID - -c:注释 - -d:家目录 - -s:shell,可用列表在/etc/shells,特殊shell /sbin/nologin - -G:附加组 - -r:创建系统用户 - -M:不创建家目录 ##### 5.2 用户属性修改 **usermod格式:** `usermod [option] login` **常见选项:** - -u:新UID - -g:新GID - -G:新附加组 - -s:新shell - -c:新注释 - -d:新家目录 - -l:新名字 - -L:锁定用户 - -U:解锁用户 - -e:YYYY-MM-DD,指定用户账号过期日期 - -f:设置宽限期 ##### 5.3 删除用户 **userdel格式:** `和上面一样,不多bb` **常见选项:** - -f:强制 - -r:删除家目录和邮箱 ##### 5.4 用户身份切换 **su 格式:** `su [option] [-] user` **-的作用:** `su ubuntu`非登录式切换,不会读取目标用户的配置文件,不改变当前工作目录 `su - ubuntu` 登录式切换,读取配置文件,改变当前工作目录 **范例:切换到其他用户执行命令** ```shell su - root -c 'cat /etc/passwd' ``` ##### 5.5 设置用户密码 passwd格式和其他一样 **常用选项:** - -d:删除指定用户密码 - -l:锁定用户 - -u:解锁 - -e:强制用户下次登录的时候修改密码 - -f:强制操作 ## 6、用户组管理命令 ##### 6.1 创建用户组 **groupadd常用选项:** - -g GID:指定GID ##### 6.2 修改用户组 groupmod常用选项: - -n:新名字 - -g GID:新GID ##### 6.3 删除组 **groupdel常见选项:** - -f:强制删除 ##### 6.4 管理附加组 groupmems常见选项 - -a:指定用户加入组 - -d:从组中删除用户 - -p:从组中清除所有成员 - -l:显示组成员列表