Linux下如何創(chuàng)建SFTP賬號
前置要求
確??梢允褂?ssh,可以通過以下命令確認(rèn)OpenSSH服務(wù)器是否正在運(yùn)行:
sudo service ssh status
如果未運(yùn)行,先安裝 OpenSSH 服務(wù)器:
sudo apt-get install openssh-server
1.新增用戶 my_user,所屬組 my_group
(新增用戶) sudo useradd -g my_group -s /bin/false -d /my_directory/my_user my_user (修改密碼) sudo passwd my_user
my_user 為用戶名,my_group 為用戶組名,/my_directory/my_user 為自定義用戶家目錄。
2.修改配置
(打開配置文件) sudo vim /etc/ssh/sshd_config (編輯) 按 i (新增配置) Match User my_user ChrootDirectory /my_directory/my_user ForceCommand internal-sftp (保存并退出) 先按 esc,再輸入 :wq 回車 (重啟配置) sudo systemctl restart sshd
3.修改家目錄權(quán)限
(切換路徑) cd /my_directory (修改 my_user 文件夾的 owner 為 root) sudo chown root my_user (修改為 my_user 文件夾的權(quán)限為 755) sudo chmod 755 my_user
4.在家目錄下創(chuàng)建子目錄
因?yàn)榧夷夸浀乃鶎儆脩舯仨殲?root,否則無法登陸;
但是這樣會(huì)導(dǎo)致其他用戶無法上傳文件,所以需要在家目錄下建立自己的目錄。
(創(chuàng)建文件夾) sudo mkdir share (修改所屬用戶) sudo chown my_user:my_group share
至此,賬號創(chuàng)建完成,可以用命令或者 FileZilla 登陸,并上傳文件測試。
5.上述命令腳本化
可以將上述流程寫到一個(gè)腳本里,下次創(chuàng)建腳本時(shí)只需要執(zhí)行腳本就可以了。
- 5.1 創(chuàng)建
.sh
文件
sudo vim sftp-conf.sh
- 5.2 按
i
進(jìn)入編輯模式,復(fù)制粘貼如下代碼:
MAX_ATTEMPTS=3 attempt=1 password_match=false while [ $attempt -le $MAX_ATTEMPTS ]; do # 提示用戶輸入用戶名 echo "請輸入用戶名:" read username # 提示用戶輸入密碼 echo "請輸入密碼:" read -s password1 echo "請?jiān)俅屋斎朊艽a:" read -s password2 # 檢查密碼是否一致 if [ "$password1" != "$password2" ]; then echo "兩次輸入的密碼不一致。" else echo "--------------------------------------------------" echo "密碼輸入正確,執(zhí)行命令開始." echo "新增SFTP用戶 $username..." useradd -g my_group -s /bin/false -d /my_directory/$username $username echo "設(shè)置密碼..." echo "$username:$password1" | chpasswd echo "修改配置文件..." # 在配置文件中新增一行 sed -i '/# .sh append/a Match User '"$username"'\nChrootDirectory /my_directory/'"$username"'\nForceCommand internal-sftp' /etc/ssh/sshd_config echo "切換路徑..." cd /my_directory echo "創(chuàng)建用戶文件夾..." mkdir $username echo "修改文件夾 owner 為 root..." chown root $username echo "修改為文件夾的權(quán)限為 755..." chmod 755 $username echo "進(jìn)入文件夾..." cd $username echo "創(chuàng)建 files 文件夾..." mkdir files echo "修改所屬用戶..." chown $username:my_group share echo "--------------------------------------------------" echo "命令執(zhí)行完畢。賬戶創(chuàng)建完成,賬戶目錄為 /my_directory/$username" password_match=true break fi attempt=$((attempt + 1)) done if [ "$password_match" = false ]; then echo "密碼輸入錯(cuò)誤次數(shù)超過限制。" fi
- 5.3 按
esc
退出編輯模式,輸入:wq
保存并退出 - 5.4 運(yùn)行腳本
./sftp-conf.sh
按提示輸入賬號和密碼,即可完成創(chuàng)建賬號。
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
通過 SSH 在遠(yuǎn)程 Linux 系統(tǒng)上運(yùn)行命令的方法
這篇文章主要介紹了通過 SSH 在遠(yuǎn)程 Linux 系統(tǒng)上運(yùn)行命令的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10LNMP下添加Discuz x2.5的偽靜態(tài)規(guī)則
今天一個(gè)找我配置過 lnmp 環(huán)境的用戶要搭建 Discuz 論壇,但是發(fā)現(xiàn)不支持偽靜態(tài),倡萌沒怎么折騰過 Discuz,百度下才知道,原來軍哥的 LNMP 環(huán)境包自帶的 DZ 規(guī)則不適用于 Discuz x2.5,記錄下對應(yīng)的偽靜態(tài)規(guī)則2016-09-09Centos7.0安裝ceph(JEWEL)及以上版本的實(shí)例解析
這篇文章主要介紹了Centos7.0安裝ceph(JEWEL)及以上版本的實(shí)例解析,需要的朋友可以參考下2018-02-02使用 Linux seq 命令生成數(shù)字序列(推薦)
seq命令用于以指定增量從首數(shù)開始打印數(shù)字到尾數(shù),即產(chǎn)生從某個(gè)數(shù)到另外一個(gè)數(shù)之間的所有整數(shù),并且可以對整數(shù)的格式、寬度、分割符號進(jìn)行控制。這篇文章主要介紹了使用 Linux seq 命令生成數(shù)字序列,需要的朋友可以參考下2020-01-01Apache James數(shù)據(jù)庫存儲(chǔ)用戶信息的密碼加密問題及解決方案
集成java mail直接用明文帳號密碼連接就行了,因?yàn)閖ames會(huì)自己去加密驗(yàn)證,其他軟件通過pop3配置,密碼也是用明文就行了,這篇文章主要介紹了Apache James數(shù)據(jù)庫存儲(chǔ)用戶信息的密碼加密問題及解決方案,需要的朋友可以參考下2024-03-03