1、建立samba共享,共享目录为/data,要求:(描述完整的过程) 1)共享名为shared,工作组为magedu; 2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名; 3)添加samba用户gentoo,centos和ubuntu,密码均为“magedu”; 4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问; 5)此samba共享服务仅允许来自于10.0.0.0/16网络的主机访问; 2、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程) 1)基于虚拟用户的访问形式; 2)匿名用户只允许下载,不允许上传; 3)禁锢所有的用户于其家目录当中; 4)限制最大并发连接数为200:; 5)匿名用户的最大传输速率512KB/s 6)虚拟用户的账号存储在mysql数据库当中。 7)数据库通过NFS进行共享。 题目1: 1.安装samba [root@rs1 ~]# yum -y install samba 2.添加组,用户以及创建共享目录 [root@rs1 ~]# groupadd develop [root@rs1 ~]# useradd -G develop gentoo [root@rs1 ~]# useradd -G develop centos [root@rs1 ~]# for user in {gentoo,centos,ubuntu};do echo $user;done [root@rs1 ~]# mkdir /data 3.修改共享目录权限 [root@rs1 ~]# chmod g+w /data 4.编辑samba配置文件: /etc/samba/smb.conf,添加如下配置: [shared] comment = week test path = /data browseable = yes public = no write = yes write list = +develop hosts allow = 10.0.0.0/255.255.0.0 5.启动服务: [root@rs1 ~]# systemctl start smb.service 查看是否启用端口445,139 6.测试: [root@rs2 ~]# smbclient -L 10.0.0.21 -U ubuntu Enter gentoo's password: Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.2.10] Sharename Type Comment --------- ---- ------- shared Disk week test IPC$ IPC IPC Service (Samba Server Version 4.2.10) Domain=[MAGEDU] OS=[Windows 6.1] Server=[Samba 4.2.10] Server Comment --------- ------- RS1 Samba Server Version 4.2.10 Workgroup Master --------- ------- MAGEDU RS1 [root@rs2 ~]# mount -t cifs //10.0.0.21/shared /mnt -o username=ubuntu -o password=magedu mount: //10.0.0.21/shared is write-protected, mounting read-only mount: cannot mount //10.0.0.21/shared read-only [root@rs2 ~]# mount -t cifs //10.0.0.21/shared /mnt -o username=gentoo -o password=magedu [root@rs2 ~]# df -hT|grep mnt //10.0.0.21/shared cifs 18G 2.3G 16G 13% /mnt [root@rs2 ~]# cd /mnt [root@rs2 mnt]# touch test1 [root@rs2 mnt]# ll total 0 -rw-r--r-- 1 1003 1006 0 Nov 11 23:01 test1 [root@rs1 ~]# id gentoo uid=1003(gentoo) gid=1006(gentoo) groups=1006(gentoo),1005(develop) 题目2: 环境: rs2:mysql+vsftpd rs1:smaba 1.安装MySQL [root@rs2 ~]# groupadd -g 1100 mysql [root@rs2 ~]# useradd -u 1100 -g mysql -M mysql [root@rs2 ~]# mount -t cifs //10.0.0.21/mysql /opt/mysql -o username=mysql -o password=magedu [root@rs2 ~]# chown -R mysql.mysql /opt/mysql [root@rs2 ~]# tar xf mysql-5.6.31-linux-glibc2.5-x86_64.tar.gz -C /usr/local/ [root@rs2 ~]# cd /usr/local [root@rs2 local]# ln -sv mysql-5.6.31-linux-glibc2.5-x86_64 mysql [root@rs2 local]# cd mysql [root@rs2 mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/opt/mysql [root@rs2 mysql]# cp support-files/mysql.server /etc/init.d/mysqld [root@rs2 mysql]# chmod +x /etc/init.d/mysqld [root@rs2 mysql]# cp support-files/my-default.cnf /etc/my.cnf [root@rs2 mysql]# vim /etc/my.cnf basedir = /usr/local/mysql datadir = /opt/mysql skip_name_resolve = 1 character_set_server = utf8 innodb_file_per_table = 1 [root@rs2 mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql [root@rs2 mysql]# vim /etc/ld.so.conf.d/mysql.conf /usr/local/mysql/lib [root@rs2 mysql]# ldconfig -v [root@rs2 mysql]# vim /etc/profile.d/mysql.sh export PATH=/usr/local/mysql/bin:$PATH [root@rs2 mysql]# source /etc/profile.d/mysql.sh [root@rs2 mysql]# service mysqld start 2.安装vsftpd [root@rs2 ~]# yum -y install vsftpd pam-devel 安装pam_mysql: [root@rs2 ~]# tar xf pam_mysql-0.7RC1.tar.gz [root@rs2 ~]# cd pam_mysql-0.7RC1 [root@rs2 pam_mysql-0.7RC1]# ./configure --with-mysql=/usr/local/mysql/ --with-pam-mods-dir=/lib64/security/ [root@rs2 pam_mysql-0.7RC1]# make install 编辑vsftpd.conf配置文件: anonymous_enable=YES anon_upload_enable=NO anon_mkdir_write_enable=NO anon_max_rate=512000 max_clients=200 local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES xferlog_enable=YES connect_from_port_20=YES xferlog_file=/var/log/xferlog xferlog_std_format=YES download_enable=YES ascii_upload_enable=YES ascii_download_enable=YES chroot_local_user=YES listen=YES listen_ipv6=NO guest_enable=YES guest_username=mysqlftp virtual_use_local_privs=YES pam_service_name=vsftpd tcp_wrappers=YES vsftpd_log_file=/var/log/vsftpd.log allow_writeable_chroot=YES 创建虚拟用户映射账户: [root@rs2 ~]# useradd mysqlftp -d /ftproot 编辑vsftpd的pam认证文件:/etc/pam.d/vsftpd #%PAM-1.0 session optional pam_keyinit.so force revoke auth sufficient /lib64/security/pam_mysql.so user=vsftp passwd=redhat \ host=127.0.0.1 db=ftp table=users usercolumn=name passwdcolumn=password crypt=2 auth requiredpam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed auth requiredpam_shells.so auth includepassword-auth account sufficient /lib64/security/pam_mysql.so user=vsftp passwd=redhat \ host=127.0.0.1 db=ftp table=users usercolumn=name passwdcolumn=password crypt=2 account includepassword-auth session required pam_loginuid.so session includepassword-auth 备注:此认证文件可以使vsftpd服务应用虚拟账号和本地账号;如果只想使用虚拟账号机制, 则只使用pam_mysql相关的2行;此文件认证机制顺序:先检查pam_mysql认证机制;后检查本地账号密码认证机制; 创建vsftpd使用的数据库: mysql> create database ftp; mysql> use ftp; 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> grant SELECT on ftp.* to vsftp@localhost identified by 'redhat'; mysql> grant SELECT on ftp.* to vsftp@127.0.0.1 identified by 'redhat'; 添加一个虚拟账号: mysql> insert into users(name,password) values('nginx',password('redhat')); 启动服务: [root@rs2 ~]# systemctl start vsftpd 3.测试 [root@rs1 ~]# lftp -u nginx,redhat 10.0.0.22 lftp nginx@10.0.0.22:~> ls -rw-r--r-- 1 0 0 1667 Nov 12 08:58 passwd lftp nginx@10.0.0.22:/> exit [root@rs1 ~]# lftp 10.0.0.22 lftp 10.0.0.22:~> ls drwxr-xr-x 2 0 0 6 Mar 31 2016 pub lftp 10.0.0.22:/> quit [root@rs1 ~]# lftp -u devon,redhat 10.0.0.22 lftp devon@10.0.0.22:~> ls -rw-r--r-- 1 0 0 1667 Nov 12 08:58 passwd lftp devon@10.0.0.22:/> quit [root@rs1 ~]# lftp -u nginx,redhat 10.0.0.22 lftp nginx@10.0.0.22:~> ls -rw-r--r-- 1 0 0 1667 Nov 12 08:58 passwd lftp nginx@10.0.0.22:/> quit
原创文章,作者:oranix,如若转载,请注明出处:http://www.178linux.com/76616