有時我們會遇到需要建立新的帳戶讓其他人也能透過像是WinSCP等工具登入伺服器,但是預設的狀態下,新增的帳戶是可以隨意訪問各個目錄的,例如etc、var等重要的目錄。這對伺服器來說挺不安全的,所以為了保障伺服器的安全,進行以下設定便可以將用戶限制在指定的範圍內了。
操作環境:
作業系統: CentOS 7
步驟一(step1):建立會員組
我們要先建立一個給sftp使用的會員組,在這邊我們以 sftp_use
作為會員組的名稱。(當然也可改其他的)
sudo groupadd sftp_use
步驟二(step2):建立帳號
建立新帳號:
sudo useradd sftp_test
替sftp_test設定密碼
sudo passwd sftp_test
將sftp_test帳號添加到sftp_use會員組
sudo usermod -G sftp_use sftp_test
步驟三(step3):更新sftp配置
變更sshd_config文件,修改配置
sudo vim /etc/ssh/sshd_config
如果沒有vim 可以改使用vi。也可以使用winSCP將sshd_config下載下來,編輯後在上傳。
進入sshd_config文件後,找到147行左右,會看到下面這行
Subsystem sftp /usr/libexec/openssh/sftp-server
將上面這行加上[#]註解掉,並添加下面這行
Subsystem sftp internal-sftp
接著,移動到此文件的最下方,添加以下內容
Match Group sftp_use
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /var/www/html
ForceCommand internal-sftp
說明:
sftp_use:會員組名稱
var/www/html :限制的目錄
步驟四(step4):給予帳號權限
需要進行此步驟,新增的帳號才能有上傳編輯的權限
建立一個資料夾
mkdir /var/www/html/sftp_test
設定權限
chown root /var/www/html/sftp_test
chown root /var/www/html/sftp_test
chmod 755 /var/www/html/sftp_test
chown sftp_test /var/www/html/sftp_test
步驟五(step5):重新啟動sshd service
sudo systemctl restart sshd
步驟六(step6):使用WinSCP測試
使用winSCP登入sftp_test帳號後,會進入到 /var/www/html 資料夾
我們已經將此帳號限制在 /var/www/html 資料夾了
在這當中我們雖然可以看到 /var/www/html內的所有資料夾,但我們只有授與此帳號編輯sftp_test資料夾的權限
所以此帳號就只能在sftp_test資料夾上傳檔案
文章轉載或引用,請先告知並保留原文出處與連結!!(單純分享或非營利的只需保留原文出處,不用告知)
原文連結:
https://blog.aidec.tw/post/centos7-sftp-ssh-chroot-directory
若有業務合作需求,可寫信至: opweb666@gmail.com
創業、網站經營相關內容未來將發布在 小易創業筆記