第十三周作业

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共享服务仅允许来自于172.16.0.0/16网络的主机访问; 

    1)安装samba软件包

]# yum install samba -y

    2)添加系统用户和组

]# groupadd develop
]# useradd gentoo -G develop
]# useradd centos -G develop
]# useradd ubuntu
]# for i in gentoo centos ubuntu;do echo "$i"|passwd --stdin $i;done
Changing password for user gentoo.
passwd: all authentication tokens updated successfully.
Changing password for user centos.
passwd: all authentication tokens updated successfully.
Changing password for user ubuntu.
passwd: all authentication tokens updated successfully.

     3)添加samba用户

]# smbpasswd -a gentoo
]# smbpasswd -a centos
]# smbpasswd -a ubuntu
]# pdbedit -L
gentoo:1000:
ubuntu:1002:
centos:1001:

     4)编辑samba配置文件,添加下面内容:

[shared]                                            #定义共享名称
        comment = magedu share                      #注释信息
        path = /data                                #本地的共享目录
        browseable = yes                            #是否能够被所有用户看到
        read only = yes                             #是否为只读
        write list = @develop                       #拥有写权限的用户或组
        hosts deny = 172.16.0.0/255.255.255.0       #拒绝指定网段的访问

     5)重载samba服务使配置生效

]# systemctl reload smb.service

     6)测试

]# smbclient //192.168.0.111/shared -U gentoo
Enter gentoo's password: 
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> put php.ini
putting file php.ini as \php.ini (5814.8 kb/s) (average 5814.9 kb/s)        #使用gentoo用户能够上传文件
]# smbclient //192.168.0.111/shared -U ubuntu
Enter ubuntu's password: 
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.4.4]
smb: \> put php.ini
NT_STATUS_ACCESS_DENIED opening remote file \php.ini                        #使用ubuntu用户上传文件失败

2、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)
  1)基于虚拟用户的访问形式;
  2)匿名用户只允许下载,不允许上传;
  3)禁锢所有的用户于其家目录当中;
  4)限制最大并发连接数为200:;
  5)匿名用户的最大传输速率512KB/s
  6)虚拟用户的账号存储在mysql数据库当中。

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

    1)安装mysql和需要用到的依赖包

]# yum groupinstall "Server Platform" "Server Platform Development" -y
]# yum install mariadb* openssl-devel pam-devel -y

     2)编译安装pam_mysql

]# tar xf pam_mysql-0.7RC1.tar.gz
]# cd pam_mysql-0.7RC1
]# ./configure --with-mysql=/usr/ --with-openssl=/usr --with-pam=/usr --with-pam-mods-dir=/lib64/security/
]# make && make install

    3)在数据库中创建库与添加虚拟用户

]# mysql
MariaDB [(none)]> create database vsftpd;            #创建vsftpd库
MariaDB [(none)]> use vsftpd;
MariaDB [(none)]> create table users (               #创建虚拟用户表
    -> id int auto_increment not null primary key,
    -> name char(30) not null,
    -> password char(48) binary not null);
MariaDB [vsftpd]> insert into users(name,password) values ('tom',password('magedu'));            #插入两条虚拟用户信息
MariaDB [vsftpd]> insert into users(name,password) values ('jerry',password('magedu'));
MariaDB [vsftpd]> grant select on vsftp.* to 'vsftpd'@'localhost' identified by 'magedu';        #创建vsftpd用户并授权
MariaDB [vsftpd]> grant select on vsftp.* to 'vsftpd'@'127.0.0.1' identified by 'magedu';
MariaDB [vsftpd]> flush privileges;

     4)创建pam配置文件

]# vim /etc/pam.d/vsftpd.mysql
auto required pam_mysql.so user=vsftpd passwd=magedu host=localhost db=vsftpd table=users usercolumn=name pass
wdcolumn=password crypt=2
account required pam_mysql.so user=vsftpd passwd=magedu host=localhost db=vsftpd table=users usercolumn=name p
asswdcolumn=password crypt=2

     5)创建系统虚拟用户和ftp上传目录

]# useradd -s /sbin/nologin -d /ftproot/ vuser        #创建系统虚拟用户
]# chmod -w /ftproot                                  #取消根目录的写权限(根目录下不具有写权限)
]# cd /ftproot/
]# mkdir ftpdir                                       #创建ftp上传目录并修改权限
]# chown vuser.vuser ftpdir

     6)修改vsftpd配置文件

]# vim /etc/vsftpd/vsftpd.conf
chroot_local_user=YES            #限制所有用户在其家目录中
anonymous_enable=YES             #允许匿名用户登录
local_enable=YES                 #允许启用本地用户
write_enable=YES                 #允许本地用户拥有写权限
pam_service_name=vsftpd.mysql    #使用vsftpd.mysql作为pam认证文件
guest_enable=YES                 #激活虚拟用户
guest_username=vuser             #mysql虚拟用户在系统中对应的用户
virtual_use_local_privs=YES      #虚拟用户与本地用户的权限相同
max_clients=200                  #最大并发连接数为200
anon_max_rate=512000             #匿名用户最大传输速率为512Kb

      7)重启vsftpd服务生效

]# systemctl restart vsftpd.service

    8)将ftp目录通过nfs进行共享

]# vim /etc/exports
/ftproot/ftpdir *(rw,sync)                #将ftp目录设置为nfs共享盘
]# systemctl restart rpcbind.service      #重启rpcbind和nfs服务使配置生效
]# systemctl restart nfs.service
]# showmount -e 192.168.0.113             #测试与nfs服务的通信
Export list for 192.168.0.113:
/ftproot/ftpdir *

原创文章,作者:N26-西安-方老喵,如若转载,请注明出处:http://www.178linux.com/72453

(0)
N26-西安-方老喵N26-西安-方老喵
上一篇 2017-04-04
下一篇 2017-04-04

相关推荐

  • 磁盘管理

    1、创建一个10G分区,并格式为ext4文件系统。 (1)虚拟机添加21G硬盘 Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1&nbsp…

    Linux干货 2016-12-18
  • Linux中命令的分类,hash缓存表与别名

        命令的分类:     在Linnux中,平常工作用的是字符界面。Linux输入命令后,shell接收命令通过系统调用把命令送入内核中执行。    *shell中的可执行命令分为两类        1.内部命令:为shell自带命令,利用某种形式在开机后…

    Linux干货 2017-07-15
  • 马哥Linux第三周作业

    正则表达式 用户和组管理

    Linux干货 2017-12-31
  • 文本处理-三剑客-awk

    报告生成器,格式化文本输出
    awk [options] ‘BEGIN{ action;… } pattern{ action;… } END{ action;… }’ file …

    2018-03-16
  • grep命令与正则表达式的应用示例、find命令应用示例

    grep命令与正则表达式的应用示例、find命令应用示例 显示当前系统上root、fedora或user1用户的默认shell。 使用扩展正则表达式,它支持使用A|B表示或者之意。查看用户的默认shell,cat /etc/passwd文件,根据用户名所处位置进行锚定,其最后一个字段即表示该用户的默认shell。实现方式及结果如下:   找出/et…

    Linux干货 2016-11-28
  • N23-第五周博客作业

    1、显示当前系统上root、fedora或user1用户的默认shell。 [root@localhost ~]# cat /etc/passwd | egrep "^root\>" | cut -d: -f1,7 2、找出/etc/rc.d/init.d/functions文件中某单词后面跟一组小括号的行,形如:hell…

    Linux干货 2016-12-05

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-10 16:20

    非常的好,请继续保持~~~加油!!