1. 程式人生 > >Linux sftp限制用戶訪問指定目錄

Linux sftp限制用戶訪問指定目錄

usr 無法創建 penssh creat man connect restart -s ati

一、創建新用戶:

[root@controller ~]# useradd test
[root@controller ~]# passwd test
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

二、修改sshd配置文件:

[root@controller ~]# vi /etc/ssh/sshd_config
#Subsystem sftp /usr/libexec/openssh/sftp-server //註釋掉這句,不然報錯

添加以下語句

Subsystem sftp internal-sftp
Match User test //設置控制的用戶或組
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /home/sftp //允許用戶訪問的目錄

三、重啟ssh服務:

[root@controller ~]# systemctl restart sshd

四、創建目錄:

[root@controller ~]# mkdir /home/sftp
[root@controller ~]# chown -R root:test /home/sftp

[root@controller ~]# chmod -R 750 /home/sftp/

五、測試登陸:

[root@controller ~]# sftp [email protected]
sftp> pwd
Remote wsftp> mkdir 123
Couldn‘t create directory: Permission deniedorking directory: /
因為給了750權限所以無法創建目錄

在指定目錄下新建一個子目錄:

[root@controller ~]# mkdir /home/sftp/test
[root@controller ~]# chown test:test /home/sftp/test/

[root@controller ~]# chmod -R 755 /home/sftp/test/
再重新測試下:
[root@controller ~]# sftp [email protected]
[email protected]‘s password:
Connected to 192.168.31.130.
sftp> cd file/
sftp> mkdir 123
sftp> ls
123
sftp> quit
[root@controller ~]# ls /home/sftp/file/
123

五、註意事項:

sftp用戶訪問指定目錄需要設置用戶和組的權限為root,並設置權限為755,但此目錄下的文件權限可以自己根據需求設置。

Linux sftp限制用戶訪問指定目錄