领导看了之后,说你也试试php和ftp在同一个机器上,另外给你一台机器做samba和ftp让大家放点资料;同时我希望你详细了解vftpd配置文件的基本意思,做共享的时候领导和特殊岗位是有写权限的。

image

一 、模块化lamp

  1、安装libxml2支持库:

    yum install -y libxml2-devel支持库

   2、备份编httpd.conf文件:

cp /etc/httpd24/httpd.conf  /etc/httpd24/httpd.bak.conf

   3、下载编译PHP

  cd /usr/local/download

  [root@http download]# wget http://au2.php.net/get/php-5.5.30.tar.gz/from/this/mirror

./configure --with-apxs2=/usr/local/apache/bin/apxs --prefix=/usr/local/php5 --with-config-file-path=/usr/local/php5 --enable-sockets --enable-mbstring --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd 

    make  && make install

   [root@http php-5.5.30]# cp php.ini-production /etc/php.ini

  4、编译httpd文件

   vim /etc/httpd24/httpd.conf

   DocumentRoot "/web/myadmin" 开启主服务器

   <Directory "/web/myadmin">

   Options Indexes FollowSymLinks 基于安全考虑 建议改成none

   AllowOverride None      不允许覆盖

   Require all granted     允许所有主机访问这个文档下的文件

  </Directory>

  #Include /etc/httpd24/extra/httpd-vhosts.conf 关闭虚拟主机

  #LoadModule proxy_module modules/mod_proxy.so 关闭代理模块

  #LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.sodule 关闭fcgi代理模块

    AddType application/x-httpd-php .php       确认支持PHP文件类型
    AddType application/x-httpd-php-source .phps

     <IfModule dir_module>
    DirectoryIndex index.php index.html 确认php索引
     </IfModule>
5、phpmyadmin配置

     cd /web/myadmin

     [root@http myadmin]# cp config.sample.inc.php  config.inc.php

     [root@http myadmin]# vim config.inc.php

$cfg['Servers'][$i]['auth_type'] = 'cookie';
/* Server parameters */
$cfg['Servers'][$i]['host'] = '192.168.3.56'; 数据库服务器地址
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;

     [root@http php-5.5.30]# service httpd restart

    执行结果如图

        image

二、vsftp的安装配置

   1、安装vsftpd,并查看相应文件位置和作用

   yum install vsftpd

     rpm -ql vsftpd

    /etc/pam.d/vsftpd   基于pam认证的vsftpd的启动文件
    /etc/rc.d/init.d/vsftpd  vsftpd 服务启动文件
    /etc/vsftpd       
    /etc/vsftpd/ftpusers     是否允许用户登录vsftpd服务器
    /etc/vsftpd/user_list    用户列表(白名单或者黑名单)
    /etc/vsftpd/vsftpd.conf  vsftp主配置文件

    /var/ftp/pub             vsftp公用文件

2、查看vsftpd配置选项

    vim /etc/vsftpd/vsftpd.conf

    anonymous_enable=YES 是否允许匿名访问;

    local_enable=YES     是否允许系统用户登录;

    write_enable=YES     开启写入权限;

    local_umask=022      文件上传后的权限,用最高权限666减去你给的就是文件上传后的权限;

    anon_upload_enable=YES   允许匿名用户上传文件;

    anon_mkdir_write_enable=YES 允许匿名用户建立文件夹;

    dirmessage_enable=YES  是否显示目录说明文件, 默认是YES 但需要手工创建.message文件;

   xferlog_enable=YES  记录使用者所有上传下载信息;

   connect_from_port_20=YES  控制以PORT模式进行数据传输时是否使用20端口;

   chown_uploads=YES  开启匿名用户上传用户映射,默认不启用;

   chown_username=whoever 指定匿名用户上传映射的用户名;

   xferlog_file=/var/log/xferlog 指定上传下载信息记录文件路径;

   xferlog_std_format=YES

   idle_session_timeout=600 会话超时断开时间;

   data_connection_timeout=120 数据连接超时断开时间;

   nopriv_user=ftpsecure  指定一个安全用户账号,让FTP服务器用作完全隔离和没有特权的独立用户;

   async_abor_enable=YES 是否允许运行特殊的ftp命令async ABOR;

   ascii_upload_enable=YES 以二进制格式上传文件;

   ascii_download_enable=YES 以二进制格式下载文件;

   ftpd_banner=Welcome to blah FTP service. 登录ftp后的欢迎信息;

   deny_email_enable=YES 拒绝指定email地址的用户登录;

   banned_email_file=/etc/vsftpd/banned_emails 指定拒绝登录email的地址列表;

  chroot_local_user=YES 是否将所有用户锁定在主目录;

  chroot_list_enable=YES 开启锁定主目录的用户列表;

  chroot_list_file=/etc/vsftpd/chroot_list 指定锁定用户列表的文件路径;

   ls_recurse_enable=YES   ls_recurse_enable=YES 是否允许使用ls -R等命令;

   listen=YES    开启ipv4监听;

   listen_ipv6=YES 开启ipv6监听;

   pam_service_name=vsftpd 设置PAM使用的名称,默认值为/etc/pam.d/vsftpd;

   userlist_enable=YES  为yes时, /etc/vsftpd/user__list文件中的用户将不能访问vsftpd服务器;

   tcp_wrappers=YES 启用tcp_wrappers实现服务器端针对客户端请求的访问控制;

3、配置虚拟用户访问vftpd

   1)安装pam_mysql

vim /etc/yum.repos.d/CentOS-Base.repo

[ali-epel]
name=aliyun for centos6-epel
baseurl=
http://mirrors.aliyun.com/epel/6/x86_64/
enabled=1
gpgcheck=0

   [root@www ~]# yum repolist

   [root@www ~]# yum install pam_mysql

2)数据库建立用户

  进入数据库服务器192.168.3.56

   mysql

   MariaDB [(none)]> CREATE DATABASE vsftpd CHARACTER SET utf8 COLLATE utf8_general_ci ;

   grant select on vsftpd.* to 'my'@'192.168.3.55' identified by 'test@1996';

   flush privileges;

   MariaDB [(none)]> use vsftpd

   MariaDB [vsftpd]> create table users (
    ->      id int AUTO_INCREMENT NOT NULL,
    ->     name char(20) binary NOT NULL,
    ->      password char(48) binary NOT NULL,
    ->      primary key(id)
    ->      );

    MariaDB [vsftpd]> insert into users(name,password) values('tom',password('magedu'));

    MariaDB [vsftpd]> insert into users(name,password) values('ray',password('magedu'));

   3、配置vsftpd

    1)建立pam认证所需文件

     #vim /etc/pam.d/vsftpd.mysql
      添加如下两行
      auth required /lib/security/pam_mysql.so user=mytest 
passwd=tets@1996 host=192.168.3.56 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0
      account required /lib/security/pam_mysql.so user=mytest passwd=tets@1996 host=192.168.3.56 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=0

    2)修改vsftpd的配置文件,使其适应mysql认证

       建立虚拟用户映射的系统用户及对应的目录
       #
useradd -s /sbin/nologin -d /var/ftproot vuser
       # chmod go+rx /var/ftproot

       vim /etc/vsftpd.conf  确认以下选项是否开启

        anonymous_enable=YES
        local_enable=YES
        write_enable=YES
        anon_upload_enable=NO
        anon_mkdir_write_enable=NO
        chroot_local_user=YES

        而后添加以下选项
         guest_enable=YES
         guest_username=vuser

        并确保pam_service_name选项的值如下所示
         pam_service_name=vsftpd.mysql

      4、配置并使用虚拟用户

       1) 添加虚拟用户配置文件路径

        # vim vsftpd.conf

       添加如下选项
       user_config_dir=/etc/vsftpd/vusers_config

       mkdir /etc/vsftpd/vusers_config/
       cd /etc/vsftpd/vusers_config/
       touch tom jerry

     2) 添加虚拟用户配置文件

        vim tom 

         anon_upload_enable=YES
         anon_mkdir_write_enable=YES
         anon_other_write_enable=YES

       image

     5.验证效果:   

        image

        image

三、samba共享

1、下载安装samaba

   yum install samba.x86_64 –y

2、建立共享用户和组

1)建立系统用户

[root@localhost test]# groupadd -r develop
[root@localhost test]# groupadd -r readonly
[root@localhost test]# useradd -g readonly -G develop  -s /bin/nologin gentoo
[root@localhost test]# id gentoo
uid=502(gentoo) gid=492(readonly) groups=492(readonly),493(develop)
[root@localhost test]# useradd -g readonly -G develop  -s /bin/nologin centos
[root@localhost test]# useradd -g readonly  -s /bin/nologin ubuntu

2)建立共享用户

  smbpasswd –a  ubuntu

  smbpasswd –a centos

  smbpasswd –a gentoo

  密码为mageedu

 smbpasswd选项:
         -a 将系统用户添加为samba用户;
         -d 在samba中禁用此帐号;
         -e 启用禁用的帐号
         -x 从samba中删除此帐号

3、编辑共享文件:

   vim /etc/samba/smb.conf

      1)文件各选项说明

       workgroup = MYGROUP 定义工作组
        netbios name = MYSERVER  netbios解析中的名字
        interfaces =  定义监听地址
        host allow =   定义基于ip控制的白名单;
        用[自定义共享 ]
        path= 你要共享的目录
        guest OK=     是否允许来宾帐号
        wirteable= 是否拥有写权限
        printable= 是否打印
        writelist= +你要给写权限的组  这个选项要指明你要哪些用户可写。

        testparm 测试语法是否有误

     2)实际配置

       workgroup = magedu 设定工作组为magedu
        netbios name = magedu test netbios解析中到的名字为 magedu test
        hosts allow = 127. 192.168.3. 只允许本机和192.168.3.网段内的机器访问
         [shared]  共享名为shared
         comment = mage  注释 mage
         path = /data    将本地根目录下的data共享出去
         guest ok = no    不允许来宾访问
         writable = yes    具有写权限
         write list = +readonly readonly组中的成员可写,实际上不可写 还需要系统中授权

      image

4、建立系统文件夹,启动服务测试:

   1)mkdir /data

    setfacl -m g:develop:rwx /data

    getfacl -a /data

    image

    [test@localhost samba]$ service smb start;service nmb start

     service iptables stop

     setenforce 0

5、客户端测试结果如下图:

    image

    image

    image

搞定 等待领导验收!