一分鐘在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
- gdb linux下eclipse環境的建立LinuxEclipse
- Linux環境下建立FTP使用者LinuxFTP
- vmware環境下在linux中建立ftp伺服器LinuxFTP伺服器
- 在Windows下如何建立指定的虛擬環境Windows
- win10怎麼建立賬戶 window10如何建立新賬戶Win10
- centos建立賬戶指令碼CentOS指令碼
- 【ASM學習】在windows 環境下建立ASM例項ASMWindows
- 建立Python虛擬環境——下Python
- Linux環境下建立靜態庫和動態庫Linux
- oracle 只讀賬戶的建立Oracle
- maven環境下建立一個spring的java工程MavenSpringJava
- 學習使用azureCLI建立linux環境Linux
- 非域環境下SQL Server mirror建立SQLServer
- VMware Fusion下建立Oracle Linux虛擬機器環境-續OracleLinux虛擬機
- gym建立環境、自定義gym環境
- 開發環境下PP檔案的建立開發環境
- 在 SAP BTP 平臺 Neo 環境裡使用 SAP Cloud SDK 建立應用Cloud
- 建立 測試環境 + 配置伺服器ssl證書伺服器
- python pipenv建立環境Python
- 在Linux下建立大檔案Linux
- Oracle 使用命令列建立新賬戶Oracle命令列
- 如何藉助Linux充分利用舊PC建立伺服器環境Linux伺服器
- 如何利用九條命令在一分鐘內檢查Linux伺服器效能?Linux伺服器
- Win10系統安全模式下建立新賬戶的方法Win10模式
- 錯誤:無法與 SFTP 伺服器建立 FTP 連線FTP伺服器
- 在 mac 上建立 Python 的 Kafka 與 Spark 環境MacPythonKafkaSpark
- 一分鐘sed入門(一分鐘系列)
- MYSQL 建立賬戶,並賦予許可權MySql
- 通過 Samba 服務,建立 Linux 開發環境SambaLinux開發環境
- 透過 Samba 服務,建立 Linux 開發環境SambaLinux開發環境
- 建立python虛擬環境Python
- 建立 Python 虛擬環境Python
- pycharm+anaconda環境建立PyCharm
- 建立快樂的工作環境
- anaconda建立虛擬環境
- window 建立py虛擬環境