

/etc/passwd文件内(包括root用户),用户密码信息保存在/etc/shadow文件内;所有用户组信息保存在/etc/group文件内,用户组密码信息保存在/etc/gshadow文件内。这四个文件非常重要,不要轻易做变动。| 文件 | 作用 |
|---|---|
| /etc/passwd | 用户帐户信息 |
| /etc/shadow | 帐户密码信息 |
| /etc/group | 组帐户信息 |
| /etc/gshadow | 组密码信息 |
| /etc/login.defs | 设置用户帐号限制的文件,但配置对root用户无效 |

howardsu howard,切换到howard普通用户
#变成$符号exit命令,一个是执行su rootsu root,需要输入密码
exit命令,返回到最开始的root用户环境。
执行命令:env,查看环境变量

切换到howard普通用户,再查看环境变量

退出howard用户

cat /etc/passwd
/etc/passwd文件是Linux中的重要系统文件之一,主要作用是存储系统用户的信息。文件中的每一行表示一个用户信息,有多少行就表示多少个用户信息。仔细观察其中的一行,可以清晰地看出,各内容之间通过“:”号划分成了多个字段,共7部分,这7部分分别定义了用户的不同属性。| howard | :x | :1000 | :1000 | :howard | :/home/howard | :/bin/bash |
|---|---|---|---|---|---|---|
| 用户名称 | :用户密码 | :用户UID | :用户组GID | :用户说明 | :用户家目录 | :shell解释器 |
用户id在1000以前的都是系统内置用户,包括不能登录的伪用户(/sbin/nologin)。
root用户的用户id是0,bin用户的用户id是1,daemon用户的用户id是2……
执行命令:cat /etc/passwd | head -3

说明:|是管道命令,加上head -3,表示显示前3条记录
新增用户的id必然大于或等于1000
howard用户的用户id是1000,不是系统内置用户,而是新增用户

说明:|是管道命令,加上tail -3,表示显示末尾3条记录
cat /etc/passwd | grep nologin
|是 管道命令,grep是抓取命令 (可使用通配符*),合在一起就是抓取前一个命令的结果中满足条件的信息。
cat /etc/passwd | grep howard
| 参数 | 说明 |
|---|---|
| -g | 主组(group) |
| -G | 附加组(Group) |
| -d | 主目录(directory) |
| -s | 指定用户登录后使用的shell,默认值是/bin/bash |
| -c | 注释(comment) |
| -u | 用户ID(user) |
| -p | 密码(password) |

/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件/etc/shadow,/etc/group等。创建用户mike,主目录为/home/mike,用户id为1010,密码为12345,注释my workmate
执行命令:useradd -d /home/mike -u 1010 -p 12345 -c 'my workmate' mike

在四个文件中查看刚才创建的新用户信息

查看mike用户的主目录

usermod命令。| 参数 | 说明 |
|---|---|
| -a | –append ##把用户追加到某些组中,仅与-G选项一起使用 |
| -c | –comment ##修改/etc/passwd文件第五段comment |
| -d | –home ##修改用户的家目录通常和-m选项一起使用 |
| -e | –expiredate ##指定用户帐号禁用的日期,格式YY-MM-DD |
| -f | –inactive ##用户密码过期多少天后采用就禁用该帐号,0表示密码已过期就禁用帐号,-1表示禁用此功能,默认值是-1 |
| -g | –gid ##修改用户的gid,改组一定存在 |
| -G | –groups ##把用户追加到某些组中,仅与-a选项一起使用 |
| -l | –login ##修改用户的登录名称 |
| -L | –lock ##锁定用户的密码 |
| -m | –move-home ##修改用户的家目录通常和-d选项一起使用 |
| -s | –shell ##修改用户的shell |
| -u | –uid ##修改用户的uid,该uid必须唯一 |
| -U | –unlock ##解锁用户的密码 |
修改用户mike,主目录改为/home/dear-mike,密码改为903213,注释改为my friend
执行命令:usermod -m -d /home/dear-mike -p 903213 -c 'my friend' mike (注意一定要加-m,否则主目录名不会被修改)

在/etc/passwd和etc/shadow文件里查看更改后的用户信息

可以看到,mike用户的主目录、注释和密码都被修改了。
查看mike用户的主目录

| 选项 | 说明 |
|---|---|
| -f | (forcible) 强制删除用户,即使用户当前已登录 |
| -r | (recursive) 删除用户的同时,删除与用户相关的所有文件 |
执行命令:userdel -rf mike

查看是否还有mike用户

可以看到,四个文件里都没有mike的踪迹,该用户被彻底删除了。
再次执行删除mike的命令,会提示用户“mike”不存在。

因为是彻底删除,mike用户的主目录也被删除掉了的,/home目录里没有dear-mike目录

为了后面操作需要,创建mike用户,执行命令:useradd -d /home/mike -u 1010 -p 903213 -c 'my friend' mike

| 操作 | 语法格式 |
|---|---|
| 添加用户组 | groupadd -g 用户组id 用户组名 |
| 修改用户组 | groupmod -g 用户组id 用户组名 |
| 删除用户组 | groupdel 用户组名 |
| 操作 | 语法格式 |
|---|---|
| 用户组里添加用户 | useradd -G 用户组 用户名 |
| 用户组里修改用户 | usermod -G 用户组 用户名 usermod -a -G 用户组 用户名 |
| 用户组里删除用户 | gpasswd -d 用户名 用户组 |
/etc/group文件的更新。howard(看看你当时创建的普通用户名),前面我们又利用命令创建了一个普通用户mike。
创建一个用户组lzy,组id是666

将已有用户mike添加到该用户组

添加用户alice,密码123456,主目录/home/alice,加入lzy组

查看组lzy的情况,目前该组有两个用户:mike和alice

查看/home目录下的三个用户目录

luzhou,组编号777
mike从lzy组迁移到luzhou组

smith,密码111111,加入lzy组和luzhou组

1012?1010,然后创建alice时,没有设置用户id,那就自动编号1011,最后创建smith时,也没有设置用户id,那也是自动编号1012
lzy组的alice同时加入luzhou组,注意有两个选项参数:-a -G(说明:a - append)

mike从luzhou组里移除,执行命令:gpasswd -d mike luzhou (说明:d - delete)
luzhou,看还有没有mike用户

luzhou用户组,执行命令:groupdel luzhou
luzhou,并不会连带删除里面的用户smith和alice
luzhou用户组
ll .(.代表当前目录)
ls -a(说明:a - all)
ll /home,查看指定目录下的内容
ls -a /etc/sysconfig