从Linux小白到大牛——与狼共舞的日子13

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

1、建立samba共享,共享目录为/data,要求:(描述完整的过程)

  • 1)共享名为shared,工作组为magedu;

  • 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;

  • 3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;

  • 4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;

  • 5)此samba共享服务仅允许来自于192.168.82.0/24网络的主机访问;


1.安装samba
[root@web ~]# yum install samba.x86_64 -y

2.添加develop组,添加指定用户
[root@web ~]# groupadd develop
[root@web ~]# useradd -s /sbin/nologin -G develop gentoo
[root@web ~]# echo "gentoo" | passwd --stdin gentoo
[root@web ~]# useradd -s /sbin/nologin -G develop centos
[root@web ~]# echo "centos"|passwd --stdin centos
[root@web ~]# useradd -s /sbin/nologin ubuntu
[root@web ~]# echo "ubuntu" |passwd --stdin ubuntu

3.添加samba用户
[root@web ~]# smbpasswd -a gentoo
[root@web ~]# smbpasswd -a centos
[root@web ~]# smbpasswd -a ubuntu

4.创建共享目录/data并设置权限
[root@web ~]# mkdir /data
[root@web ~]# setfacl -m g:develop:rwx /data

5.编辑samba配置文件
[root@web ~]# vim /etc/samba/smb.conf 
    workgroup = magedu
    hosts allow = 192.168.82.0/24
    [shared]
    comment = shared
    path = /data
    public =no
    writable = yes
    valid users = ubuntu,@develop
    read list = ubuntu
    write list = @develop

public = yes/no
说明:public用来指定该共享是否允许guest账户访问。
write list = 允许写入该共享的用户
说明:write list用来指定可以在该共享下写入文件的用户。
例如:write list = ubuntu,@develop
valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users = ubuntu,@develop(多个用户或者组中间用逗号隔开,
                                如果要加入一个组就用“@+组名”表示。)
writable = yes/no
说明:writable用来指定该共享路径是否可写。


6.清空防火墙和selinux
[root@web ~]# iptables -F
[root@web ~]# service iptables save
[root@web ~]# setenforce 0
[root@web ~]# vim /etc/selinux/config
    SELINUX=permissive

7.启动smb和nmb服务
[root@web ~]# service nmb start
[root@web ~]# service smb start

8.使用windows和linux客户端测试
linux客户端
[root@web ~]# smbclient //192.168.82.58/shared -U ubuntu
    smb: \> mkdir aaaa
    NT_STATUS_MEDIA_WRITE_PROTECTED making remote directory \aaaa
    smb: \> ls
      .   D0  Wed Aug 17 01:52:49 2016
      .. DR0  Tue Aug 16 19:29:05 2016
      aa  D0  Thu Aug 11 05:02:33 2016 
[root@web ~]# smbclient //192.168.82.58/shared -U gentoo
    smb: \> mkdir a
    smb: \> ls
      .   D0  Wed Aug 17 01:52:49 2016
      .. DR0  Tue Aug 16 19:29:05 2016
      aa  D0  Thu Aug 11 05:02:33 2016
      a   D0  Wed Aug 17 01:52:49 2016

        39371 blocks of size 1048576. 32252 blocks available
 
注:linux客户端用exit退出,Windows客户端用 net use * /del /y

Windows客户端

从Linux小白到大牛——与狼共舞的日子13 从Linux小白到大牛——与狼共舞的日子13

2、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)

  • 1)基于虚拟用户的访问形式;

  • 2)匿名用户只允许下载,不允许上传;

  • 3)禁锢所有的用户于其家目录当中;

  • 4)限制最大并发连接数为200:;

  • 5)匿名用户的最大传输速率512KB/s

  • 6)虚拟用户的账号存储在mysql数据库当中。

  • 7)数据库通过NFS进行共享。


环境:  RHEL6.4:ftp.example.com,192.168.82.58
       RHEL6.4:mysql.example.com,   192.168.82.57
       RHEL6.4:nfs.example.com, 192.168.82.56

1.在nfs上安装nfs服务并共享出mysqldata目录
[root@nfs ~]# yum install nfs-utils.x86_64 
            nfs-utils-lib-1.1.5-6.el6.x86_64  rpcbind-0.2.0-11.el6.x86_64 -y
[root@nfs ~]# chown 27.27 /mysqldata/
[root@nfs ~]# mkdir /mysqldata
[root@nfs ~]# vim /etc/exports
    /mysqldata 192.168.82.57(rw,no_root_squash)
[root@nfs ~]# service nfs start
[root@nfs ~]# chkconfig --add nfs
[root@nfs ~]# chkconfig nfs on


2.在mysql上安装mysql服务

(1)挂载nfs共享出来的mysqldata目录
[root@mysql ~]# showmount -e 192.168.82.56
Export list for 192.168.82.56:
/mysqldata 192.168.82.57
[root@mysql ~]# mkdir /mysqldata
[root@mysql ~]# vim /etc/fstab
    192.168.82.56:/mysqldata/mysqldata  nfs defaults,_netdev,vers=3  0 0
[root@mysql ~]# mount -a

(2)安装mysql服务并创建数据库和表
[root@sql ~]# yum install mysql-server.x86_64 -y
[root@mysql ~]# service mysqld start

[root@mysql ~]# mysql
        mysql> create database vsftpd;
        mysql> grant select on vsftpd.* to vsftpd@192.168.82.58 identified by 'magedu';
        mysql> flush privileges;
        mysql> use vsftpd;
        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> insert into users(name,password) values('magedu1',password('magedu'));
        mysql> insert into users(name,password) values('magedu2',password('magedu'));



3.在ftp上安装vsftp和pam_mysql
(1)配置epel的yum源
[root@ftp ~]# cat /etc/yum.repos.d/mirrors.aliyun.com_epel_6Server_x86_64_.repo 
    [mirrors.aliyun.com_epel_6Server_x86_64_]
    name=added from: http://mirrors.aliyun.com/epel/6Server/x86_64/
    baseurl=http://mirrors.aliyun.com/epel/6Server/x86_64/
    enabled=1
    gpgcheck=0

[root@ftp ~]# yum install vsftpd.x86_64 pam_mysql.x86_64 -y

(2)创建vsftp.mysql的pam配置文件
[root@ftp ~]# vim /etc/pam.d/vsftpd.mysql
        auth required /lib64/security/pam_mysql.so user=vsftpd 
              passwd=magedu host=192.168.82.57 db=vsftpd table=users 
              usercolumn=name passwdcolumn=password crypt=2
        account required /lib64/security/pam_mysql.so user=vsftpd 
              passwd=magedu host=192.168.82.57 db=vsftpd table=users 
              usercolumn=name passwdcolumn=password crypt=2

(3)创建vuser用户
[root@ftp ~]# useradd -s /sbin/nologin -d /var/ftproot vuser
[root@ftp ~]# chmod go+rx /ftproot

(4)创建vsftp用户的配置目录和配置文件
[root@ftp ~]# mkdir /etc/vsftpd/vusers_config/
[root@ftp ~]# cd /etc/vsftpd/vusers_config/
[root@ftp vusers_config]# touch magedu1 magedu2
[root@ftp vusers_config]# vim magedu1
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    anon_other_write_enable=YES
[root@ftp vusers_config]# vim magedu2
    anon_upload_enable=YES
    anon_mkdir_write_enable=NO
    anon_other_write_enable=NO

(5)备份并编辑vsftp的配置文件
[root@ftp ~]# cp /etc/vsftpd/vsftpd.conf{,.bak}
[root@ftp ~]# grep -v '^#' /etc/vsftpd/vsftpd.conf
    anonymous_enable=YES
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    chroot_local_user=YES
    listen=YES

    pam_service_name=vsftpd.mysql
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=yes#启用来宾用户
    guest_username=vuser#来宾用户名字
    user_config_dir=/etc/vsftpd/vusers_config  #用户配置文件的目录
    max_clients=200 #最大并发数
    anon_max_rate=512   #匿名用户最大传输速率


(6)重启vsftp服务并加入开机启动列表
[root@ftp ~]# service vsftpd restart
[root@ftp ~]# chkconfig vsftpd on

(7)测试vsftp的虚拟用户和匿名用户
测试ftp匿名用户,可以下载不能上传
[root@ftp ~]# ftp 192.168.82.58
    Connected to 192.168.82.58 (192.168.82.58).
    220 (vsFTPd 2.2.2)
    Name (192.168.82.58:root): ftp
    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 (192,168,82,58,201,37).
    150 Here comes the directory listing.
    drwxr-xr-x2 004096 Aug 17 09:04 pub
    226 Directory send OK.
    ftp> cd pub
    250 Directory successfully changed.
    ftp> put /aa
    local: /aa remote: /aa
    227 Entering Passive Mode (192,168,82,58,64,156).
    550 Permission denied.
    ftp> get aa
    local: aa remote: aa
    227 Entering Passive Mode (192,168,82,58,143,3).
    150 Opening BINARY mode data connection for aa (0 bytes).
    226 Transfer complete.

测试magedu1用户可以上传,下载,删除等
[root@ftp ~]# ftp 192.168.82.58
    Connected to 192.168.82.58 (192.168.82.58).
    220 (vsFTPd 2.2.2)
    Name (192.168.82.58:root): magedu1
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> put aa
    local: aa remote: aa
    227 Entering Passive Mode (192,168,82,58,29,124).
    150 Ok to send data.
    226 Transfer complete.
    ftp> get aa
    local: aa remote: aa
    227 Entering Passive Mode (192,168,82,58,53,196).
    150 Opening BINARY mode data connection for aa (0 bytes).
    226 Transfer complete.
    ftp> delete aa
    250 Delete operation successful.

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

(0)
N21_孤狼N21_孤狼
上一篇 2017-01-03 11:05
下一篇 2017-01-03 11:05

相关推荐

  • 数据结构应用详解-

    概述 最小生成树——无向连通图的所有生成树中有一棵边的权值总和最小的生成树 拓扑排序 ——由偏序定义得到拓扑有序的操作便是拓扑排序。建立模型是AOV网 关键路径——在AOE-网中有些活动可以并行地进行,所以完成工程的最短时间是从开始点到完成点的最长路径的长度,路径长度最长的路径叫做关键路径(Critical Path)。 最短路径——最短路径问题是…

    Linux干货 2015-04-07
  • 自制简易linux系统

    一、环境准备 1.笔记本电脑 2.vmware12软件 3.CentOS 6虚拟机 4.大于5G空间的物理磁盘分区 二、分区并挂载文件系统 1.添加磁盘 在vmware中选中CentOS 6系统并右击鼠标选择设置,添加–>硬盘–>SCSI(推荐)–>创建新虚拟磁盘–>大小改为5G–>完成 2.分区并…

    Linux干货 2016-09-20
  • sed命令的入门与进阶

    sed:Stream EDitor     什么是sed呢?sed被称为linux文本处理三剑客之一,另外两个就是大名鼎鼎的grep和awk。sed是非交互性的流编辑器,在处理文本时一次只读取一行文本,然后基于所给定的编辑脚本对模式空间中的内容做编辑处理并把处理后的结果输出至标准输出。接着处理下一行文本,这样不断重复,直到文件的末尾。se…

    2017-03-16
  • GOPS2017全球运维大会 • 深圳站将在深圳召开!

    第六届GOPS2017全球运维大会(本次)将于2017年4月21日-22日在深圳举行,历届金牌讲师精选亮相,各种精彩等您发掘。活动家为GOPS2017全球运维大会提供在线报名!在线报名地址:https://www.huodongjia.com/event-231365274.html 大会亮点 众多国外重量级嘉宾在路上 ► 目前正在和各位大咖商榷行程中,主会…

    2017-04-10
  • 使用ssh比较慢的小结

    1)情况说明 a、ping ip,响应正常 b、telnet ip,响应正常 c、ssh ip,响应慢,但是等很大会后还是能打开 2)处理方法 方法1: 修改本地中的/etc/ssh/ssh_config,把参数改为GSSAPIAuthentication no 方法2: a、修改远程服务器端的/etc/ssh/sshd_config ,把参数改为GSSAP…

    系统运维 2016-12-05
  • 计算机网络基础

    计算机网络基础 分层的网络模型 网络发展到今天,规模很庞大,内容很复杂,不利于网络的管理和教学。网络分层可以:降低网络结构的复杂性、把各层的接口标准化、简化模块设计、确保技术的互操作性、加快发展速度以及简化教学过程。 OSI模型——国际标准:根据国际标准化组织( ISO,International Standards Orgnization)提案,计算机网络…

    Linux干货 2016-11-22