vsftpd

練習:完成vsftpd配置

(1) 禁錮系統用戶于家目錄

[root@node3 ~]# yum -y install vsftpd
[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES       //大概在102行,啟用此處的配置語句 

[root@node2 ~]# ftp 10.1.43.103
Connected to 10.1.43.103 (10.1.43.103).
220 (vsFTPd 3.0.2)
Name (10.1.43.103:root): gao
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,1,43,103,28,138).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Oct 13 09:47 pub
drwxrwxrwx    3 0        0            4096 Oct 15 12:50 upload
226 Directory send OK.
ftp> pwd
257 "/"       #禁錮成功

(2) 基于mysql進行用戶認證

安裝pam_mysql模塊:

        a:

[root@node3 ~]# yum -y install pam_mysql  <CentOS 6上>

        b:

[root@node3 ~]# yum -y install mariadb-devel pam-devel
[root@node3 ~]# wget 10.1.0.1:/pub/Sources/sources/pam/pam_mysql-0.7RC1.tar.gz
[root@node3 ~]# tar -xf pam_mysql-0.7RC1.tar.gz
[root@node3 ~]# cd pam_mysql-0.7RC1
[root@node3 pam_mysql-0.7RC1]# ./configure --with-pam=/usr --with-mysql=/usr --with-pam-mods-dir=/usr/lib64/security
[root@node3 pam_mysql-0.7RC1]# make
[root@node3 pam_mysql-0.7RC1]# make install

修改vsftpd的配置文件:

[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
guest_enable=YES      //在末尾寫上此3行,并把末尾向上5-6的位置中的 pam_service_name 這行注釋掉
guest_username=vuser

pam_service_name=vsftpd.mysql

建立數據庫:

[root@node3 ~]# mysql
mysql> CREATE DATABASE vsftpd;
mysql> CREATE TABLE vsftpd.users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, name CHAR(30) NOT NULL UNIQUE KEY,password CHAR(48));
mysql> INSERT INTO vsftpd.users (name,password) VALUES ('tom',PASSWORD('mageedu')),('jerry',PASSWORD('mageedu'));

mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'mageedu';
mysql> GRANT ALL ON vsftpd.* TO 'vsftpd'@'127.0.0.1' IDENTIFIED BY 'mageedu';
mysql> FLUSH PRIVILEGES;

vsftpd通過pam_mysql進行認證的配置文件:

[root@node3 ~]# vim /etc/pam.d/vsftpd.mysql
auth required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /usr/lib64/security/pam_mysql.so user=vsftpd passwd=mageedu host=127.0.0.1 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

準備匿名用戶映射的系統用戶賬號:

[root@node3 ~]# mkdir /ftproot
[root@node3 ~]# useradd  -d /ftproot  vuser
[root@node3 ~]# mkdir /ftproot/{pub,upload}
[root@node3 ~]# setfacl -m u:vuser:rwx  /ftproot/upload

登錄用戶:  

[root@node2 ~]# ftp 10.1.43.103
Connected to 10.1.43.103 (10.1.43.103).
220 (vsFTPd 3.0.2)
Name (10.1.43.103:root): tom
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (10,1,43,103,215,37).
150 Here comes the directory listing.
drwxr-xr-x    2 0        0               6 Oct 13 09:47 pub
drwxrwxrwx    3 0        0            4096 Oct 15 12:50 upload
226 Directory send OK.

(3) 不同的虛擬用戶擁有不同的權限設定

在配置(2)的基礎上,配置每匿名用戶有單獨的權限設定

[root@node3 ~]# vim /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vusers_conf    #在末尾追加此語句

創建目錄:

[root@node3 ~]# mkdir /etc/vsftpd/vusers_conf

為每用戶提供配置文件:

[root@node3 ~]# /etc/vsftpd/vusers_conf/{tom,jerry}

配置權限的指令:

[root@node3 ~]# vim /etc/vsftpd/vusers_conf/tom
anon_upload_enable=YES|NO        #注意不給指令:默認為NO
anon_mkdir_write_enable=YES|NO
anon_other_write_enable=YES|NO
[root@node3 ~]# vim /etc/vsftpd/vusers_conf/jerry
anon_upload_enable=YES|NO
anon_mkdir_write_enable=YES|NO
anon_other_write_enable=YES|NO


原創文章,作者:megedugao,如若轉載,請注明出處:http://www.www58058.com/51930

(0)
megedugaomegedugao
上一篇 2016-10-15
下一篇 2016-10-16

相關推薦

  • 馬哥教育網絡班21期+第一周課程練習

    1、描述計算機的組成及其功能。 計算機由五大組件組成包括:計算器,控制器,存儲,輸入設備,輸出設備。 運算器:做運算,且只能做二進制運算,包括算術運算和邏輯運算,如加減乘除,移位,取模。運算器的核心是加法器。 控制器:控制整個計算機部件之間協調。比如做計算,運算器先從存儲器取數,運算器作運算,再回存存儲器。這整個過程都由控制器做協調。  &nbsp…

    Linux干貨 2016-07-12
  • ssh+rsync批量管理,批量分發

    現在我簡單架設了一個7臺服務器的集群集體如下,架設集群的過程我就省略了… [nfs存儲一臺]192.168.42.10[負載均衡2臺]192.168.42.40192.168.42.41[web服務器2臺]192.168.42.30192.168.42.31[備份1臺]192.168.42.20[mysql 1臺]192.168.42.50 我現…

    Linux干貨 2017-04-22
  • 一切皆文件

    Linux Linux內一切皆文件;表現之一:硬件設備也通過文件表示 物理終端:/dev/console 虛擬終端: /dev/tty#[1,6] 串行終端:/dev/ttyS# 偽終端: /dev/pts/# 注意:在啟動設備之后,在其上關聯一個用戶接口程序,即可實現與用戶交互,交互式程序有兩類:GUI(圖形化界面)和CLI(命令行界面)。 查看終端設備:…

    Linux干貨 2017-04-01
  • ansible的用法

    ansible 每臺主機擁有不同的功能,可能同時是http服務器,php-fpm的客戶端,共享存儲的客戶端等,這些功能是單獨定義的,不同主機需要的功能各不相同 應確保目標主機的狀態為事先給他定義的目標狀態 使目標主機達到目標狀態有兩種方法      agentless:由服務端主機通過ssh連接到目標主機執行命令,客戶端不需要額…

    Linux干貨 2016-11-11
  • Linux系統grep正則表達式

    一、grep命令的使用 首先,我們來了解grep命令,grep (global search regular expression and printing),全面搜索正則表達式并把行打印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,并把匹配的行打印出來。Linux中的grep命令包括、grep, egrep和fgrep 。egrep是grep…

    Linux干貨 2017-04-23
  • parted使用說明

    一.為什么使用parted命令     傳統的MBR(Master Boot Record)分區方式,有一個局限:無法支持超過2TB的硬盤分區(單個分區超過2TB)。     GPT(GUID Partition Table)的分區表很好的解決了這個問題,但在Linux系統中,傳…

    Linux干貨 2015-04-13
欧美性久久久久