限制用户对 www-data 组拥有的 www 文件夹执行 SFTP

限制用户对 www-data 组拥有的 www 文件夹执行 SFTP

我想仅在 /var/www/ 目录(包括所有子目录)中创建一个具有读/写权限的新用户。 /var/www/ 属于一个名为 www-data 的组织。

我想最好的方法是使用 SFTP。我已经以 root 身份拥有 SSH 访问权限。有关限制 SFTP 访问的许多其他答案都与 /home/ 目录相关,并且需要将目录的所有权更改为 root,我不知道在 www 目录上也这样做是否是一个好主意。

答案1

您可以创建一个用户,将其主目录设置为 /var/www/ 并将其添加到 www-data 组。如果您希望他将创建的文件属于 www-data 组,则必须将“s”位添加到 www 目录的 mod 中。

# useradd -m /var/www -g www-data
# chmod g+s /var/www

或者我误解了这个问题?也许您希望该用户无法读取任何其他目录?在这种情况下,你可以chroot他: http://how-to.linuxcareer.com/how-to-automatically-chroot-jail-selected-ssh-user-logins

如果您想使用 SFTP:https://bensmann.no/restrict-sftp-users-to-home-folder/

s 位:http://en.wikipedia.org/wiki/Chmod#Special_modes

http://en.wikipedia.org/wiki/Setuid

答案2

更好的方法是使用 sshd 和 sftp 子系统的 chroot 功能。

给定一个DocumentRoot设置/var/www-sites/example.com/html

创建一个组,命名为“chrootwebusers”

root@hostname:~# addgroup chrootwebusers

添加用户并设置他们的主目录和一些其他选项 -

useradd -g chrootwebusers -d /var/www-sites/example.com -s /bin/false theusername
mkdir -p /var/www-sites/example.com/html
chown theusername.www-data /var/www-sites/example.com
chmod -R 750 /var/www-sites/example.com
chmod g+s /var/www-sites/example.com
passwd theusername

theusername这将在您的组中添加以组成员身份命名的用户chrootwebusers,其主目录为 /var/www-sites/example.com 并对其下面的所有内容具有读/写访问权限。

chmod g+s /var/www-sites/example.com作品的所有者为 www-data 组。在目录上使用该setgid位可以使在其中创建的任何新文件/目录保持与该example.com目录相同的组所有权。这意味着网络服务器运行的用户始终能够读取文件(请注意这一点!

接下来,编辑该/etc/ssh/ssdh_config文件。细化指定 sftp 子系统的行并将其注释掉 -

#Subsystem sftp /usr/lib/openssh/sftp-server

并添加对内部到 sshd sftp 子系统的引用

Subsystem sftp internal-sftp

最后在文件底部添加

Match Group chrootwebusers
    ChrootDirectory /var/www-sites
    ForceCommand internal-sftp -u 0027

那么...这一切是如何运作的?内部 sftp子系统sshd等待具有组成员身份的人员登录chrootwebusers。当这种情况发生时,它会 chroot 他们,这样你所看到的就像/var/www-sites他们所看到的一样/。他们将能够看到 example.com 目录,并更改为该目录并读取/写入其中和目录中的文件DocumentRoot-/var/www-sites/example.com/html但他们会将其全部视为/example.com/html.该-u 0027选项设置 umask,以便创建的任何新文件/目录都将具有 640/750 权限,而setgid我们之前使用的技巧将使拥有用户theusername和拥有组成为用户www-data(记住有关网络服务器能够读取所有文件/目录的信息)文件)

相关内容