马哥教育网络21期+第十三周练习博客
1、建立samba共享,共享目录为/data,要求:(描述完整的过程)
1)共享名为shared,工作组为magedu;
在服务器上安装samba
]# yum install samba
创建共享目录/data
启动samba的nmb和smb的服务
]# service nmb start; service smb start
这里我使用了单独的磁盘分区进行samba的文件存储
将区分好的磁盘空间挂载至data这个目录下
2)添加组develop,添加用户gentoo,centos和ubuntu,其中gentoo和centos以develop为附加组,ubuntu不属于develop组;密码均为用户名;
增加用户
useradd -s /sbin/nologin -G develop gentoo
echo "gentoo" | passwd --stdin gentoo
useradd -s /sbin/nologin -G develop centos
echo "centos" | passwd --stdin centos
useradd -s /sbin/nologin ubuntu
echo "ubuntu" | passwd --stdin ubuntu
创建develop组编辑/etc/group配置文件将gentoo和centos加入到develop组组中
[root@ns2 samba]# id gentoo
uid=501(gentoo) gid=501(gentoo) groups=501(gentoo),504(develop)
[root@ns2 samba]# id centos
uid=502(centos) gid=502(centos) groups=502(centos),504(develop)
3)添加samba用户gentoo,centos和ubuntu,密码均为“mageedu”;
[root@ns2 samba]# smbpasswd -a gentoo
New SMB password:
Retype new SMB password:
Added user gentoo.
[root@ns2 samba]# smbpasswd -a centos
New SMB password:
Retype new SMB password:
Added user centos.
[root@ns2 samba]# smbpasswd -a ubuntu
New SMB password:
Retype new SMB password:
Added user ubuntu.
这里先进行测试查看在另外一台服务器上是否可以使用以上的三个用户进行访问
[root@localhost ~]# smbclient -L 172.16.0.122 -U centos
Enter centos's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 3.6.23-36.el6_8)
centos Disk Home Directories
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]
Server Comment
--------- -------
NS2 Samba Server Version 3.6.23-36.el6_8
WIN-21CF1KE3RK9 ADMIN
Workgroup Master
--------- -------
WORKGROUP WIN-21CF1KE3RK9
4)此samba共享shared仅允许develop组具有写权限,其他用户只能以只读方式访问;
编写/etc/smb.conf配置文件
[shared]
commnet = WHK work
path = /data
valid users = gentoo,centos,ubuntu,@develop
read list = ubuntu
write list = @develop
writable = yes
printable = no
这里尝试登录
[root@localhost ~]# smbclient //172.16.0.122/data -U centos
Enter centos's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
[root@localhost ~]# smbclient //172.16.0.122/shared -U centos
Enter centos's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]
smb: \>
smb: \>
smb: \> ls
. D 0 Sat Sep 24 19:56:02 2016
.. DR 0 Sat Sep 24 19:22:08 2016
lost+found D 0 Sat Sep 24 19:56:02 2016
40330 blocks of size 524288. 37938 blocks available
这里出现了一个问题在使用develop组中的用户想写入文件发现没有权限,这里需要提醒此服务当中使用的交集模式,默认使用权限最小的方式进行修改文件问属性
[root@localhost ~]# smbclient //172.16.0.122/shared -U centos
Enter centos's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-36.el6_8]
smb: \>
smb: \>
smb: \>
smb: \>
smb: \> mkdir wanghongkai
smb: \>
smb: \>
smb: \> ls
. D 0 Sat Sep 24 20:41:55 2016
.. DR 0 Sat Sep 24 19:22:07 2016
lost+found D 0 Sat Sep 24 19:56:02 2016
wanghongkai D 0 Sat Sep 24 20:41:55 2016
40330 blocks of size 524288. 37938 blocks available
5)此samba共享服务仅允许来自于172.16.0.0/16网络的主机访问;
这里samba的共享服务仅允许来自于特定的网段进行主机访问,那么就需要在全局配置中进行定义[glob]
workgroup = WORKGROUP
server string = Samba Server Version %v
netbios name = MYSERVER
; interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
hosts allow = 172.16.0.0/16
2、搭建一套文件vsftp文件共享服务,共享目录为/ftproot,要求:(描述完整的过程)
安装所需要的软件
]# yum -y install mysql-server mysql-devel pam_mysql
1)基于虚拟用户的访问形式;
2)匿名用户只允许下载,不允许上传;
3)禁锢所有的用户于其家目录当中;
chroot_local_user=YES
4)限制最大并发连接数为200:;
5)匿名用户的最大传输速率512KB/s
6)虚拟用户的账号存储在mysql数据库当中。
7)数据库通过NFS进行共享。
在服务器上启动nfs服务
]# service nfs start
Starting NFS services: [ OK ]
Starting NFS quotas: [ OK ]
Starting NFS mountd: [ OK ]
Stopping RPC idmapd: [ OK ]
Starting RPC idmapd: [ OK ]
Starting NFS daemon: [ OK ]
为共享数据库的提供特定的文件路径
在/etc/exports上共享nfs服务器端共享的文件系统
]# cat /etc/exports
/mydata/data 172.16.0.136(rw)
将NFS的文件系统挂载至mnt目录上
]# mount -t nfs 172.16.0.136:/mydata/data/ /mnt
修改数据库的配置文件
[mysqld]
datadir=/mydata/data
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
编写vsftp的数据用户列表
mysql> CREATE DATABASE vsftpd;-->创建数据库
mysql> grant select on vsftpd.* to vsftpd@'172.16.%.%' identified by 'www.magedu.com';-->允许172.16段的所有地址访问数据库
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('magedu1',password('magedu'));
Query OK, 1 row affected (0.00 sec)
mysql> insert into users(name,password) values('magedu2',password('magedu'));
Query OK, 1 row affected (0.00 sec)
mysql> insert into users(name,password) values('wostop',password('password01!'));
Query OK, 1 row affected (0.00 sec)
建立pam认证所需要的文件
]# cat /etc/pam.d/vsftpd.mysql
auth required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
account required /lib/security/pam_mysql.so user=vsftpd passwd=www.magedu.com host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password crypt=2
为虚拟用户建立系统用户
]# useradd -s /sbin/nologin -d /ftproot/ vuser
并修改权限
]#chmod go+rx /var/ftproot
编写/etc/vsftpd/vsftpd.conf
加入如下:
guest_enable=YES
guest_username=vuser
pam_service_name=vsftpd.mysql-->启用mysql认证
max_clients=200
anon_max_rate=512
使用其他服务器进行测试:
[root@ns1 htdocs]]# ftp 172.16.0.122
Connected to 172.16.0.122 (172.16.0.122).
220 (vsFTPd 2.2.2)
Name (172.16.0.122:root): magedu1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
227 Entering Passive Mode (172,16,0,122,114,1).
150 Here comes the directory listing.
drwx------ 2 500 500 4096 Sep 16 15:45 cd
226 Directory send OK.
ftp> mkdir wanghongkai
257 "/wanghongkai" created
ftp> exit
221 Goodbye.
原创文章,作者:wostop,如若转载,请注明出处:http://www.178linux.com/56340


评论列表(1条)
赞,版风独特~~总结的也不错,加油~