Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须向系统管理员申请一个账号,然后以这个账号的身份进入系统。

用户账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。

每个用户都有一个唯一的用户名和密码。

用户在登录时键入正确的用户名和密码后,就能够进入系统和自己的家目录。

实现用户管理,要完成的工作主要有如下几个方面:

  • 用户的添加、删除与修改。
  • 用户密码的管理。
  • 用户组的管理。

1.1 id 查看用户信息

1)常用参数:

参数 作用
-u 只显示用户UID
-g 只显示用户GID

2)使用实例:

# id root
uid=0(root) gid=0(root) groups=0(root)

# id -u root
0

# id -g root
0

1.2 chage 查看和更改用户属性

1)常用参数:

参数 作用
-l 查看用户和密码属性
-E 设定账户过期时间

2)使用实例:

# 查看用户和密码属性
# chage -l oldboy 
Last password change                    : Mar 24, 2022 # 表示账号创建时的时间
Account expires                     : May 18, 2022     # 表示账号到期时间

# 设定账户过期时间
# chage -E "Jun 18,2022" oldboy 
# chage -l oldboy 
Account expires                     : Jun 18, 2022

1.3 useradd 创建用户

1.3.1 常用参数

参数 作用
-u 指定用户UID
-g 指定用户属于的组
-s 指定用户登录的shell
-d 指定用户的家目录
-M 创建用户时不创建家目录

1.3.2 使用实例

1)指定创建用户的UID

# useradd oldboy01 -u 10086
# id oldboy01
uid=10086(oldboy01) gid=10086(oldboy01) groups=10086(oldboy01)

2)指定创建用户属于的用户组

# useradd oldboy02 -g oldboy01
# id oldboy02
uid=10087(oldboy02) gid=10086(oldboy01) groups=10086(oldboy01)

3)指定用户登录的shell

# useradd -s /sbin/nologin oldboy03
# grep "oldboy03" /etc/passwd
oldboy03:!!:10088:10088::/home/oldboy03:/sbin/nologin

4)指定用户的家目录

# useradd -d /tmp/ oldboy04
# grep "oldboy04" /etc/passwd
oldboy04:!!:10089:10089::/tmp/:/bin/bash

5)创建用户时不创建家目录

虽然在/etc/passwd文件中显示了它的家目录,实际上是没有家目录的

# useradd -M oldboy05
# grep "oldboy05" /etc/passwd
# ls /home

![image-20220517154442263](2.07 Linux用户管理.assets/image-20220517154442263.png)

1.4 usermod 修改用户

1.4.1 常用参数

参数 作用
-d 修改用户的家目录
-g 修改用户所属的用户组
-s 修改用户登录的shell
-u 修改用户UID
-e 修改用户的有效期限

1.4.2 使用实例

1)修改用户家目录

# usermod -d /tmp/ oldboy01
# grep "oldboy01" /etc/passwd
oldboy01:!!:10086:10086::/tmp/:/bin/bash

2)修改用户所属的用户组

# usermod -g oldboy03 oldboy02
# id oldboy02
uid=10087(oldboy02) gid=10088(oldboy03) groups=10088(oldboy03)

3)修改用户登录的shell

# usermod -s /usr/bin/bash oldboy03
# grep "oldboy03" /etc/passwd
oldboy03:!!:10088:10088::/home/oldboy03:/usr/bin/bash

4)修改用户的UID

# usermod -u 10091 oldboy04
# id oldboy04
uid=10091(oldboy04) gid=10089(oldboy04) groups=10089(oldboy04)

5)修改用户的有效期限

# usermod -e "May 18,2022" oldboy 
# chage -l oldboy 
Account expires                     : May 18, 2022

1.5 userdel 删除用户

1)使用参数

参数 作用
-r 删除家目录

2)使用实例

# 正常删除(会保留家目录)
userdel oldboy

# 连家目录一起删除
userdel -r boy

1.6 groupadd 创建用户组

# groupadd oldboy
# grep "test" /etc/group

1.7 groupdel 删除用户组

# groupdel oldboy
# grep "test" /etc/group

1.8 su 切换用户

# su - oldboy  #-表示携带用的环境变量切换