溫馨提示×

centos sftp權限設置技巧

小樊
38
2025-10-26 00:50:28
欄目: 智能運維

CentOS SFTP權限設置技巧

1. 創建專用SFTP用戶組與用戶

為提升管理效率,建議創建專門的SFTP用戶組(如sftpusers),并將用戶添加至該組。創建用戶時,需指定主目錄并設置不可登錄shell(/sbin/nologin),防止用戶通過SSH登錄系統:

groupadd sftpusers  # 創建SFTP用戶組
useradd -m -g sftpusers -s /sbin/nologin sftpuser  # 創建用戶并加入組
passwd sftpuser  # 設置用戶密碼

2. 配置SSH限制SFTP訪問

編輯/etc/ssh/sshd_config文件,通過Match指令針對SFTP用戶組進行限制。關鍵配置包括:

  • 啟用內部SFTP子系統(ForceCommand internal-sftp);
  • 限制用戶根目錄(ChrootDirectory %h,%h代表用戶主目錄);
  • 禁用TCP轉發和X11轉發(增強安全性)。
    示例配置:
Subsystem sftp internal-sftp  # 啟用內部SFTP
Match Group sftpusers  # 匹配sftpusers組
    ChrootDirectory %h  # 限制根目錄為用戶主目錄
    ForceCommand internal-sftp  # 強制使用SFTP
    AllowTcpForwarding no  # 禁用TCP轉發
    X11Forwarding no  # 禁用X11轉發

3. 正確設置目錄權限

  • 主目錄權限ChrootDirectory指定的主目錄(如/home/sftpuser)必須屬主為root,權限為755(用戶可讀/寫/執行,組和其他用戶僅可讀/執行),避免用戶修改目錄結構逃逸chroot環境:
    chown root:root /home/sftpuser  # 主目錄屬主為root
    chmod 755 /home/sftpuser  # 主目錄權限755
    
  • 上傳目錄權限:在主目錄下創建專門用于上傳的子目錄(如uploads),屬主為用戶自身,組為sftpusers,權限為755(或775若需組內用戶寫入):
    mkdir /home/sftpuser/uploads  # 創建上傳目錄
    chown sftpuser:sftpusers /home/sftpuser/uploads  # 屬主為用戶,組為sftpusers
    chmod 755 /home/sftpuser/uploads  # 目錄權限755
    

4. 使用SGID位保持組一致性

為避免用戶在上傳目錄中創建的文件繼承用戶自身組(而非sftpusers組),可設置SGID位。這樣,目錄內新文件和子目錄將自動繼承父目錄的組所有權:

chown root:sftpusers /home/sftpuser  # 主目錄屬組改為sftpusers
chmod 2775 /home/sftpuser  # 設置SGID位(2表示SGID)

5. 處理SELinux上下文(若啟用SELinux)

若SELinux處于Enforcing模式,需調整上傳目錄的安全上下文,允許SFTP訪問。使用semanagerestorecon命令:

semanage fcontext -a -t ssh_home_t "/home/sftpuser/uploads(/.*)?"  # 添加上下文規則
restorecon -Rv /home/sftpuser/uploads  # 恢復目錄上下文

6. 重啟SSH服務應用配置

完成所有配置后,重啟SSH服務使更改生效:

systemctl restart sshd  # 重啟SSH服務
systemctl enable sshd  # 設置開機自啟

7. 測試SFTP連接

使用SFTP客戶端(如FileZilla或命令行)連接服務器,驗證權限設置:

sftp sftpuser@your_server_ip  # 輸入密碼登錄
ls ..  # 嘗試訪問上級目錄,應提示"Permission denied"
put local_file.txt  # 上傳文件至uploads目錄,應成功

8. 可選:使用密鑰認證增強安全性

替換密碼認證為SSH密鑰認證,提升賬戶安全性。生成密鑰對并將公鑰上傳至用戶家目錄的.ssh文件夾:

ssh-keygen -t rsa  # 客戶端生成密鑰對
ssh-copy-id sftpuser@your_server_ip  # 復制公鑰至服務器

修改/etc/ssh/sshd_config啟用密鑰認證:

PubkeyAuthentication yes  # 啟用公鑰認證
PasswordAuthentication no  # 禁用密碼認證

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