公司需求:
1. 公司搭建Samba服务器,将对公司数据进行统一的有效管理;
2. 所有员工在公司局域网内不论在哪台电脑上工作,都能访问并能将自己的文件数据保存在Samba文件服务器上。
3. 销售部,技术部都拥有各自部门的共享目录,其他部门不允许访问;
4. Samba服务器只供公司内部使用,并限量员工的使用空间。
根据网络拓扑进行Samba服务器的部署步骤;
一、建立公司员工账号及技术与销售组;
二、将相关员工加入技术及销售组;
三、建立销售及技术共享的目录,并更改目录相关权限;
四、安装并配置Samba服务器;
五、利用quota进行磁盘配额;
关于如何建账号,组这里就不再叙述。直接从第三步开始进行部署;
[root@server ~]# mkdir /home/sales
[root@server ~]# mkdir /home/jishu
[root@server ~]# chgrp jishu /home/jishu
[root@server ~]# chmod 770 /home/jishu
[root@server ~]# chgrp sales /home/sales
[root@server ~]# chmod 770 /home/sales
安装并配置Samba;
[root@server ~]# rpm -qa samba*
samba-common-3.0.23c-2
samba-3.0.23c-2
samba-client-3.0.23c-2
默认系统已经安装好Samba组件;
设置smb.conf配置文件如下:
[root@server ~]# vi /etc/samba/smb.conf
具体相关配置文件里面的参数,有兴趣自己去搜索相关资料;
#设置主机方面的参数;
[global]
#与Linux主机名称有关的设置信息
workgroup = keywise 工作组设置
netbios name=server Samba服务器的NETBIOS名称
server string = This is liang’s Samba Server
#与语言有关的设置信息
unix charset=utf8
display charset=utf8
dos charset=cp950
#与日志文件有关的设置信息
log file = /var/log/samba/%m.log 日志存放位置
max log size = 50
#与密码有关的设置信息
security = user 访问需要提供密码
encrypt passwords=yes 是否加密
smb password file=/etc/samba/smbpasswd 密码放置文件
#新增每个用户的默认目录及群组用户目录,如下图;
编辑完smb.conf文件后,保存退出;
然后设置可使用Samba的账号与密码;
先查看并确认密码文件是否存在,若不存在,得自行建立;
[root@server ~]# ls -l /etc/samba/smbpasswd
-rw------- 1 root root 207 Jul 6 01:15 /etc/samba/smbpasswd
新增用户并查看/etc/samba/smbpassword;如下图;添加samba账户之前,确认系统中有相关账号;
测试smb.conf语法设置的正确性;
[root@server ~]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[temp]"
Processing section "[homes]"
Processing section "[jishu]"
Processing section "[sales]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
启动并观察SMB服务
[root@server ~]# /etc/init.d/smb start
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
[root@server ~]# netstat -tlunp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2667/smbd
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2667/smbd
udp 0 0 192.168.1.50:137 0.0.0.0:* 2671/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 2671/nmbd
udp 0 0 192.168.1.50:138 0.0.0.0:* 2671/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 2671/nmbd
注:Samba默认会启动多个端口,TCP端口139,445;UDP端口137,138;
测试SAMBA
使用匿名账号查看,密码为空;看到相关的工享目录;
使用jack账号查看,能看到自己的家目录;每个拥有SAMBA账号的用户,看到的目录都和自己的账号同名;
开始在客户端进行测试;利用一个账户进行测试;在测试时,遇到相关LINUX防火墙安全性问题;因此建议先关闭防火墙,或建相应的规则允许通过;如下图:
利用一个属于sales组的账户,访问sales共享目录,出现如下错误;
查看由于账号没有加入sales组;因为/home/sales目录所属组为sales;因此没权限访问;
[root@server ~]# ll /home
total 72
drwxrwx--- 2 root jishu 4096 Jul 6 06:21 jishu
drwx------ 2 liang liang 4096 Jul 6 06:16 liang
drwx------ 2 root root 16384 Jun 26 08:43 lost+found
drwxrwx--- 2 root users 4096 Jul 6 01:16 public
drwxrwx--- 2 root sales 4096 Jul 6 02:30 sales
将账户加入相应组;
[root@server ~]# vi /etc/group
jishu:x:504:jack
sales:x:505:tom
然后利用net use * /del 删除已建连接;重新用Jack账号访问;
[root@server ~]# mount–a
[root@server ~]# sync;sync;sync; reboot
建立quota所需要的设置文件;
[root@server ~]# quotacheck -avug
quotacheck: Scanning /dev/hda6 [/home] quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
quotacheck: Cannot stat old user quota file: No such file or directory
quotacheck: Cannot stat old group quota file: No such file or directory
done
quotacheck: Checked 10 directories and 21 files
quotacheck: Old file not found.
quotacheck: Old file not found.
[root@server ~]#
以上提示为找不到相关设置文件;只能自行建立;
[root@server ~]# touch /home/aquota.user; touch /home/aquota.group
[root@server ~]# quotacheck -avug
quotacheck: Scanning /dev/hda6 [/home] done
quotacheck: Checked 10 directories and 23 files
[root@server ~]#
启动quota
[root@server ~]# quotaon -av
/dev/hda6 [/home]: group quotas turned on
/dev/hda6 [/home]: user quotas turned on
[root@server ~]#
设置用户磁盘配额;
[root@server ~]# edquota -u jack