13-安装与配置Samba服务器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了13-安装与配置Samba服务器相关的知识,希望对你有一定的参考价值。
零、实验环境
SambaServer:192.168.80.100/24
SambaClient:192.168.80.110/24
WinXP:192.168.80.120/24
一、安装
1、安装Samba服务
yum install samba
2、查看相关软件包
rpm -qa | grep samba
samba4-libs-4.2.10-12.el6_9.x86_64
samba-winbind-3.6.23-45.el6_9.x86_64
samba-client-3.6.23-45.el6_9.x86_64
samba-3.6.23-45.el6_9.x86_64
samba-winbind-clients-3.6.23-45.el6_9.x86_64
samba-common-3.6.23-45.el6_9.x86_64
3、查看Samba相关配置文件
rpm -qc samba
/etc/logrotate.d/samba
/etc/pam.d/samba
/etc/samba/smbusers
4、查看Samba主配置文件
cat /etc/samba/smb.conf
5、设置开机自动启动samba服务
chkconfig smb on
6、启动samba服务
service smb start
二、配置防火墙规则
1、检查防火墙是否启动,是否开机启动
service iptables start
chkconfig iptables on
2、添加防火墙规则,允许客户端访问共享文件夹
iptables -I INPUT -p tcp --dport 139 -j ACCEPT
iptables -I INPUT -p tcp --dport 445 -j ACCEPT
iptables -I INPUT -p udp --dport 137 -j ACCEPT
iptables -I INPUT -p udp --dport 138 -j ACCEPT
3、保存防火墙规则
/sbin/service iptables save
4、查看防火墙配置
iptables -L
三、Samba服务器的配置文件
1、查看Samba主配置文件
cat /etc/samba/smb.conf
2、重命名配置文件
mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
3、去掉注释行并产生新的配置文件
grep -v "#" /etc/samba/smb.conf.bak >/etc/samba/smb.conf
4、测试配置文件是否正确
testparm -v
四、设置允许匿名用户访问的Samba服务器
1、创建文件夹
mkdir /data
2、修改权限
chmod 777 /data
3、设置配置文件
vi /etc/samba/smb.conf
[smb.conf]
①将[global]中security改为 = share
②在后边添加以下内容
[data]
comment = dataFile #设置共享的说明信息(描述)
path = /data #指定共享目录的路径
browseable = yes #所有samba用户都可以看到该目录(是否可见)
read only = no #允许只读(NO,可读写)
public = yes #是否允许匿名用户访问
create mode =0664 #与create mask参数意思相同,在主目录中建立一个文件的默认权限
directory mode =0775 #与directory mask参数意思相同,在主目录中建立一个目录时的默认权限
writable = yes #用户对共享目录可写
4、重启Samba服务
service smb restart
5、验证:在XP上访问Samba服务器
①在浏览器中输入\192.168.80.100
②上传测试文件
③查看权限
ll /data/
总用量 8
-rw-rw-r-- 1 nobody nobody 23 1月 25 21:22 test.txt 664
drwxrwxr-x 2 nobody nobody 4096 1月 25 21:24 zhang 775
6、减少在Windows中打开Samba服务器的等待时间
vi /etc/hosts
[hosts]
127.0.0.1 SambaServer #写自己的计算机名
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
五、创建需要登录的Samba服务器
1、修改Samba配置文件来支持验证
vi /etc/samba/smb.conf
[smb.conf]
security = user #修改
2、关于samba用户密码的文件
存放samba用户密码的文件有两种类型
数据库文件
/var/lib/samba/private/passdb.tdb
密码文件
/var/lib/samba/private/smbpasswd
3、创建Linux用户并设置密码
useradd zhang
useradd wang
passwd zhang
passwd wang
4、将Linux用户添加到Samba用户并设置密码
smbpasswd -a zhang
smbpasswd -a wang
5、查看有几个Samba用户
pdbedit -L
PS:
Smbpasswd:主要作用是为系统创建用户创建samba用户
-a 新建用户
使用的时候创建的samba用户必须在系统用户中存在。否则samba找不到系统用户则创建失败
-d 冻结用户,就是这个用户不能在登录了
-e 恢复用户,解冻用户,让冻结的用户可以在使用
-n 把用户的密码设置成空.
-x 删除用户
pdbedit:管理samba 用户数据库的一个工具
pdbedit -a -u username 增加一个samba用户
pdbedit -x samba_user 删除用户
pdbedit -L查看创建的samba用户
6、验证:在WindowsXP访问并进行上传修改操作,在Linux上用ll 对应目录 可以查看文件所有者。
PS:如想快速切换用户可以在CMD中用net use * /del 删除访问凭证。
六、更改samba用户密码文件
1、修改配置文件
vi /etc/samba/smb.conf
在[global]中修改 passdb backend =为 smbpasswd,保存并重启。
2、查看用户数据库文件夹中有没有密码文件
ll /var/lib/samba/private/
3、查看Samba用户的状态
pdbedit -L
回车后为空,需要创建账户
4、将Linux用户添加到Samba用户并设置密码
smbpasswd -a zhang
smbpasswd -a wang
5、再次查看
pdbedit -L
zhang:500:
wang:501:
6、查看Samba账户密码文件
cat /var/lib/samba/private/smbpasswd
zhang:500:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:3DBDE697D71690A769204BEB12283678:[U ]:LCT-5A69E386:
wang:501:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:5A420E7750B39BE09FA29D314FA4B51C:[U ]:LCT-5A69E38C:
7、验证:再次在WindowsXP访问
七、设置Samba服务器网络安全
1、网络访问控制
①设置Samba服务允许通过哪个地址或哪个网卡来访问(根据实际情况设置)
vi /etc/samba/smb.conf
[smb.conf]
; interfaces = lo eth1 #寻找这个,根据你的实际情况设置,可使用ifconfig查看
interfaces = 192.168.80.100/24 #添加
bind interfaces only = YES #强制绑定
重启服务,在Windows客户端中检查可否访问
service smb restart
②设置那些网段能够访问Samba服务器
vi /etc/samba/smb.conf
; interfaces = lo eth0
interfaces = 192.168.80.222/24
bind interfaces only = YES
hosts allow = 127. 192.168.80.0/24 EXCEPT 192.168.80.130 ,192.168.80.131 #允许那个网段访问,EXCEPT排除那个访问
hosts deny = 192.168.80.140
PS:
a.等价某一个网段写法:
例如:
192.168.80.X等价于 192.168.80.0/24等价于 192.168.80.0/255.255.255.0
b.在Samba服务器中允许优先
③设置文件夹允许那些网段访问
客户端必须先通过全局网络设置允许访问Samba服务才可以,以下设置data文件夹只允许192.168.80.10和192.168.80.20访问。
vi /etc/samba/smb.conf
[data]
comment = dataFile
path = /data
browseable = yes
read only = no
public = yes
create mode =0444
directory mode =0775
writable = yes
hosts allow = 192.168.80.10 192.168.80.20
④设置哪些用户能够访问共享文件夹
invalid users 是合法用户,valid users 是不合法用户。这两个参数分别设置允许访问文件夹和不允许访问文件夹的用户列表。一个用户同时出现在两个列表中的时候,不允许注册优先。列表中的用户名可以用逗号隔开。@表示组,代表组中全部成员。
例如:
valid users = @managers
invalid users = wang,zhang
a.创建组,并将用户添加到组,授权某个组能够访问共享文件夹
groupadd managers #创建组
usermod -G managers zhang #将zhang加入组
usermod -G managers wang #将wang加入组
b.更改samba配置文件
vi /etc/samba/smb.conf
修改以下配置:
[data]
comment = dataFile
path = /data
browseable = yes
valid users = @managers #允许那个组访问
invalid users = wang #不合法用户(拒绝优先)
; valid users = zhang,wang #合法用户
read only = no
; public = yes
create mode =0444
directory mode =0775
writable = yes
; hosts allow = 192.168.80.10 192.168.80.20
④设置用户访问共享文件夹权限
a.设置文件夹默认的访问权限
read only = no
writeable = yes
b.指定用户对共享文件夹的访问
write list = zhang
read list = wang
这两个参数分别指定只允许对一个服务进行只读访问或同时有"写"权限的主机列表,这里,如果一个主机同时在两个列表里,则"写"优先。
c.在Windows中删除访问共享文件夹凭证的命令
net use * /del
d.修改配置文件来实现功能
vi /etc/samba/smb.conf
[data]
comment = dataFile
path = /data
browseable = yes
valid users = @managers
; invalid users = wang
read only = yes #默认情况下只读
write list = zhang #特定用户写入
read list = wang #特定用户只读
; public = yes
create mode =0444
directory mode =0775
writable = yes
⑤设置共享文件夹是否可见
browsable #可见
browseable #隐藏
这两个功能相同的参数控制该段是否在浏览列表中列出。浏览列表列出的是可获得的共享列表。一般[home]段禁止浏览,以提高安全性。
必须输入共享名才能访问隐藏的共享。
可以修改配置文件
[data]
comment = dataFile
path = /data
browseable = yes
valid users = @managers
; invalid users = wang
read only = yes
write list = zhang
read list = wang
; public = yes
create mode =0444
directory mode =0775
writable = yes
browsable = no
; hosts allow = 192.168.80.10 192.168.80.20
验证后发现输入共享名才能访问。
八、将Windows用户映射到samba用户
1、编辑名称映射文件
vi /etc/samba/smbusers
[smbusers]
# Unix_name = SMB_name1 SMB_name2 ...
root = administrator admin
nobody = guest pcguest smbguest
#当Windows用户输入等号后边的用户名等价于前边的Linux用户
2、编辑配置文件,添加一行,指定映射文件位置和名称
vi /etc/samba/smb.conf
[smb.conf]
security = user
passdb backend = smbpasswd
#添加一行,用户映射文件
username map = /etc/samba/smbusers
3、将root用户添加到samba用户
smbpasswd -a root
4、验证:在WindowsXP上使用administrator访问,可以看到使用root用户连接到了samba。
九、在Linux上访问Samba服务器
1、使用smbclient(192.168.80.110)在zhang用户来查看Samba服务器有那些共享
smbclient -L 192.168.80.100 -U zhang
2、使用smbclient(192.168.80.110)命令访问共享文件夹
smbclient //192.168.80.100/data -U zhang
3、输入?可查看smbclient所有可用命令
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.23-45.el6_9]
smb: \> ?
? allinfo altname archive blocksize
cancel case_sensitive cd chmod chown
close del dir du echo
exit get getfacl geteas hardlink
help history iosize lcd link
lock lowercase ls l mask
md mget mkdir more mput
newer open posix posix_encrypt posix_open
posix_mkdir posix_rmdir posix_unlink print prompt
put pwd q queue quit
readlink rd recurse reget rename
reput rm rmdir showacls setea
setmode stat symlink tar tarmode
timeout translate unlock volume vuid
wdel logon listconnect showconnect ..
!
smb: \>
smb: \> get wang.txt #下载文件
smb: \> q #退出
4、查看下载的文件
ls
anaconda-ks.cfg install.log install.log.syslog wang.txt
5、这么下载是很不方便的,所以我们可以将samba服务器共享文件夹挂在到本地
mkdir /mnt/data
mount -t cifs -o username=zhang //192.168.80.100/data /mnt/data/
Password:
#输入密码
6、使用smbclient(192.168.80.110)在Linux访问WindowsXP共享文件夹
①在Windows设置共享策略和共享文件夹并关闭防火墙(如没有账号可在CMD中用net user 用户名 密码 /add来创建用户)
mkdir /mnt/winxp
mount -t cifs -o username=zhangyujia //192.168.80.120/winxp /mnt/winxp
Password:
#输入密码
②创建文件测试
touch /mnt/winxp/test.txt
欢迎关注
新浪微博:https://weibo.com/yougazhang0506
微信公众平台:张雨嘉
我的网站:http://www.zhangyujia.cn
51CTO博客:http://blog.51cto.com/11099293
CSDN博客:http://blog.csdn.net/u013260195
以上是关于13-安装与配置Samba服务器的主要内容,如果未能解决你的问题,请参考以下文章