一分鐘在Linux環境下建立一臺SFTP伺服器(含賬戶建立)
FTP是比較常見的一種服務了,很多公司都會有可能使用到FTP伺服器,本文將以最簡潔的辦法使用系統自帶的ssh軟體在1分鐘內搭建一臺使用方便的FTP伺服器。
SFTP是Secure File Transfer Protocol的縮寫,安全檔案傳送協議。可以為傳輸檔案提供一種安全的網路的加密方法。sftp 與 ftp 有著幾乎一樣的語法和功能。SFTP為SSH的其中一部分,是一種傳輸檔案至 Blogger 伺服器的安全方式。其實在SSH軟體包中,已經包含了一個叫作SFTP(Secure File Transfer Protocol)的安全檔案資訊傳輸子系統,SFTP本身沒有單獨的守護程式,它必須使用sshd守護程式(埠號預設是22)來完成相應的連線和答覆操作,所以從某種意義上來說,SFTP並不像一個伺服器程式,而更像是一個客戶端程式。SFTP同樣是使用加密傳輸認證資訊和傳輸的資料,所以,使用SFTP是非常安全的。但是,由於這種傳輸方式使用了加密/解密技術,所以傳輸效率比普通的FTP要低得多,如果您對網路安全性要求更高時,可以使用SFTP代替FTP。執行以下指令碼在一分鐘之內即可完成SFTP伺服器的搭建。
#!/bin/bash
#===============================================================================
# FILE: SftpCreate.sh
# USAGE: ./SftpCreate.sh
# DESCRIPTION: Create a Sftp Server
# OPTIONS: None
# REQUIREMENTS: Nene
# AUTHOR: Geeklp (IVAN DU), geeklp@qq.com
# ORGANIZATION: GEEKLP
# CREATED: 2017年12月19日 10時29分12秒
# REVISION: V1.1
#===============================================================================
set -o nounset # Treat unset variables as an error
Users=(`chinapay` `ctbx` `haoyilian` `hbgyl` `huaxia` `jczh` `kjb` `lykj` `lzkj` `msyh` `nyjt` `pingan` `xldz` `yigw` `yytwallet`)
PassWord=`Neoby1314`
#modify the /etc/ssh/sshd_config
sed -i `/Subsystem/s/^/#/` /etc/ssh/sshd_config
sed -i `/^#Subsystem/aSubsystem sftp internal-sftp` /etc/ssh/sshd_config
#---------Create SFTPUsers----------
for UserName in ${Users[@]};
do
id -u $UserName>& /dev/null
if [ $? -ne 0 ]; then
mkdir /home/$UserName #建立使用者SFTP的root目錄
adduser $UserName -d /home/$UserName/$UserName #建立使用者並指定使用者目錄
echo "The account $UserName was created!"
echo $PassWord | passwd $UserName --stdin #從標準輸入流中讀取密碼
usermod -s /bash/false $UserName #禁止ssh登入
echo "
Match User $UserName
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /home/$UserName">>/etc/ssh/sshd_config
else
echo "The username $UserName was existed!"
fi
done
systemctl restart sshd
#----------END-----------------------
在以上指令碼中有幾個關鍵點:
1、使用者目錄。出於安全考慮,分別建立獨立使用者根目錄,如果多個使用者都在同一個根目錄下,其他使用者是可以看到別人的使用者目錄的,這也就是執行建立/home/UserName/UserName的目的所在。這也是與網上大部分文章不同的地方之一。當然,使用者目錄不一定需要使用者的home目錄,只要使用者對目錄具有所有權都是可以的。
2、禁止使用者的ssh登入,本方案中使用的指定登入指令碼為/bin/false,當然也還有其他方案。
3、修改配置檔案。在本方案中,涉及到配置檔案的2個地方的修改。Subsystem這一行的修改,Match User $UserName後面需要加一行來指定使用者根目錄。
相關文章
- 在域環境下對賬戶的操作
- 使用寶塔皮膚一分鐘配置雲伺服器的Linux環境伺服器Linux
- vmware環境下在linux中建立ftp伺服器LinuxFTP伺服器
- 在Windows下如何建立指定的虛擬環境Windows
- 建立Python虛擬環境——下Python
- 建立環境
- 學習使用azureCLI建立linux環境Linux
- win10怎麼建立賬戶 window10如何建立新賬戶Win10
- centos建立賬戶指令碼CentOS指令碼
- maven環境下建立一個spring的java工程MavenSpringJava
- RAC環境下建立物理DATAGUARD(1)
- RAC環境下建立物理DATAGUARD(2)
- Part II 建立和配置多租戶環境
- 非域環境下SQL Server mirror建立SQLServer
- 如何使用anaconda建立一個環境
- python pipenv建立環境Python
- 如何藉助Linux充分利用舊PC建立伺服器環境Linux伺服器
- gym建立環境、自定義gym環境
- 開發環境下PP檔案的建立開發環境
- 通過 Samba 服務,建立 Linux 開發環境SambaLinux開發環境
- 透過 Samba 服務,建立 Linux 開發環境SambaLinux開發環境
- 使用Anaconda建立一個自己的環境
- 如何利用九條命令在一分鐘內檢查Linux伺服器效能?Linux伺服器
- 在 SAP BTP 平臺 Neo 環境裡使用 SAP Cloud SDK 建立應用Cloud
- 建立 Python 虛擬環境Python
- anaconda建立虛擬環境
- 建立python虛擬環境Python
- pycharm+anaconda環境建立PyCharm
- 建立 測試環境 + 配置伺服器ssl證書伺服器
- 在 mac 上建立 Python 的 Kafka 與 Spark 環境MacPythonKafkaSpark
- Linux伺服器下Java環境搭建Linux伺服器Java
- 在Linux中, 如何建立一個快照?Linux
- Debian9.5建立賬戶的一般操作方法
- window 建立py虛擬環境
- 配置conda建立環境存放位置
- Anaconda建立環境、刪除環境、環境重新命名、檢視環境名
- 在一臺Apache伺服器上建立多個站點(不同域名)Apache伺服器
- 在 Linux 中不使用 useradd 命令如何建立使用者賬號Linux
- 在UE4中建立受《羞辱》啟發的環境