标签:linux
一、建立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网络的主机访问;
[root@localhost /]# groupadd develop #添加组develop [root@localhost /]# useradd -G develop gentoo #添加用户 [root@localhost /]# useradd -G develop centos [root@localhost /]# useradd ubuntu [root@localhost /]# echo gentoo | passwd --stdin gentoo #设置用户密码 [root@localhost /]# echo centos | passwd --stdin centos [root@localhost /]# echo ubuntu | passwd --stdin ubuntu [root@localhost /]# smbpasswd -a gentoo #添加samba用户 [root@localhost /]# smbpasswd -a centos [root@localhost /]# smbpasswd -a ubuntu [root@localhost /]# vim /etc/samba/smb.conf #修改配置文件 hosts allow = 10.18.11. #添加ip白名单 [share] comment = share path = /share #设置共享路径 public = no #设置共享目录是否允许匿名访问 writable = yes #设置为有写入权限 write list = +develop #设置具有写入权限的用户列表 [root@localhost ~]# smbclient //10.18.11.29/share -U centos #使用centos用户有写权限 Enter centos‘s password: Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10] smb: \> ls . D 0 Sat Oct 22 17:20:02 2016 .. DR 0 Sat Oct 22 17:20:02 2016 77931220 blocks of size 1024. 71904540 blocks available smb: \> lcd /etc smb: \> put passwd putting file passwd as \passwd (946.6 kb/s) (average 946.6 kb/s) [root@localhost ~]# smbclient //10.18.11.29/share -U ubuntu #使用ubuntu用户没有写权限 Enter ubuntu‘s password: Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.10] smb: \> lcd smb: \> lcd /etc smb: \> put fstab NT_STATUS_ACCESS_DENIED opening remote file \fstab
二、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)
1)基于虚拟用户的访问形式;
2)匿名用户只允许下载,不允许上传;
3)禁锢所有的用户于其家目录当中;
4)限制最大并发连接数为200:;
5)匿名用户的最大传输速率512KB/s
6)虚拟用户的账号存储在mysql数据库当中。
7)数据库通过NFS进行共享。
实验环境如下
ip | 用途 |
10.18.11.29 | mysql+vsftp |
10.18.11.30 | nfs |
1、安装nfs服务器
[root@localhost /]# yum install nfsutil* rpcbind #安装nfs和rpcbind服务所需软件包 [root@localhost /]# mkdir /nfs #创建共享文件夹 [root@localhost ~]# groupadd -g 1001 mysql #添加mysql组 [root@localhost ~]# useradd -u 1001 -g 1001 mysql #添加mysql用户 [root@localhost ~]# chown mysql:mysql /nfs #修改/nfs属组为mysql,为之后挂载到mysql服务器上做datadir做准备 [root@localhost /]# vim /etc/exports #编辑/etc/exports文件,添加权限 /nfs 10.18.11.29(rw,sync,fsid=0,no_root_squash) [root@localhost /]# systemctl start rpcbind.service ##启动rpcbind服务 [root@localhost /]# systemctl start nfs-server.service #启动nfs服务
2、客户端挂载nfs文件夹
[root@localhost /]# mkdir /mysqldata #创建挂载路径 [root@localhost /]# mount -t nfs 10.18.11.30:/nfs /mysqldata #挂载nfs目录到/mysqldata
3、安装mysql
[root@localhost ~]# yum install -y mariadb mariadb-devel [root@localhost ~]# groupadd -g 1001 mysql #添加mysql组 [root@localhost ~]# useradd -u 1001 -g 1001 mysql #添加mysql用户 [root@localhost ~]# vim /etc/my.cnf #修改mysql配置文件 [mysqld] datadir=/mysqldata socket=/var/lib/mysql/mysql.sock character-set = utf8 user= mysql [root@localhost /]# mysql_install_db --datadir="/mysqldata/" #初始化mysql [root@localhost /]# systemctl status mariadb.service #启动mysql
4、创建数据库
MariaDB [(none)]> create database vsftpd; MariaDB [vsftpd]> grant select on vsftpd.* to vsftpd@‘10.18.11.29‘ identified by ‘magedu‘; #创建数据库用户,添加查询权限 MariaDB [vsftpd]> create table users (id int AUTO_INCREMENT NOT NULL,name char(50) binary NOT NULL,password char(48) binary NOT NULL,primary key(id)); #在vsftpd数据库中创建表users MariaDB [vsftpd]> use vsftpd MariaDB [vsftpd]> flush privileges; MariaDB [vsftpd]> insert into users(name,password) values(‘vsftpd1‘,password(‘magedu‘)); #插入用户vsftpd1 Query OK, 1 row affected (0.02 sec) MariaDB [vsftpd]> select * from users; +----+---------+-------------------------------------------+ | id | name | password | +----+---------+-------------------------------------------+ | 1 | vsftpd1 | *6B8CCC83799A26CD19D7AD9AEEADBCD30D8A8664 | +----+---------+-------------------------------------------+ 1 row in set (0.00 sec)
5、pam-mysql配置
[root@localhost pam_mysql-0.7RC1]# vim /etc/pam.d/vsftpd #编辑配置文件,添加如下两行 auth required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=10.18.11.29 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2 account required /lib64/security/pam_mysql.so user=vsftpd passwd=magedu host=10.18.11.29 db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
6、修改vsftp配置
[root@localhost /]# useradd -s /sbin/nologin -d /var/ftproot vuser #建立虚拟用户映射的系统用户及对应目录 [root@localhost /]# chmod go+rw /var/ftproot [root@localhost /]# vim /etc/vsftpd/vsftpd.conf #修改vsftpd配置文件 guest_enable=YES #允许虚拟用户账号访问 guest_username=vuser #gusest用户映射为vuser max_clients=200 #最多同时允许100个客户连接 anonymous_enable=YES #允许匿名用户访问 local_enable=YES anon_max_rate=512000 #限制anonymous传输速率为512KB/s anon_upload_enable=NO #anonymous是否具有上传的权限 anon_mkdir_write_enable=NO #anonymous是否具有建立目录的权限 anon_other_write_enable=NO #anonymous是否具有写入的权限 chroot_local_user=YES #对用户访问只限制在主目录不能访问其他目录 user_config_dir=/etc/vsftpd/vusers #虚拟账号配置目录 pam_service_name=vsftpd.mysql [root@localhost vusers]# vim /etc/vsftpd/vusers/vsftpd1 #配置虚拟账号权限 anon_upload_enable=YES anon_mkdir_write_enable=YES anon_other_write_enable=YES
7、运行结果
[root@localhost /]# ftp 10.18.11.29 Connected to 10.18.11.29 (10.18.11.29). 220 (vsFTPd 3.0.2) Name (10.18.11.29:root): vsftpd1 #用虚拟账号登陆 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> lcd /shell/ Local directory now /shell ftp> get test #下载文件 local: test remote: test 227 Entering Passive Mode (10,18,11,29,195,159). 150 Opening BINARY mode data connection for test (0 bytes). 226 Transfer complete. ftp> put case.sh #上传文件 local: case.sh remote: case.sh 227 Entering Passive Mode (10,18,11,29,234,27). 150 Ok to send data. 226 Transfer complete. 365 bytes sent in 9.2e-05 secs (3967.39 Kbytes/sec) ftp>
标签:linux
原文地址:http://hiqiwang.blog.51cto.com/4214574/1903017