溫馨提示×

Linux SFTP如何限制用戶訪問

小樊
76
2025-04-20 03:12:30
欄目: 智能運維

在Linux系統中,使用SFTP(SSH File Transfer Protocol)時,可以通過配置SSH服務器來限制用戶的訪問權限。以下是一些常見的方法:

1. 使用 sshd_config 文件

編輯 /etc/ssh/sshd_config 文件,添加或修改以下配置:

# 限制用戶只能使用SFTP
Subsystem sftp internal-sftp

# 創建一個組來管理SFTP用戶
Match Group sftpusers
    ChrootDirectory %h
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

然后,創建一個組 sftpusers 并將需要限制的用戶添加到該組:

sudo groupadd sftpusers
sudo usermod -aG sftpusers username

確保用戶的家目錄權限正確:

sudo chown root:root /home/username
sudo chmod 755 /home/username

2. 使用 ChrootDirectory

ChrootDirectory 可以將用戶的根目錄限制在一個特定的目錄中,從而防止用戶訪問其他目錄。

Match Group sftpusers
    ChrootDirectory /home/%u
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

確保 ChrootDirectory 指定的目錄及其所有父目錄的權限設置正確:

sudo chown root:root /home/username
sudo chmod 755 /home/username

并且,確保 ChrootDirectory 目錄下的 uploads 目錄(或其他允許用戶寫入的目錄)的權限允許用戶寫入:

sudo chown username:sftpusers /home/username/uploads
sudo chmod 755 /home/username/uploads

3. 使用 DenyUsersAllowUsers

如果你只想允許特定的用戶使用SFTP,可以使用 DenyUsersAllowUsers 指令。

# 允許特定用戶使用SFTP
AllowUsers user1 user2

# 拒絕所有其他用戶使用SSH
DenyUsers *

4. 使用 Match User

如果你需要更細粒度的控制,可以使用 Match User 指令。

Match User username
    ChrootDirectory /home/username
    ForceCommand internal-sftp
    AllowTcpForwarding no
    X11Forwarding no

5. 重啟SSH服務

在修改了 sshd_config 文件后,記得重啟SSH服務以使更改生效:

sudo systemctl restart sshd

通過以上方法,你可以有效地限制Linux系統中用戶的SFTP訪問權限,確保系統的安全性和數據的完整性。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女