2016年8月31日 星期三

Centos 7 限制使用者群組只能使用sftp到特定目錄

為讓廠商僅能使用SFTP上傳網頁資料,所以希望限制他只能在固定的目錄操作,
所以從SSH上設定特定群組的權限,此功能也可以以限制帳號方式運作。


新增使用者
# adduser webguest

新增webeditor 群組
# groupadd webeditor








將user加入此群組
#  usermod -a -G webeditor webguest

設定要限制的目錄
# chown webguest:webeditor /data/web/xsg

設定群組讀寫權限
# chmod 755 -R /data/web/xsg

備份 /etc/ssh/sshd_config
# cp /etc/ssh/sshd_config /etc/ssh/sshd_config_org

編輯 /etc/ssh/sshd_config

Subsystem       sftp    internal-sftp                                 


Match group webeditor                                    設定webeditor這個群組
         ChrootDirectory /data/web                     限制只能在/data/web這個目錄
         AllowTcpForwarding no
         X11Forwarding no

         ForceCommand internal-sftp

重啟ssh服務
# service sshd restart


使用winscp測試,無法切換目錄僅能在特定目錄操作,也無法ssh console登入。



出現ownership 錯誤訊息如下時,參閱下面連結,將目錄權限再修改一次即可。
Aug 31 17:40:43 XSG-Web01 systemd-logind: New session 17 of user webguest.
Aug 31 17:40:43 XSG-Web01 systemd: Started Session 17 of user webguest.
Aug 31 17:40:43 XSG-Web01 systemd: Starting Session 17 of user webguest.
Aug 31 17:40:43 XSG-Web01 sshd[3911]: fatal: bad ownership or modes for chroot directory "/var/www/html" [postauth]
Aug 31 17:40:43 XSG-Web01 systemd-logind: Removed session 17.

PS . 如果要限制User或Group只能在/data/web/xsg此目錄,則要將此目錄設為User的Owner及Group,並設定為755,他的上一層/data/web一定要是root:root 

[root@Web01 web]# ls -al
total 0
drwxr-xr-x. 3 root     root      16 Sep  1 16:49     .
drwxr-xr-x. 3 root     root      16 Sep  1 16:35     ..
drwxr-xr-x. 2 webguest webeditor 49 Sep  1 16:51  xsg

Ref:
http://serverfault.com/questions/584986/bad-ownership-or-modes-for-chroot-directory-component

Centos 7 限制使用者群組只能使用sftp到特定目錄

為讓廠商僅能使用SFTP上傳網頁資料,所以希望限制他只能在固定的目錄操作,
所以從SSH上設定特定群組的權限,此功能也可以以限制帳號方式運作。


新增使用者
# adduser webguest

新增webeditor 群組
# groupadd webeditor

將user加入此群組
#  usermod -a -G webeditor webguest

設定要限制的目錄
# chgrp -R webeditor /var/www/html

設定群組讀寫權限
# chmod -R 775 /var/www/html

備份 /etc/ssh/sshd_config
# cp /etc/sshd_config /etc/sshd_config_org

編輯 /etc/ssh/sshd_config

Subsystem       sftp    internal-sftp                                 


Match group webeditor                                            設定webeditor這個群組
         ChrootDirectory /var/www/html                     限制只能在/var/www/html這個目錄
         AllowTcpForwarding no
         X11Forwarding no

         ForceCommand internal-sftp

重啟ssh服務
# service sshd restart


使用winscp測試,無法切換目錄僅能在特定目錄操作,也無法ssh console登入。