马哥教育网络班22期+第13周作业

week13
1、建立samba共享,共享目录为/data,要求:(描述完整的过程)
  1)共享名为shared,工作组为magedu;
  2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
  3)添加samba用户gentoo,centos和ubuntu,密码均为“magedu”;
  4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
  5)此samba共享服务仅允许来自于10.0.0.0/16网络的主机访问; 
  
2、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)
  1)基于虚拟用户的访问形式;
  2)匿名用户只允许下载,不允许上传;
  3)禁锢所有的用户于其家目录当中;
  4)限制最大并发连接数为200:;
  5)匿名用户的最大传输速率512KB/s
  6)虚拟用户的账号存储在mysql数据库当中。
  7)数据库通过NFS进行共享。
  
题目1:
1.安装samba
    [root@rs1 ~]# yum -y install samba
    
2.添加组,用户以及创建共享目录
    [root@rs1 ~]# groupadd develop
    [root@rs1 ~]# useradd -G develop gentoo
    [root@rs1 ~]# useradd -G develop centos
    [root@rs1 ~]# for user in {gentoo,centos,ubuntu};do echo $user;done
    [root@rs1 ~]# mkdir /data
    
3.修改共享目录权限
    [root@rs1 ~]# chmod g+w /data
    
4.编辑samba配置文件:
    /etc/samba/smb.conf,添加如下配置:
        [shared]
        comment = week test
        path = /data
        browseable = yes
        public = no
        write = yes
        write list = +develop
        hosts allow = 10.0.0.0/255.255.0.0
        
5.启动服务:
    [root@rs1 ~]# systemctl start smb.service 
    查看是否启用端口445,139
    
6.测试:
    [root@rs2 ~]# smbclient -L 10.0.0.21 -U ubuntu
    Enter gentoo's password: 
    Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.2.10]
    Sharename       Type      Comment
    ---------       ----      -------
    shared          Disk      week test
    IPC$            IPC       IPC Service (Samba Server Version 4.2.10)
    Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.2.10]
    Server               Comment
    ---------            -------
    RS1                  Samba Server Version 4.2.10
    Workgroup            Master
    ---------            -------
    MAGEDU               RS1
    
    [root@rs2 ~]# mount -t cifs //10.0.0.21/shared /mnt -o username=ubuntu -o password=magedu
    mount: //10.0.0.21/shared is write-protected, mounting read-only
    mount: cannot mount //10.0.0.21/shared read-only
    [root@rs2 ~]# mount -t cifs //10.0.0.21/shared /mnt -o username=gentoo -o password=magedu
    [root@rs2 ~]# df -hT|grep mnt
    //10.0.0.21/shared           cifs       18G  2.3G   16G  13% /mnt
    [root@rs2 ~]# cd /mnt
    [root@rs2 mnt]# touch test1
    [root@rs2 mnt]# ll
    total 0
    -rw-r--r-- 1 1003 1006 0 Nov 11 23:01 test1
    [root@rs1 ~]# id gentoo
    uid=1003(gentoo) gid=1006(gentoo) groups=1006(gentoo),1005(develop)
    
题目2:
    环境:
        rs2:mysql+vsftpd
        rs1:smaba

    1.安装MySQL
        [root@rs2 ~]# groupadd -g 1100 mysql
        [root@rs2 ~]# useradd -u 1100 -g mysql -M mysql
        [root@rs2 ~]# mount -t cifs //10.0.0.21/mysql /opt/mysql -o username=mysql -o password=magedu
        [root@rs2 ~]# chown -R mysql.mysql /opt/mysql
        
        [root@rs2 ~]# tar xf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
        [root@rs2 ~]# cd /usr/local
        [root@rs2 local]# ln -sv mysql-5.6.31-linux-glibc2.5-x86_64 mysql
        [root@rs2 local]# cd mysql
        [root@rs2 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql
        [root@rs2 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
        [root@rs2 mysql]# chmod +x /etc/init.d/mysqld
        [root@rs2 mysql]# cp support-files/my-default.cnf /etc/my.cnf
        
        [root@rs2 mysql]# vim /etc/my.cnf
            basedir = /usr/local/mysql
            datadir = /opt/mysql
            skip_name_resolve = 1
            character_set_server = utf8
            innodb_file_per_table = 1
            
        [root@rs2 mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
        [root@rs2 mysql]# vim /etc/ld.so.conf.d/mysql.conf
            /usr/local/mysql/lib
        
        [root@rs2 mysql]# ldconfig -v
        [root@rs2 mysql]# vim /etc/profile.d/mysql.sh
            export PATH=/usr/local/mysql/bin:$PATH
        [root@rs2 mysql]# source /etc/profile.d/mysql.sh
        [root@rs2 mysql]# service mysqld start
        
2.安装vsftpd
    [root@rs2 ~]# yum -y install vsftpd pam-devel
    
    安装pam_mysql:
    [root@rs2 ~]# tar xf pam_mysql-0.7RC1.tar.gz 
    [root@rs2 ~]# cd pam_mysql-0.7RC1
    [root@rs2 pam_mysql-0.7RC1]# ./configure --with-mysql=/usr/local/mysql/ --with-pam-mods-dir=/lib64/security/
    [root@rs2 pam_mysql-0.7RC1]# make install
      编辑vsftpd.conf配置文件:
        anonymous_enable=YES
        anon_upload_enable=NO
        anon_mkdir_write_enable=NO
        anon_max_rate=512000
        max_clients=200
        local_enable=YES
        write_enable=YES
        local_umask=022
        dirmessage_enable=YES
        xferlog_enable=YES
        connect_from_port_20=YES
        xferlog_file=/var/log/xferlog
        xferlog_std_format=YES
        download_enable=YES
        ascii_upload_enable=YES
        ascii_download_enable=YES
        chroot_local_user=YES
        listen=YES
        listen_ipv6=NO
        guest_enable=YES
        guest_username=mysqlftp
        virtual_use_local_privs=YES
        pam_service_name=vsftpd
        tcp_wrappers=YES
        vsftpd_log_file=/var/log/vsftpd.log
        allow_writeable_chroot=YES
        
    创建虚拟用户映射账户:
        [root@rs2 ~]# useradd mysqlftp -d /ftproot
        
    编辑vsftpd的pam认证文件:/etc/pam.d/vsftpd
        #%PAM-1.0
        session    optional     pam_keyinit.so    force revoke
        auth       sufficient   /lib64/security/pam_mysql.so user=vsftp passwd=redhat \
        host=127.0.0.1 db=ftp table=users usercolumn=name passwdcolumn=password crypt=2
        auth       requiredpam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
        auth       requiredpam_shells.so
        auth       includepassword-auth
        account    sufficient   /lib64/security/pam_mysql.so user=vsftp passwd=redhat \
        host=127.0.0.1 db=ftp table=users usercolumn=name passwdcolumn=password crypt=2
        account    includepassword-auth
        session    required     pam_loginuid.so
        session    includepassword-auth
        
    备注:此认证文件可以使vsftpd服务应用虚拟账号和本地账号;如果只想使用虚拟账号机制,
    则只使用pam_mysql相关的2行;此文件认证机制顺序:先检查pam_mysql认证机制;后检查本地账号密码认证机制;
    
    创建vsftpd使用的数据库:
        mysql> create database ftp;
        mysql> use ftp;
        mysql> create table users (
        id INT AUTO_INCREMENT NOT NULL,
        name CHAR(20) BINARY NOT NULL,
        password CHAR(48) BINARY NOT NULL,
        primary key(id)
        );
        mysql> grant SELECT on ftp.* to vsftp@localhost identified by 'redhat';
        mysql> grant SELECT on ftp.* to vsftp@127.0.0.1 identified by 'redhat';
        添加一个虚拟账号:
        mysql> insert into users(name,password) values('nginx',password('redhat'));
        
    启动服务:
        [root@rs2 ~]# systemctl start vsftpd
        
3.测试
    [root@rs1 ~]# lftp -u nginx,redhat 10.0.0.22
    lftp nginx@10.0.0.22:~> ls
    -rw-r--r--    1 0        0            1667 Nov 12 08:58 passwd
    lftp nginx@10.0.0.22:/> exit
    [root@rs1 ~]# lftp 10.0.0.22
    lftp 10.0.0.22:~> ls
    drwxr-xr-x    2 0        0               6 Mar 31  2016 pub
    lftp 10.0.0.22:/> quit
    [root@rs1 ~]# lftp -u devon,redhat 10.0.0.22
    lftp devon@10.0.0.22:~> ls
    -rw-r--r--    1 0        0            1667 Nov 12 08:58 passwd
    lftp devon@10.0.0.22:/> quit
    [root@rs1 ~]# lftp -u nginx,redhat 10.0.0.22
    lftp nginx@10.0.0.22:~> ls
    -rw-r--r--    1 0        0            1667 Nov 12 08:58 passwd
    lftp nginx@10.0.0.22:/> quit

原创文章,作者:devon,如若转载,请注明出处:http://www.178linux.com/59389

(0)
devondevon
上一篇 2016-11-21 10:13
下一篇 2016-11-21 10:13

相关推荐

  • 马哥教育网络班21期+第三周课程练习

    列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登陆多次,只显示一次即可。 ~]# who|cut -d" " -f1|sort -u 2  取出最后登录当前系统的用户的相关信息。    ~]# id `last|head&nbs…

    Linux干货 2016-07-29
  • 构建NP和NMP

    实验一、构建NP (一)实验布置:两台虚拟机充当代理服务器和后端服务器,一台虚拟机充当客户端。 (二)实验目的:实现NP的搭建。 (三)实验图解: (四)实验步骤: 1、  在后端服务器安装php-fpm文件,修改PHP-FPM的配置文件,vim/etc/php-fpm.d/www.conf文件,如下: listen = 127.0.0.1:900…

    2017-05-07
  • LVM基本应用,扩展以及缩减的实现

    这是一篇马哥课堂博客作业,这次换个表现方式写,前面先写总体的操作过程,后面显示详情 其实马哥视频讲的非常详尽,听起来特别容易理解,只是让我要写出来那得费九牛二虎之力,估计还得照着视频写。如下仅是看过视频之后的一个操作过程,比较粗糙,仅仅是作业。。。 LVM:logical volume manager version2 逻辑卷管理系统 PV:physical…

    Linux干货 2016-06-28
  • FHS文件系统各目录功能

    前言:     文件系统是一种存储和组织计算机数据的方法,它使得对其访问和查找变得容易。linux的哲学是一切皆文件,linux系统中的一切包括设备文件,我们都能在linux的倒置树状文件系统中找到相对应的文件。所以清楚的明白根目录下的每个子目录包含什么样的文件是很有必要的。我们将以Filesystem Hierarchy Standar…

    Linux干货 2016-10-17
  • 模拟centos6.8系统下initramfs文件和vmlinuz文件损坏恢复

    实验一:关于删除initramfs-2.6.32-642.el6.x86_64.img 文件恢复实验,实验环境centos6.8系统 1.安全起见,请先安排做快照及备份 把initramfs-2.6.32-642.el6.x86_64.img 文件复制一份/root目录下。 [root@centos6: boot]# cp -a initramfs-2.6.…

    2017-05-15
  • 计算机的组成部分

    运算器:负责数据的运算和逻辑运算。 存储器:实现记忆功能的部件用来存放计算程序及参与运算的各种数据。 控制器:负责对程序规定的控制信息进行分析,控制并协调输入,输出操作或内存访问。 输入设备:实现计算程序和原始数据的输入。 输出设备:实现计算结果输出。

    Linux干货 2017-08-19

评论列表(1条)

  • luoweiro
    luoweiro 2016-11-29 23:13

    挂在记得写配置文件,否则机器一重启就没了。