Linux設置SFTP服務用戶目錄權限


 

我們有時會遇到這樣的需求,限制一個Linux用戶,讓他只能在指定的目錄下進行添加、修改、刪除操作,並且只能使用sftp登錄服務器,不能用ssh操作。這些可以通過配置sftp服務實現。

提供sftp服務的有vsftpd和internal-sftp,這里用的是系統自帶的internal-sftp,操作步驟如下:

1.創建新用戶ui,禁止ssh登錄,不創建家目錄

useradd -s /sbin/nologin -M www

2.設置用戶密碼

passwd www

3.創建用戶的根目錄,用戶就只能在此目錄下活動

mkdir /home/www

4.設置目錄權限,目錄的權限設定有兩個要點:

目錄開始一直往上到系統根目錄為止的目錄擁有者都只能是root

目錄開始一直往上到系統根目錄為止都不可以具有群組寫入權限

chown root:root /home/www
chmod 755 /home/www

5.配置sshd_config

vim /etc/ssh/sshd_config

6.修改為下面內容,保存退出

#注釋掉這行
#Subsystem      sftp    /usr/libexec/openssh/sftp-server
#添加在配置文件末尾
Subsystem sftp internal-sftp     #指定使用sftp服務使用系統自帶的internal-sftp
Match User www #匹配用戶,如果要匹配多個組,多個組之間用逗號分割
ChrootDirectory /home/www         #用chroot將指定用戶的根目錄,chroot的含義:http://www.ibm.com/developerworks/cn/linux/l-cn-chroot/
ForceCommand internal-sftp        #指定sftp命令
X11Forwarding no #這兩行,如果不希望該用戶能使用端口轉發的話就加上,否則刪掉
AllowTcpForwarding no

7.重啟sshd服務

service sshd restart

8.測試:用戶登錄后進入的是/home/www即用戶根目錄,根目錄是無法寫入的,所以先用root在/home/www新建一個ui目錄

mkdir /home/www/ui

修改目錄所有者和權限

chown ui:ui /home/www/ui
chmod 777 /home/www/ui
#可以在其他目錄創建軟連接指向ui目錄
#ln -s  /home/www/ui /www/

sftp登錄www用戶,進入ui目錄,即可在/home/www/ui下,對文件進行添加、修改、刪除的操作

sftp -oPort=22 ui@123.56.18.72
sftp> cd ui


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM