我想使用我的 Web 服务器 (Debian) 作为 SFTP 服务器,为特定员工提供访问权限。 root下的dir结构如下:
/FTPUSERS/UserName_1
, ... /FTPUSERS/UserName_N
.
我的网站像往常一样在下面/opt/lampp/htdocs/SiteName
。我希望我的员工只能/FTPUSERS
通过控制台 SSH/GUI-FTPClients 使用任何方式访问该目录而不是其他目录。chroot
阻止他们的正确方法是不是导航到其他目录?或者有其他方法可以阻止它们吗?请告诉我。
关于LAMPP
.目前 /opt/lampp/htdocs/ 下的用户和组都是root and root
.在这个链接中php.net它提到目录必须在nobody and nobody
.这是权限设置的正确方法吗?
编辑:
我的操作系统是 Debian Lenny 3。目前运行的守护进程是openssh-sftpserver
.我们已阻止 ftp 访问的端口 21。但 sftp 仍在端口 22 下运行。员工可以通过sftp and ssh
终端登录。我们要阻止特定用户的控制台模式操作,只有网站管理员和root帐户必须拥有所有访问权限。我们还希望阻止用户/FTPUSERS
使用任何 GUI FTP 客户端(例如 WinSCP)在目录之外导航。
答案1
查看您的 sshd_config。
您可能想要设置 sftp 内部 chroot。
/TFTPROOT 将是您的 chroot-dir。
这比 tftp 更安全。
这是一个很好的教程:
答案2
使用带有 –d 选项的 useradd 命令,您可以添加某个用户(例如:ftpuser)及其主目录(/homedir),如下所示:
useradd ftpuser -d /homedir
passwd ftpuser
系统将提示您输入新密码:
Changing password for user <username>
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.
将此用户的 shell 编辑到 /etc/passwd 中的 /sbin/nologin:
vi /etc/passwd ftpuser:x:506:508::/homedir:/sbin/nologin
启用 chroot_list:
vi /etc/vsftpd/vsftpd.conf chroot_list_enable=YES (default follows) chroot_list_file=/etc/vsftpd.chroot_list
ftpuser
然后,您需要在文件中添加用户/etc/vsftpd.chroot_list
vi /etc/vsftpd.chroot_list ftpuser
重新启动 vsftpd:
/etc/init.d/vsftpd restart