搬瓦工VPS默认提供 root 账户,但长期使用 root 操作存在安全隐患。正确的做法是创建普通用户进行日常操作,需要管理员权限时通过 sudo 提权。本文详细介绍用户创建、用户组管理、文件权限设置和 sudo 配置。
创建用户:
# 创建用户并自动创建家目录 useradd -m -s /bin/bash username # 设置密码 passwd username
-m 表示创建家目录(/home/username),-s 指定登录Shell。
用户管理常用命令:
| 命令 | 说明 | 示例 |
|---|---|---|
useradd | 创建用户 | useradd -m -s /bin/bash john |
userdel | 删除用户 | userdel -r john (-r同时删除家目录) |
usermod | 修改用户属性 | usermod -aG sudo john 添加到sudo组 |
passwd | 设置/修改密码 | passwd john |
id | 查看用户ID信息 | id john |
whoami | 查看当前用户 | whoami |
su | 切换用户 | su - john (-表示加载用户环境) |
w | 查看当前登录用户 | w |
last | 查看登录历史 | last -10 最近10条记录 |
修改用户属性:
# 修改用户名 usermod -l newname oldname # 修改家目录 usermod -d /home/newdir -m username # 修改默认Shell usermod -s /bin/zsh username # 锁定用户(禁止登录) usermod -L username # 解锁用户 usermod -U username
Linux通过用户组来批量管理权限。一个用户可以属于多个组。
| 命令 | 说明 | 示例 |
|---|---|---|
groupadd | 创建用户组 | groupadd webadmin |
groupdel | 删除用户组 | groupdel webadmin |
groups | 查看用户所属组 | groups john |
usermod -aG | 将用户添加到组 | usermod -aG webadmin john |
gpasswd -d | 从组中移除用户 | gpasswd -d john webadmin |
getent group | 查看组成员 | getent group webadmin |
注意 usermod -aG 中的 -a 表示追加(append),不加 -a 会覆盖用户的所有附加组。
Linux文件权限分为三组:所有者(owner)、所属组(group)、其他用户(others),每组有读(r=4)、写(w=2)、执行(x=1)三种权限。
查看权限:
ls -la /var/www/ # 输出示例: # drwxr-xr-x 2 www www 4096 Jan 1 00:00 html # -rw-r--r-- 1 www www 612 Jan 1 00:00 index.html
权限字符串 rwxr-xr-x 含义:所有者可读写执行,组用户可读和执行,其他用户可读和执行。
数字权限对照:
| 数字 | 权限 | 说明 |
|---|---|---|
| 7 | rwx | 读 + 写 + 执行 |
| 6 | rw- | 读 + 写 |
| 5 | r-x | 读 + 执行 |
| 4 | r-- | 只读 |
| 0 | --- | 无权限 |
常用权限设置:
| 命令 | 说明 |
|---|---|
chmod 755 file | 所有者全权限,组和其他可读执行(适用于目录和脚本) |
chmod 644 file | 所有者可读写,其他只读(适用于普通文件) |
chmod 600 file | 仅所有者可读写(适用于密钥等敏感文件) |
chmod +x script.sh | 给所有用户添加执行权限 |
chmod -R 755 /var/www | 递归设置目录及其内容 |
符号模式:
# u=所有者, g=组, o=其他, a=全部 chmod u+x file # 给所有者添加执行权限 chmod g-w file # 去掉组的写权限 chmod o=r file # 其他用户只有读权限 chmod a+r file # 所有人添加读权限
chown 用于修改文件的所有者和所属组。
| 命令 | 说明 |
|---|---|
chown user file | 修改所有者 |
chown user:group file | 同时修改所有者和组 |
chown :group file | 仅修改所属组 |
chown -R user:group dir/ | 递归修改目录 |
网站目录权限设置示例:
# 将网站目录所有者设为www用户
chown -R www:www /var/www/html
# 目录权限755,文件权限644
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
sudo 允许普通用户以 root 身份执行特定命令,比直接使用 root 登录更安全。
方法一:将用户添加到 sudo/wheel 组
# Ubuntu/Debian(sudo 组) usermod -aG sudo username # CentOS(wheel 组) usermod -aG wheel username
方法二:编辑 sudoers 文件(精细控制)
# 使用 visudo 编辑(会自动检查语法) visudo
在文件中添加规则:
# 允许用户执行所有命令(需要输入密码) john ALL=(ALL:ALL) ALL # 允许用户免密码执行所有命令 john ALL=(ALL) NOPASSWD:ALL # 允许用户只执行特定命令 john ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/systemctl restart mysql
注意:务必使用 visudo 编辑 sudoers 文件,直接用 vim 编辑如果语法错误可能导致 sudo 不可用。
/etc/ssh/sshd_config,设置 PermitRootLogin nocat /etc/passwd 查看系统用户,删除不再使用的账户Tip: 购买搬瓦工VPS时使用优惠码 NODESEEK2026 可享 6.77% 折扣,详见优惠码使用教程。更多教程请查看新手教程。