Linux 限制SFTP用戶目錄和權限

1、背景

在一些生產環境中,有時,用戶須要傳數據到服務器,可是配置 ftp 服務比較麻煩,此時,咱們能夠爲用戶建立 sftp 帳戶,讓用戶使用 sftp 來上傳下載所需的數據。sftp 帳號即爲系統帳號,將帳戶密碼給用戶,用戶除了能登陸 sftp 上傳下載數據外,還能夠訪問系統中的其餘目錄,由此,給咱們的系統帶來了安全隱患,咱們須要把 sftp 用戶限制在特定的目錄中。linux

需求:

SFTP 用戶 wzlinux 須要對 /home/data/www/www.wzlinux.com 擁有讀寫權限,而且只限制在此目錄操做。apache

2、配置

2.一、建立用戶

groupadd sftp
useradd -g sftp -s /bin/false wzlinux

設置密碼安全

passwd wzlinux

2.二、限制目錄

修改/etc/ssh/sshd_config,最後添加以下內容,咱們限制的操做目錄爲/home/data/www/www.wzlinux.com/bash

Match User wzlinux
PasswordAuthentication yes
ChrootDirectory /home/data/www/www.wzlinux.com
AllowTcpForwarding no
X11Forwarding no
ForceCommand internal-sftp

重啓 ssh 服務服務器

systemctl restart sshd

2.三、權限與屬主設定

首先目錄/home/data/www/的屬主必須是 root,也就是說被限制的目錄上一級目錄的屬主必須是root,屬組能夠是其餘用戶。ssh

chown root.root /home/data/www/
chown root.sftp /home/data/www/www.wzlinux.com
chmod 755 /home/data/www/www.wzlinux.com

2.四、設置用戶上傳文件權限

通過上面的設置後用戶可正常瀏覽下載目錄中的文件,可是用戶沒法上傳文件,由於目錄www.wzlinux.com的屬主是root,其餘用戶沒有寫入權限,並且目錄的最高權限是 755。ide

若是須要有寫入的權限,咱們須要在目錄www.wzlinux.com下面再建立目錄,而後賦予目錄用戶的屬主屬組權限。rest

mkdir /home/data/www/www.wzlinux.com/upload
chown wzlinux.sftp /home/data/www/www.wzlinux.com/upload

由此咱們能夠得到對目錄upload的上傳權限,可是對www.wzlinux.com的目錄是沒有寫入權限的,那如何給www.wzlinux.com也賦予寫入權限呢? 我尚未解決。code

2.五、虛擬主機用戶 ftp 和apache 用戶文件互操做權限

給予兩個用戶 acl 的權限,同時給予,並設定爲默認權限,好比sftp的用戶是 wzlinux,apache 的用戶是 www,文件目錄是 /home/data/www/www.wzlinux.com 。it

setfacl -d -m u:wzlinux:rwx -R /home/data/www/www.wzlinux.com
setfacl -d -m u:www:rwx -R /home/data/www/www.wzlinux.com

歡迎你們掃碼關注,獲取更多信息

Linux 限制SFTP用戶目錄和權限

相關文章
相關標籤/搜索