设置Linux SFTP服务器权限需要考虑以下几个方面:
-
用户权限:为每个SFTP用户分配一个唯一的用户ID和组ID。确保用户只能访问他们的主目录,并且对该目录具有读、写和执行权限。你可以使用
chown
和chmod
命令来设置这些权限。例如,假设有一个用户名为
sftpuser
,主目录为/home/sftpuser
,你可以这样设置权限:sudo chown sftpuser:sftpuser /home/sftpuser sudo chmod 755 /home/sftpuser
-
目录权限:确保SFTP服务器的根目录(通常是
/var/lib/sftp
或/home/sftpuser
)具有合适的权限,以便SFTP服务器可以访问它。通常,你需要将根目录的属主设置为root
,并将属组设置为sftp
或sftpuser
的属组。例如,如果根目录是
/var/lib/sftp
,你可以这样设置权限:sudo chown root:sftp /var/lib/sftp sudo chmod 755 /var/lib/sftp
-
文件权限:确保SFTP服务器上的文件具有合适的权限,以便用户可以访问它们。通常,文件权限应设置为644(属主可读写,属组和其他用户只可读)。
例如,如果你要修改一个名为
file.txt
的文件,你可以这样设置权限:sudo chmod 644 /path/to/file.txt
-
SFTP配置:编辑SFTP服务器的配置文件(通常是
/etc/ssh/sshd_config
),确保以下设置正确:Subsystem sftp /usr/lib/openssh/sftp-server Match User sftpuser ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no X11Forwarding no
这里,
Subsystem sftp
指定了SFTP子系统的路径,Match User sftpuser
定义了要应用这些设置的特定用户,ChrootDirectory %h
将用户限制在他们的主目录中,ForceCommand internal-sftp
禁用了shell访问,AllowTcpForwarding no
和X11Forwarding no
分别禁止TCP和X11转发。 -
重启SFTP服务器:在更改配置文件后,请确保重启SFTP服务器以使更改生效。这可以通过以下命令完成:
sudo systemctl restart sshd
遵循以上步骤,你应该能够成功设置Linux SFTP服务器的权限。请注意,根据你的具体需求和环境,可能需要进行其他配置。在进行更改之前,请务必备份所有重要数据。