Linux创建完整用户

创建用户

  • 创建用户
sudo useradd -m -s /bin/bash myuser
  • 设置用户密码
sudo passwd myuser

给用户赋予sudo权限

  • 添加用户到 sudo 组
# CentOS
sudo usermod -aG wheel myuser

# Debian
sudo usermod -aG sudo myuser

wheel组的用 配置无密码 sudo 权限

注意这是放行所有wheel组的用户, 无密码执行sudo

sudo visudo

找到这一行 %wheel ALL=(ALL) NOPASSWD: ALL 将前面的#去掉.

指定用户,配置无密码执行sudo权限

新增一行

# 指定用户不需要输入密码,执行sudo, 比如sudo -i 或者 sudo su - root
myuser ALL=(ALL) NOPASSWD:ALL

# 指定用户不需要输入密码,仅限于执行/bin/chmod
# myuser ALL=(ALL) NOPASSWD: /bin/chmod

ssh-keygen 生成最新的密钥对

ssh-keygen 生成最新的密钥对,通常建议使用 Ed25519 算法,因为它安全、速度快且体积小,是当前推荐的现代密钥类型

ssh-keygen -t ed25519 -C "your_email@example.com"

其他辅助性命令

  • 查看所有用户
cat /etc/passwd
  • 查看用户组
cat /etc/group
  • 查看用户的权限和组
id myuser

会输出类似于以下的信息

uid=1001(myuser) gid=1001(myuser) groups=1001(myuser),10(wheel)
  • 查看所有组
getent passwd
  • 使用 groups 命令查看当前用户的组
groups
  • 使用 getent 命令检查特定组
getent group docker
  • 将用户添加到 docker 组
sudo usermod -aG docker myuser

添加后, 执行sudo docker 命令可能提示无权限. 解决办法有两种:

  • 完全退出并重新登录
  • newgrp docker

删除一个用户

sudo userdel -r xxxx

禁用root执行ssh

谨慎操作,操作前至少要保证有1个非root用户可以正常ssh登录

vim /etc/ssh/sshd_config

末尾追加

# 只允许 myuser 用户登录,其他所有用户都会被拒绝
AllowUsers myuser

重启sshd

sudo systemctl restart sshd

此时再用root登录就会看到

2025-08-09T07:32:11.673498+08:00 xxxx sshd[1390595]: User root from 111.119.221.153 not allowed because not listed in AllowUsers