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