前言:
公司最近多出來一臺機器想拿來作開發服務器,安裝Ubuntu,轉 Apache + Tomcat。之前沒有接觸過Linux系統,正好用此次機會學習一下。
這篇博客就簡單記錄一下配置的過程,好往後重溫。
開始寫這篇博客的時候,系統已經安裝完,也都配置完FTP、SVN和SSH了,因此不少過程都沒來的級截圖。
由於實在公司寫的,因此有些內容不詳細,往後會逐漸完善。
系統用的是 Ubuntu 14.04 LTS,由於擔憂在網上找不到足夠的資料,同時也出於穩定性的考慮,沒有選最新的16.X版本。shell
系統的安裝網上資料不少,在這裏就不贅述了。安全
FTP用的是vsftp。
bash
Ubuntu上安裝程序的方法很簡單,用root權限運行安裝命令便可。ctrl + alt + t
運行Terminal, 輸入一下命令。服務器
sudo apt-get install vsftpd
用sudo
運行的命令會提示要你輸入密碼,按照提示輸入root帳戶的密碼。編輯器
vsftp的配置文件位於 /etc/vsftpd.conf
若是安裝的Ubuntu是Desktop版本,能夠直接用文本編輯器打開並編輯
若是是Server版本,或者想直接在Terminal進行,則:ide
sudo nano /etc/vsftpd.conf
設置相關項目以下:學習
#禁止匿名訪問 anonymous_enable=NO #接受本地用戶 local_enable=YES #容許上傳 write_enable=YES #用戶只能訪問限制的目錄 chroot_local_user=YES #設置固定目錄,在結尾添加。若是不添加這一行,各用戶對應本身的目錄,固然這個文件夾本身建 local_root=/home/ftp
同時還有一個文件就要修改:/etc/pam.d/vsftpd
ui
sudo nano /etc/pam.d/vsftpd
在這一行的開始加一個‘#’註釋掉spa
#auth required pam_shells.so
這樣能避免用建立的用戶直接登陸ftp報530 login incorrect
的問題code
沒有組的話要先建立組
sudo groupadd -g 1101 groupftp
1101是組ID,1000以上比較安全,不能與其餘組重複。
添加用戶的命令是:
sudo useradd -d /home/ftp -g groupftp ftpuser sudo passwd ftpuser
建立用戶使用的是useradd
命令,參數中-d
是用戶登陸後進入的路徑,-g
是用戶組,最後輸入的是建立的用戶的名字useradd
命令的參數還有不少,在這裏只使用這些是爲了對應後期配置多用戶訪問和限制訪問路徑而作的鋪墊,詳細內容我會在寫完那篇文章後在這裏貼上連接。
*注 插入連接
passwd
是建立或更改用戶密碼的命令,輸入後會顯示讓你輸入密碼。按照提示輸入便可。
vsftpd.conf
文件中 chroot_local_user
、chroot_list_enable
、chroot_list_file
三個項目是用來控制用戶訪問權限的,轉別人的一段話:
首先,chroot_list_enable好理解,就是:是否啓用chroot_list_file配置的文件,若是爲YES表示chroot_list_file配置的文件生效,不然不生效;第二,chroot_list_file也簡單,配置了一個文件路徑,默認是/etc/vsftpd.chroot_list,該文件中會填入一些帳戶名稱。可是這些帳戶的意義不是固定的,是跟配置項chroot_local_user有關的。後一條中說明;
第三,chroot_local_user爲YES表示全部用戶都不能切換到主目錄以外其餘目錄,可是!除了chroot_list_file配置的文件列出的用戶。chroot_local_user爲NO表示全部用戶都能切換到主目錄以外其餘目錄,可是!除了chroot_list_file配置的文件列出的用戶。也能夠理解爲,chroot_list_file列出的「例外狀況」的用戶。
如今的需求是,但願建立的用戶都只在設定的目錄裏活動,而不能進入其餘目錄,因此咱們 chroot_local_user
設爲YES
。
至於chroot_list_enable
和chroot_list_file
也都設定好,雖然如今尚未須要能全盤ftp的用戶,但若是之後有這樣的需求的話,只要在chroot_list_file
設置的文件裏寫入該用戶名就能夠了。要注意chroot_list_file
設定的文件裏一行寫一個用戶名。
如此一來咱們的配置以下:
chroot_local_user = YES chroot_list_enable = YES chroot_list_file = /etc/vsftpd.chroot_list #該文件能夠任意位置,本身建立便可
chroot_local_user = YES
的狀況下用ftp鏈接會報「500 OOPS: vsftpd: refusing to run with writable root inside chroot()」 。 這是由於chroot的狀況下,根目錄是不容許被用戶更改的,因此不能給根路徑留w權限。
sudo chmod a-w /home/ftp sudo mkdir /home/ftp/data
a表明全部人,-w表示去掉寫的權限, 以後在路徑下再建立一個文件夾,ftp連進來就能夠在data文件夾下寫入文件了。