Linux 用户管理
账户管理
useradd
- 通常用于基于
sysvinit
的系统,如早期的 Linux 发行版(比如 CentOS 6 及之前版本)。 - 它是一个较低级别的命令,通常在脚本中使用,因为它提供了更多的选项和灵活性。
- 默认情况下可能不会为你创建主目录或设置密码,它依赖于系统配置文件(如
/etc/default/useradd
和/etc/login.defs
)来定义其行为。 - 你通常需要手动设置密码,使用
passwd
命令。
adduser
- 通常用于基于
systemd
的系统,如较新的 Linux 发行版(比如 Ubuntu、Debian、CentOS 7 及之后版本)。 - 它是一个较高级别的命令,提供了交互式的方式来添加用户,它会询问一些细节,比如用户的全名、房间号码、电话等。
- 默认情况下会创建主目录,并允许你设置密码,它通常更加用户友好。
- 在某些系统中,
adduser
可能是useradd
的一个符号链接或包装器,提供更友好的界面。
用户管理
# 创建用户,指定 GID,自动创建主目录,提示设置密码。指定组存在则加入,不存在则创建。
adduser --gid GID username
# 创建用户,详细配置 '-m' 自动创建主目录,单独设置密码。指定组必须存在。
useradd -g groupname -d /home/username -m username -s /bin/bash
# 修改用户密码
passwd username
# 将用户添加到指定组作为附加组(推荐使用)
usermod -aG groupname username
# 将用户添加到指定组作为附加组
gpasswd -a username groupname
# 将用户的基本组修改为指定组
usermod -g groupname username
# 删除用户
userdel username
# 删除用户及其家目录
userdel -r username
# 查看账户期限
chage -l username
# 设置账户过期时间
chage -E "2022-10-01" username
用户组管理
# 创建一个新用户组,由系统自动分配 GID
groupadd groupname
# 创建一个新用户组,指定 GID
groupadd -g GID groupname
# 删除组中用户
gpasswd -d username groupname
# 删除用户组
groupdel groupname
# 更新用户组
newgrp groupname
赋予 sudo 权限
给普通用户添加 sudo 权限,修改 /etc/sudoers 文件 (该文件默认为只读)
在 root ALL=(ALL)ALL
这一行下面,增加一行 <用户名> ALL=(ALL) ALL
,并保存。
修改已存在的用户名
需求:将用户名 hadoop106 修改为 hadoop
其中 hadoop106 必须登出(注销),切换为 root 用户进行修改。 如果不登出 hadoop106, 那么在 hadoop106 中就会存在没有关闭的进程就会导致修改失败的问题。
-
切换为 root 用户
su root
-
修改用户名及根目录
vim /etc/passwd
将 hadoop106 修改为 hadoop(一般在文件底部)
图1 -
修改用户组
vim /etc/group
将 hadoop106 修改为 hadoop(一般在文件底部)
图2 -
修改 /etc/shadow 文件
vim /etc/shadow
将 hadoop106 修改为 hadoop
图3 -
修改用户的根目录
mv /home/hadoop106/ /home/hadoop
-
登录测试
su hadoop