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

# groupadd develop
# useradd -G develop gentoo
# useradd -G develop centos
# useradd ubuntu
# echo "ubuntu" | passwd --stdin ubuntu
# yum install samba
# vim /etc/samba/samba.conf
[global]
        workgroup = magedu
        hosts allow = 172.16.
[shared]
        comment = TEST
        path = /data
        guest ok = no
        valid users = gentoo,centos,ubuntu
        writable = yes
        write list = +develop
# mkdir /data; chown :develop /data
# smbpasswd -a centos
# smbpasswd -a gentoo
# smbpasswd -a ubuntu
# service nmb start; service smb start

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

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

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

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

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

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

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

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

准备工作

node1:192.168.90.2
# mkdir /data
# vim /etc/exports
/data  192.168.90.3(rw)
# service nfs start
node2:192.168.90.3
# mkdir /mydata
# showmount -e 192.168.90.2
# vim /etc/fstab
192.168.90.2:/data  /mydata  nfs  defaults  0  0
# chown -R mysql.mysql /mydata

安装MySQL、vsftpd和pam_mysql

# yum install -y vsftpd pam_mysql
以二进制格式安装MySQL,关键一步指明datadir
# scripts/mysql_install_db --user=mysql --datadir=/mydata
# vim /etc/my.cnf
[mysqld]
datadir=/mydata
skip_name_resolve=ON

创建虚拟用户账户

准备数据库及相关表

mysql> CREATE DATABASE vsftpd;

mysql> GRANT SELECT ON vsftpd.* TO vsftpd@192.168.90.% IDENTIFIED BY '000000';
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)
    -> );

添加测试用虚拟用户,此处使用PASSWARD函数加密后存储

mysql> INSERT INTO users(name,password) VALUES('tom',password('000000'));

配置vsftpd

创建pam认证所需文件

# vim /etc/pam.d/vsftpd.mysql//-->文件名可任意
auth required /lib64/security/pam_mysql.so user=vsftpd passwd=000000 host=192.168.90.3 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2//-->用于认证用户
account required /lib64/security/pam_mysql.so user=vsftpd passwd=000000 host=192.168.90.3 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2//-->用于检查用户时效性
//-->相关详细配置参数可参照pam_mysql安装后生成文件/usr/share/doc/pam_mysql-0.7/README,man即可。

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

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

请确保/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
anno_max_rate=512000
max_clients=200

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

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

启动vsftpd服务并进行验证。

Note:针对不同类型的用户应分别进行配置!此处仅仅演示简单的配置过程。

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

(0)
JeasonJeason
上一篇 2016-10-24 09:10
下一篇 2016-10-24 09:10

相关推荐

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

    1、Linux上文件/目录相关命令有哪些? 1)目录管理类命令:mkdir、rmdir (1)mkdir:make directorise 创建文件夹  使用格式:      mkdir [OPTION]… DIRECTORY…    &nb…

    Linux干货 2016-09-08
  • 来两道百度的shell开胃菜

    1、写脚本实现,可以用shell、perl等。在目录/tmp下找到100个以abc开头的文件,然后把这些文件的第一行保存到文件new中。 方法1: #!/bin/sh for files in `find /tmp -type f -name "abc*"|h…

    Linux干货 2016-09-19
  • Linux 第九天: Linux Shell脚本编程

    Linux 第九天: (08月11日) Linux Shell脚本编程     Shell脚本是包含一些命令或声明, 并符合一定格式的文本文件格式要求 运行shebang机制#!/bin/bash   bash -n /path/to/some_script  检测脚本中的语法错误bash -x /path/to/so…

    Linux干货 2016-08-15
  • 习题

    1、删除/etc/grub2.conf文件中所有以空白开头的行行首的空白字符 2、删除/etc/fstab文件中所有以#开头,后面至少跟一个空白字符的行的行首的#和空白字符 3、在/root/install.log每一行行首增加#号 4、在/etc/fstab文件中不以#开头的行的行首增加#号 5、处理/etc/fstab路径,使用sed命令取出其目录名和基…

    Linux干货 2016-08-10
  • The second week’s homework

    一.linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。 Linux 文件与目录管理 我们知道Linux的目录结构为树状结构,最顶级的目录为根目录 /。 其他目录通过挂载可以将它们添加到树中,通过解除挂载可以移除它们。 首先需要知道什么是绝对路径与相对路径。 绝对路径: 路径的写法,由根目录 / 写起,例如: /usr/shar…

    Linux干货 2016-12-12
  • 第二周部分练习

    (1)用户管理: 1.创建用户gentoo,附加组为bin和root,默认shell为/bin/csh,注释信息为”Gentoo Distribution” 使用id命令查看用户信息 使用cat命令查看配置文件/etc/passwd 2.创建下面的用户、组和组成员关系 名字为admins的组 用户natasha,使用admins作为附…

    2017-07-23

评论列表(1条)

  • 马哥教育
    马哥教育 2016-10-24 23:03

    需求完成了,最好附一些说明性的示例,能清楚的知道那些参数作用于那个服务之中的那个用户之类的