首页 > 代码库 > Linux第十三周

Linux第十三周

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、创建用户及组 

[root@Samba ~]# groupadd develop

[root@Samba ~]# useradd -G develop gentoo

[root@Samba ~]# useradd -G develop centos

[root@Samba ~]# useradd ubuntu

[root@Samba ~]# for i in gentoo centos ubuntu;do echo $i:$i | chpasswd;done


2、安装Samba,并修改配置文件

[root@Samba ~]# yum -y install samba

[root@Samba ~]# cd /etc/samba/

[root@Samba samba]# cp smb.conf{,.bak}

[root@Samba samba]# vim smb.conf

修改

workgroup = MYGROUP

workgroup = magedu

修改

passdb backend = tdbsam

    passdb backend = smbpasswd

    smb passwd file = /etc/samba/smbpasswd

添加 

hosts allow = 172.16.0.0/16

末尾添加

[shared]

comment = Magedu.com

path = /data

guest = yes 

writable = no

write list = +develop


3、创建Samba用户并启动服务

[root@Samba samba]# smbpasswd -a gentoo

New SMB password:

Retype new SMB password:

Added user gentoo.

[root@Samba samba]# smbpasswd -a centos

New SMB password:

Retype new SMB password:

Added user centos.

[root@Samba samba]# smbpasswd -a ubuntu

New SMB password:

Retype new SMB password:

Added user ubuntu.

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

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

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

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

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

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

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

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


 配置环境:

 nfs服务器:192.168.1.61

 vsftp、mysql服务器:192.168.1.64


一、通过NFS服务器共享数据库

1、在192.168.1.61服务器上启动nfs服务,设置共享目录为/data

[root@NFS ~]# mkdir /data

[root@NFS ~]# groupadd -g 27 mysql

[root@NFS ~]# useradd -g mysql -u 27 -s /sbin/nologin -M mysql 

[root@NFS ~]# chown -R mysql.mysql /data/

[root@NFS ~]# vim /etc/exports 

/data   192.168.1.64(rw,no_root_squash)

[root@NFS ~]# service  nfs start


2、在192.168.1.64服务器上安装mysql,创建目录/mydata 用来挂载nfs共享目录。

[root@Vsftp ~]# yum -y install mysql mysql-server mysql-devel

[root@Vsftp ~]# mkdir /mydata

[root@Vsftp ~]# chown -R mysql.mysql /mydata/

[root@Vsftp ~]# mount 192.168.1.61:/data /mydata/

[root@Vsftp ~]# vim /etc/my.cnf 

修改

datadir=/var/lib/mysql

datadir=/mydata

#初始化mysql

[root@Vsftp ~]# mysql_install_db --datadir=/mydata/

[root@Vsftp ~]# service mysqld start

二、基于虚拟用户的vsftp

1、在192.168.1.64服务器上创建数据库


mysql> create database vsftpd;


#创建数据库用户,授权对vsftpd数据库有查询权限

grant select on vsftpd.* to vsftpd@127.0.0.1 identified by ‘123456‘;

mysql> grant select on vsftpd.* to vsftpd@192.168.1.64 identified by ‘123456‘;

mysql> flush privileges;


#在vsftpd数据库中创建表users

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 (‘zhangsan‘,password(‘123456‘));

mysql> insert into users (name,password) values (‘lisi‘,password(‘123456‘));


2、在192.168.1.64服务器上安装vsftpd服务及pam_mysql认证


#安装epel源

[root@Vsftp ~]# rpm -ivh epel-release-latest-6.noarch.rpm


#安装vsftpd服务及pam_mysql认证

[root@Vsftp ~]# yum -y install vsftpd pam_mysql


3、建立pam认证需要的文件

[root@Vsftp ~]# vim /etc/pam.d/vsftpd.mysql

auth required pam_mysql.so user=vsftpd passwd=123456 host=192.168.1.64 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2

account required pam_mysql.so user=vsftpd passwd=123456 host=192.168.1.64 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2


4、添加虚拟用户对应的系统用户,使其适用mysql认证

[root@Vsftp ~]# useradd -s /sbin//nologin -d /ftproot vuser

[root@Vsftp ~]# chmod +rx /ftproot/


5、配置vsftp服务

[root@Vsftp ~]# cd /etc/vsftpd/

[root@Vsftp vsftpd]# cp vsftpd.conf{,.bak}

请确保/etc/vsftpd.conf中已经启用了以下选项

anonymous_enable=NO

local_enable=YES

write_enable=NO

anon_upload_enable=NO

anon_mkdir_write_enable=NO

anon_other_write_enable=NO

chroot_local_user=YES #将用户禁锢在自己的家目录中

guest_enable=YES

guest_username=vuser #指明虚拟用户映射到的系统用户

pam_service_name=vsftpd.mysql #指明使用/etc/pam.d/vsftpd.mysql来认证

user_config_dir=/etc/vsftpd/vusers_config #指明虚拟用户的配置文件


6、创建所需要目录,并有虚拟用户提供配置文件

[root@Vsftp vsftpd]# mkdir /etc/vsftpd/vusers_config

[root@Vsftp vsftpd]# cd /etc/vsftpd/vusers_config

[root@Vsftp vusers_config]# touch zhangsan lisi


7、配置虚拟用户的权限

虚拟用户对vsftpd服务的访问权限是通过匿名用户的相关指令进行的。比如,如果需要让zhangsan用户具有上传文件的权限,可以修改/etc/vsftpd/vusers_config/zhangsan文件,在里面添加如下选项即可。

[root@Vsftp vusers_config]#cat /etc/vsftpd/vusers_config/zhangsan

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES


[root@Vsftp vsftpd]# service vsftpd start

三、基于匿名用户的vsftp

[root@Vsftp vsftpd]# grep -v ^# vsftpd.conf

anonymous_enable=YES

local_enable=NO

write_enable=NO

local_umask=022

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_std_format=YES

download_enable=YES #允许下载

max_clients=200 #允许并发客户端数目

anon_max_rate=512k #最大下载速度

listen=YES


pam_service_name=vsftpd

userlist_enable=YES #针对系统用户访问的控制策略

tcp_wrappers=YES


[root@Vsftp vsftpd]# service vsftpd restart


本文出自 “追梦” 博客,请务必保留此出处http://sihua.blog.51cto.com/377227/1873275

Linux第十三周