Linux命令(二十六) 用户管理命令

时间:2021-10-05 10:00:26

一、添加用户 useradd

useradd 命令用于创建新用户,格式为useradd [选项] 用户名

可以使用 useradd 命令创建用户帐户,使用该命令创建账户时,默认的用户目录在 /home 目录下,默认的shell为 /bin/bash ,而且会默认创建一个与该用户同名的基本用户组。

useradd命令支持丰富的参数,常用参数如下所示:

-d 指定用户家目录
-e 账户到期时间,格式为 YYYY-MM-DD.
-u 指定用户的UID
-g 指定一个初始的基本用户组
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户默认的shell解释器

示例: 创建一个普通用户,指定其家目录,UID 和shell解释器。

[root@localhost disk2]# useradd -d /home/user1 -u 1002 -s /sbin/bash  user1

二、更改用户 usermod

如果对已有的用户信息进行修改,可以使用 usermod,使用该目录可以修改用户的主目录和其它信息。

usermod 常用参数如下:

-d 修改用户登录时的主目录,使用该参数时对应的用户目录不会自己建立,需要手动建立
-e 修改账号的有效期
-f 修改在密码过期后多少天关闭该账号
-g 修改用户所属的用户组
-G 修改用户所属的附加组
-l 修改用户账户名称
-L 锁定用户密码使密码无效
-s 修改用户登录后所使用的shell
-u 修改用户ID
-U 解除密码锁定

usermod使用实例:

修改用户 user1 的家目录为 /home/test

# 查看 user1 的家目录为 /home/user1
[root@localhost disk2]# cat /etc/passwd |grep user1
user1:x:1002:1002::/home/user1:/sbin/nologin
# 将user1的家目录修改为 /home/test
[root@localhost disk2]# usermod -d /home/test/ user1
# 查看是否修改成功
[root@localhost disk2]# cat /etc/passwd |grep user1
user1:x:1002:1002::/home/test/:/sbin/nologin
[root@localhost disk2]#

将用户 user1 修改 为 user2:

# 查看 user1
[root@localhost disk2]# cat /etc/passwd |grep user1
user1:x:1002:1002::/home/test/:/sbin/nologin
# 将 user1 修改为 user2
[root@localhost disk2]# usermod -l user2 user1
# 查看是否修改成功
[root@localhost disk2]# cat /etc/passwd |grep user2
user2:x:1002:1002::/home/test/:/sbin/nologin
[root@localhost disk2]#

三、删除用户 userdel

userdel 命令用于删除用户,格式为 userdel [选项] 用户名

如果我们确认某个用户后面不会再使用,就可以通过 userdel 命令删除该用户的所有信息。在执行删除操作时,该用户的用户目录会默认保留下来,可以使用 -r 参数将其删除。

userdel 参数如下所示:

-f 强制删除用户
-r 删除用户时同时删除用户目录

userdel 示例

删除用户 user2 及其用户目录

[root@localhost disk2]# userdel -r user2

四、更改或设置用户密码 passwd

passwd 命令用于修改用户密码、过期时间、认证信息等,格式为passwd [选项] [用户名]

普通用户只能使用passwd命令修改自己的密码,而 root 用户可以修改所有用户的密码而不用验证旧密码。

passwd 常用参数如下:

-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
-d 使该用户可用空密码登录系统
-e 强制用户再下次登录时修改密码
-S 显示用户的密码是否被锁定,以及密码所使用的加密算法名称

passwd 使用示例:

# 修改用户 user2 的密码
[root@localhost disk2]# passwd user2
Changing password for user user2.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.
[root@localhost disk2]#

五、切换用户 su

su 命令用于在不同的用户之间切换。超级用户 root 切换到其它用户不需要输入密码,而普通用户间切换或者切换到超级用户 是需要验证密码。su 命令不加任何参数时默认切换到 root 用户。

su 命令常用参数:

-l 登录并改变到所切换的用户环境
-c 执行一个命令,然后退出所切换到的用户环境

su 命令使用示例:

切换到 root 用户,不改变用户环境:

[hk@localhost ~]$ pwd
/home/hk
[hk@localhost ~]$ su root
Password:
[root@localhost hk]# pwd
/home/hk
[root@localhost hk]#

切换到 root 用户,并改变用户环境:

[hk@localhost ~]$ pwd
/home/hk
[hk@localhost ~]$ su - root
Password:
Last login: Sun Jun 17 23:29:08 CST 2018 on pts/0
[root@localhost ~]# pwd
/root
[root@localhost ~]#