我有一个名为 的目录/home/user1
。在这个目录下,是一个反恐精英游戏服务器,要求该文件夹及里面所有文件的权限都是user1
rwe(读、写、执行)。
我想做的是设置 debian 的 SFTP 服务器,并将 user1 监狱到 user1 的目录。
然而,游戏服务器的权限要求却受到了阻碍。
vsftpd 和 sshd 都声明必须在要监禁的目录上设置 root 权限。因此,当我将目录/home/user1
及其包含的所有文件设置为 root 所有权时,游戏服务器不会启动。但是,当我将/home/user1
目录及其中的所有文件设置为user1
rwe 权限时,sftpd 和 sshd 服务器在 filezilla 中断开连接,并显示以下消息:
Response: 500 OOPS: vsftpd: refusing to run with writable root inside chroot()
错误:严重错误:无法连接到服务器
现在我可以user1
在 ftp 帐户中授予 chroot 权限,但随后它们可以自由地漫游服务器,这是不可取的。
我需要做的是user1
在 vsftpd 或 sshd 中授予 rwe 权限,这些权限被监禁到/home/user1
目录中。
另外我也想admin
被囚禁在该home
目录中,但能够以 rwe 权限管理/home/user1
, /home/user2
,/home/user3
目录中的游戏服务器。
答案1
首先,执行权限有一个 x 位,而不是 e 位;-)
看起来不可能创建一个只能由 root 写入的目录(根据 chroot 监狱的要求),同时也可由将在该目录中运行进程的用户写入(根据游戏服务器的要求) )。因此,根据您的问题陈述,您想要做的事情是不可能的。
但是,您可以执行以下操作:
drwxr-xr-x 5 root root /home/jaildir
drwxr-xr-x 5 user1 user1 /home/jaildir/user1
将 的主目录设置user1
为/home/jaildir/user1
,将 vsftpd 中的 chroot Jail 设置为/home/jaildir
。此方法的唯一缺点是 ftp 根目录将比实际“有趣”内容高一级。