乐趣区

Linux中用户管理

账户和组
用户和组的简介
Linux 系统对账号与组的管理是通过 ID 号来实现的。用户 ID 号叫 UID,组 ID 号叫 GID。其中:

UID= 0 是超级管理员,也就是 root 账号
UID=1~499 被系统所预留
个人创建的用户的 UID 会从 500 开始算起

Linux 操作系统中的组分为基本组和附加组,一个用户同一时刻只能加入同一个基本组,但可以同时加入多个附加组。默认在创建用户时,系统会自动创建同名的组,并设置用户加入该组。
查看用户 ID 的命令是:id 用法:id 用户名
创建用户和组
创建用户命令:useradd 常用选项:

-c 设置账号描述信息,一般为账号全称

-d 设置用户家目录,默认 /home/ 用户名

-g 设置账户基本组

-G 设置账户附加组,多个附加组之间用逗号隔开

-s 设置账户登录 Shell,默认为 bash

-M 不创建用户家目录,一般与 - s 连用

-u 指定账号 UID

示例 1:创建普通用户 mori, 以及对应的组
$ useradd mori
$ id mori
uid=1003(mori) gid=1003(mori) 组 =1003(mori)
示例 2:创建普通用户 syushin,账户家目录为 /home/syushin, 账户基本组为 root,附加组为 mori
$ useradd -d /home/syushin -g root -G mori syushin
$ id syushin
uid=1004(syushin) gid=0(root) 组 =0(root),1003(mori)

示例 3:创建无法登录系统,且没有家目录的用户 user1
$ useradd -s /sbin/nologin -M user1

创建组命令:groupadd 选项:-g 设置组 ID 号示例:
$ groupadd laowan #创建组 laowan
$ groupadd -g 2000 xiaoming #创建 xiaoming 组, 组 ID 为 2000 的

修改用户和组
修改用户密码命令:passwd 常用选项:

-l 锁定账户,仅 root 用户可用

–stdin 从文件或者管道读取密码

-u 解锁账户

- d 快速清空用户密码,仅 root 可用

示例:
$ passwd mori
更改用户 mori 的密码。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
$ echo“1234qwer”| passwd –stdin mori #通过管道指定用户 mori 的密码
$ passwd -l mori #锁定用户 mori
$ passwd -u mori #解锁用户 mori

修改用户信息命令:usermod 选项:

-d 修改用户家目录

-e 修改用户失效日期

-g 修改用户所属基本组

-G 修改用户所属附加组

-s 修改用户登录 shell

-u 修改用户 UID

示例:
$ usermod -d /home/harucha haru
$ usermod -e 2019-2-28 haru # 设置 haru 用户失效日期为 2019-2-28
$ usermod -g root haru
$ usermod -s /bin/bash haru
$ usermod -u 1314 haru #修改 haru 用户的 ID 为 1314
删除用户和组
删除用户命令:userdel 选项:-r 删除账户及相关文件示例:
$ userdel mori
$ userdel -r syushin # 删除组 syushin,并删除 /home 下的 syushin 目录
删除组命令:groupdel 示例:groupdel mori
与用户相关的配置文件
$ ll /etc/passwd /etc/shadow /etc/group /etc//gshadow
-rw-r–r–. 1 root root 718 2 月 28 14:44 /etc/group
———-. 1 root root 573 2 月 28 14:44 /etc//gshadow
-rw-r–r–. 1 root root 1684 2 月 28 14:44 /etc/passwd
———-. 1 root root 1081 2 月 28 14:55 /etc/shadow
/etc/passwd 配置文件详解
$ head -1 /etc/passwd
root:x:0:0:root:/root:/bin/bash # 一一对应的说明如下
用户名: 密码占位符: 账户 UID: 组 GID: 附加信息: 用户家目录: 用户登录的 shell

常见面试题创建 3 个用户 user1,user2,user3,并设置密码为 123456,禁止使用 for,while 循环。
$ echo user{1..3}|xargs -n1 -exec useradd # 创建用户
$ echo “123456” | passwd –stdin user1 user2 user3 # 设置密码

退出移动版