N25期–第十三周作业

1、 建立samba共享,共享目录为/data,要求:(描述完整的过程)
  1)
共享名为shared,工作组为magedu
  2)
添加组develop,添加用户gentoo,centosubuntu,其中gentoocentosdevelop为附加组,ubuntu不属于develop组;密码均为用户名;
  3)
添加samba用户gentoo,centosubuntu,密码均为“mageedu”;
  4)
samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
  5)
samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;

 

 

# yum install -y samba

# service smb start

# service nmb start

 

# groupadd develop

# useradd -s
/sbin/nologin -G develop gentoo

# useradd -s
/sbin/nologin -G develop centos

# useradd -s
/sbin/nologin ubuntu

# echo
“gentoo” | passwd –stdin gentoo

# echo
“centos” | passwd –stdin centos

# echo
“ubuntu” | passwd –stdin ubuntu

 

# smbpasswd -a gentoo

New SMB password:

Retype new SMB password:

Added user gentoo.

# smbpasswd -a centos

# smbpasswd -a Ubuntu

 

# pdbedit –L

setfacl
-m g:develop:rwx /data/

getfacl
/data/

 

# cp /etc/samba/smb.conf{,.bak}

# vim /etc/samba/smb.conf

 

[shared]

workgroup = magedu

hosts allow = 172.16.0.0/16

comment = Shared test

path = /data

valid users = gentoo,centos,ubuntu,+develop

read list = ubuntu

write list = +develop

writable = yes

printable
= no


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

 

一、安装所需要程序

   
##
安装mysqlpam_mysql

    #
yum -y install  mysql-server mysql-devel
pam_mysql vsftpd

 

二、创建虚拟用户账号

   
1.
准备数据库及相关表

    首先请确保mysql服务已经正常启动。而后,按需要建立存储虚拟用户的数据库即可,这里将其创建为vsftpd数据库。

   
mysql> create database vsftpd;

   
mysql> grant select on vsftpd.* to centos@localhost identified by
‘centos’;

   
mysql> grant select on vsftpd.* to centos@127.0.0.1 identified by
‘centos’;

   
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)

     );

 

2、添加测试的虚拟用户

    根据需要添加所需要的用户,需要说明的是,这里将其密码为了安全起见应该使用PASSWORD函数加密后存储。

   
mysql> insert into users(name,password)
values(‘centos’,password(‘centos’));

   
mysql> insert into users(name,password)
values(‘gentoo’,password(‘gentoo’));

 

 

三、配置vsftpd

1.建立pam认证所需文件

   
#vi /etc/pam.d/vsftpd.mysql

    添加如下两行

   
auth required /lib/security/pam_mysql.so user=centos passwd=centos  host=localhost db=vsftpd table=users
usercolumn=centos passwdcolumn=centos crypt=2

   
account required /lib/security/pam_mysql.so user=centos  passwd=centos 
host=localhost db=vsftpd table=users usercolumn=gentoo
passwdcolumn=gentoo crypt=2

   

#建立虚拟用户映射的系统用户及对应的目录

    #
useradd -s /sbin/nologin -d /var/ftproot vuser

    #
chmod go+rx /var/ftproot

 

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

# vi /etc/vsftpd/vsftpd.conf

   请确保/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#指明虚拟用户的配置文件

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

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

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

[root@Vsftp vusers_config]# touch zhangsan
lisi

配置虚拟用户的权限

虚拟用户对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

# service vsftpd restart

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

(0)
victorli88victorli88
上一篇 2017-04-05
下一篇 2017-04-05

相关推荐

  • rsync+inotify实现数据同步——单向传输

    实验环境:<从A主机推送数据到B主机[B主机可以有多个]> A主机:10.1.43.102 B主机:10.1.43.103 配置流程: —rsyncserver—- <B主机上配置> 1.vim /etc/rsyncd.conf(用户,目录,模块,虚拟用户及密码文件) vim /etc/rsyncd.…

    Linux干货 2016-10-27
  • find命令浅谈

    本章内容   使用locate命令 使用find命令 使用Gnome搜索工具 压缩和解压缩工具 文件查找 在文件系统上查找符合条件的文件; 文件查找:locate, find 非实时查找(数据库查找):locate 实时查找:find locate 查询系统上预建的文件索引数据库 /var/lib/mlocate/mlocate.db 依…

    Linux干货 2016-08-15
  • Linux keepalived高可用集群

                       Linux keepalived高可用集群 keepalived简介:    keepalived是为了高可用ipvs集群而设计的,主要用作realserver的健康状态检测,如果有一台web…

    系统运维 2016-11-18
  • 马哥教育网络班22期+第五周课程练习

    1、显示当前系统上root、fedora或user1用户的默认shell; ~]# cat /etc/passwd |grep -E  "^(root|fedora|user1)" |awk -F: '{print $NF}'/bin/bash/bin/bash/bin/bash 2、找出/etc/rc.d/…

    Linux干货 2016-09-19
  • 马哥教育网络班N22期+第3周课程练习

    马哥教育网络班N22期+第3周课程练习 1、列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可。 示例: [root@Red Hat Enterprise Linux Desktop]# who | cut -d' &#039…

    Linux干货 2016-08-29
  • 二、(3)Linux的文件与数据之:元数据

    文件的元数据 在Linux的文件系统中,数据可分为两大类:数据和元数据 数据:泛指普通文件中的实际数据 元数据:用来描述一个文件的特征的系统数据 这样抽象的描述并不能很清楚地表示元数据的定义,所以下面将借助stat命令进行举例说明: stat命令 stat – display file or file system status(用于展示文件或文…

    2018-01-11

评论列表(1条)

  • 马哥教育
    马哥教育 2017-04-13 09:48

    能使用markdown并给出实验结果会更好~继续加油~