一聚教程网:一个值得你收藏的教程网站

热门教程

服务器多用户创建与权限隔离如何做

时间:2026-08-13 08:21:48 编辑:袖梨 来源:一聚教程网

核心三点是:每个用户有独立家目录、目录权限设为700、用户间默认互不可见;用adduser而非useradd确保自动配置完整;家目录权限700是隔离前提,因Linux仅凭x权限判断能否进入目录。

服务器多用户创建与权限隔离,核心就三点:每个用户有独立家目录、目录权限设为700、用户间默认互不可见。不靠复杂工具,Linux原生命令就能做到,关键是别跳过权限设置这一步。

用户创建要选对命令

adduser,别用 useradd(除非你清楚每一步要补什么):

  1. adduser 是交互式命令,自动创建 /home/用户名 目录、设好 shell(/bin/bash)、建同名用户组、提示设密码
  2. useradd 默认不建家目录,也不配 shell,漏掉 -m 和 -s /bin/bash 就会导致用户无法正常登录
  3. 如果统一把家目录放在 /repository 下(比如对接 NAS),可用:

    sudo useradd -m -d /repository/username -s /bin/bash username

家目录权限必须是 700

这是隔离生效的底层前提。Linux 判断“能否进入一个目录”,只看 x(执行)权限:

  1. drwx------(即 700)表示只有所有者能 cd 进去、读写文件
  2. 哪怕目录里放了别人可读的文件,只要目录本身没 o+x 或 g+x,其他人连 ls 都执行不了
  3. 创建完用户后立即执行:

    sudo chmod 700 /home/username(或 /repository/username)

SSH 登录推荐密钥,禁用密码

密码易泄露、难管理,密钥登录更安全也更方便:

  1. 管理员在服务器上用 sudo -u username mkdir -p ~/.ssh && chmod 700 ~/.ssh
  2. 把用户提供的公钥(id_rsa.pub 内容)写入 ~/.ssh/authorized_keys,再执行 chmod 600 ~/.ssh/authorized_keys
  3. 编辑 /etc/ssh/sshd_config,确认包含:

    PubkeyAuthentication yes

    PasswordAuthentication no

    然后重启 SSH:sudo systemctl restart sshd

共享目录要用组权限,不是开放 777

真要多人协作,别改家目录权限,而是建独立共享目录 + 用户组:

  1. 新建组:sudo groupadd project-team
  2. 把相关用户加进去:sudo usermod -aG project-team alicesudo usermod -aG project-team bob
  3. 建共享目录:sudo mkdir /shared/project,设属组和权限:

    sudo chown :project-team /shared/project

    sudo chmod 2775 /shared/project(2 表示 setgid,确保新文件继承组)

热门栏目