開發那邊更新速度如果比較快,每天會有無數的文件或者目錄交給運維更新上線,這樣比較麻煩,乾脆給他們搭FTP讓他們自己上傳修改,但有一問題,就是權限問題,公司五個站點有五個目錄,每個人負責不同的站點,如何讓各自都不干擾別人,或者說不到別人的目錄搞“破壞”!下面解決這個問題!
一。檢查Linux中vsftpd的安裝情況。
就不囉嗦了
二。將系統中的SELinux關閉,然後重新啓動電腦(不關閉的話修改好標籤也可以)
關閉SELinux的方法:
修改/etc/selinux/config文件中的SELINUX="" 爲 disabled ,然後重啓。
如果不想重啓系統,使用命令setenforce 0
注:
setenforce 1 設置SELinux 成爲enforcing模式
setenforce 0 設置SELinux 成爲permissive模式
在lilo或者grub的啓動參數中增加:selinux=0,也可以關閉selinux
setsebool ftpd_disable_trans 1
三。建立用戶和指定目錄
注意:若要爲目錄制定相應的權限,最好在指定ftp家目錄之前修改
然後將vsftpd.conf配置文件裏的local_umask的值修改爲000就可以了,生成目錄默認777,文件默認666
#useradd -d /var/www -s /sbin/nologin ftp3
#passwd ftp3
建立用戶ftp3,並指定其家目錄爲/var/www,禁止登陸
#useradd -d /var/web -s /sbin/nologin ftp4
#passwd ftp4
建立用戶ftp4,並指定其家目錄爲/var/web,禁止登陸
這樣ftp3和ftp4用戶就被指定到相應的文件夾下。
四。修改vsftpd.conf配置文件
將anonymous_enable改爲NO,阻止匿名上傳
將chroot_list_enable和chroot_list_file的註釋去掉,阻止用戶訪問上級目錄
五。在/etc/vsftpd下建立chroot_list文件
建立完成後,在其中添加用戶ftp3,ftp4,(一行一個)使其只允許訪問指定目錄。
六。啓動或是重啓ftp服務。
#service vsftpd restart(start)
啓動成功後,就可以訪問ftp服務了。
下面附vsftpd.conf的一些配置
1. 匿名服務器的連接(獨立的服務器)
在/etc/vsftpd/vsftpd.conf配置文件中添加如下幾項:
Anonymous_enable=yes (允許匿名登陸)
Dirmessage_enable=yes (切換目錄時,顯示目錄下.message的內容)
Local_umask=022 (FTP上本地的文件權限,默認是077)
Connect_form_port_20=yes (啓用FTP數據端口的數據連接)*
Xferlog_enable=yes (激活上傳和下傳的日誌)
Xferlog_std_format=yes (使用標準的日誌格式)
Ftpd_banner=XXXXX (歡迎信息)
Pam_service_name=vsftpd (驗證方式)*
Listen=yes (獨立的VSFTPD服務器)*
功能:只能連接FTP服務器,不能上傳和下傳
注:其中所有和日誌歡迎信息相關連的都是可選項,打了星號的無論什麼帳戶都要添加,是屬於FTP的基本選項
2. 開啓匿名FTP服務器上傳權限
在配置文件中添加以下的信息即可:
Anon_upload_enable=yes (開放上傳權限)
Anon_mkdir_write_enable=yes (可創建目錄的同時可以在此目錄中上傳文件)
Write_enable=yes (開放本地用戶寫的權限)
Anon_other_write_enable=yes (匿名帳號可以有刪除的權限)
3. 開啓匿名服務器下傳的權限
在配置文件中添加如下信息即可:
Anon_world_readable_only=no
注:要注意文件夾的屬性,匿名帳戶是其它(other)用戶要開啓它的讀寫執行的權限
(R)讀—–下傳 (W)寫—-上傳 (X)執行—-如果不開FTP的目錄都進不去
4.普通用戶FTP服務器的連接(獨立服務器)
在配置文件中添加如下信息即可:
Local_enble=yes (本地帳戶能夠登陸)
Write_enable=no (本地帳戶登陸後無權刪除和修改文件)
功能:可以用本地帳戶登陸vsftpd服務器,有下載上傳的權限
注:在禁止匿名登陸的信息後匿名服務器照樣可以登陸但不可以上傳下傳
5. 用戶登陸限制進其它的目錄,只能進它的主目錄
設置所有的本地用戶都執行chroot
Chroot_local_user=yes (本地所有帳戶都只能在自家目錄)
設置指定用戶執行chroot
Chroot_list_enable=yes (文件中的名單可以調用)
Chroot_list_file=/任意指定的路徑/vsftpd.chroot_list
注意:vsftpd.chroot_list 是沒有創建的需要自己添加,要想控制帳號就直接在文件中加帳號即可
6. 限制本地用戶訪問FTP
Userlist_enable=yes (用userlistlai 來限制用戶訪問)
Userlist_deny=no (名單中的人不允許訪問)
Userlist_file=/指定文件存放的路徑/ (文件放置的路徑)
注:開啓userlist_enable=yes匿名帳號不能登陸
7. 安全選項
Idle_session_timeout=600(秒) (用戶會話空閒後10分鐘)
Data_connection_timeout=120(秒) (將數據連接空閒2分鐘斷)
Accept_timeout=60(秒) (將客戶端空閒1分鐘後斷)
Connect_timeout=60(秒) (中斷1分鐘後又重新連接)
Local_max_rate=50000(bite) (本地用戶傳輸率50K)
Anon_max_rate=30000(bite) (匿名用戶傳輸率30K)
Pasv_min_port=50000 (將客戶端的數據連接端口改在
Pasv_max_port=60000 50000—60000之間)
Max_clients=200 (FTP的最大連接數)
Max_per_ip=4 (每IP的最大連接數)
Listen_port=5555 (從5555端口進行數據連接)
8. 查看誰登陸了FTP,並殺死它的進程
ps –xf |grep ftp
kill 進程號