samba如同于windows中的
网络工作组
,
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。# yum install -y samba samba-client
安装samba服务包和samba-client客户端(
用于测试
)(1)Samba的配置文件
Samba 的配置文件为/etc/samba/smb.conf,通过修改这个配置文件来完成我们的各种需求。默认这个文件的很多内容被注释了,未注释的有以下内容:
[global] 该部分内容为全局设置
workgroup = MYGROUP 工作组名
server string = Samba Server Version %v 描述
security = user 验证方式
passdb backend = tdbsam 后台密码方式
load printers = yes 打印机相关的
cups options = raw 打印机相关的
[homes] 该部分内容是用户家目录的共享,单纯的文件共享环境这部分内容可以注释
comment = Home Directories 描述
browseable = no 是否可以被浏览
writable = yes 是否可写
[printers] 该部分内容设置打印机共享
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
主要有以上三个部分: [global], [homes], [printers]
关于samba的验证方式有四种:
- share:用户不需要账户及密码即可登录 samba 服务器
- user:由提供服务的 samba 服务器负责检查账户及密码(默认)
- server:检查账户及密码的工作由另一台 Windows 或 samba 服务器负责
- domain:指定 Windows 域控制服务器来验证用户的账户及密码
samba passwd的几种方式:http://www.cnblogs.com/jary-wang/archive/2013/05/21/3091343.html
几个常见参数:
netbios name = MYSERVER 设置出现在网上邻居中的主机名
hosts allow = 127. 192.168.12. 192.168.13. 用来设置授权的主机,如果在前面加";"则表示允许所有主机
log file = /var/log/samba/%m.log 定义 samba 的日志,这里的%m 是上面的 netbios name
max log size = 50 指定日志的最大容量,单位是K
Samba配置文件常用参数详解:http://yuanbin.blog.51cto.com/363003/115761/
(2)Samba实践
A. Samba 实践一
要求:共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读
# vim /etc/samba/smb.conf
workgroup = MYGROUP 改为 workgroup = WORKGROUP
security = user 改为 security = share
末尾添加
[share]
comment = share all
path = /data/samba-site
browseable = yes
public = yes
writable = no
创建共享目录
# mkdir /data/samba-site
# chmod 777 /data/samba-site/
# touch /data/samba-site/sharefiles.txt
#
echo "1111">/data/samba-site/sharefiles.txt
# /etc/init.d/smb start
启动 SMB 服务: [确定]
测试
windows:在浏览器中输入file://///IP/share/或者在资源管理器中输入\\192.168.1.108\share
linux:
# smbclient //localhost/share
WARNING: The security=share option is deprecated
Enter root's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-24.el6_7]
Server not using user level security and no password supplied.
smb: \> ls
. D 0 Fri Feb 19 21:36:50 2016
.. D 0 Fri Feb 19 21:27:07 2016
sharefiles.txt 5 Fri Feb 19 21:36:41 2016
35727 blocks of size 524288. 31446 blocks available
smb: \>
B. Samba 实践二
要求:共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写
# vim /etc/samba/smb.conf
security = user 改为 security = share
将[share]更改为
[myshare]
comment = share all
path = /data/samba-site
browseable = yes
public = no
writable = yes
添加用户
因为在[globa]中 “passdb backend = tdbsam”, 所以要使用 pdbedit 来增加 用户,注意添加的用户必须在系统中存在,所以需要先创建系统账号:
# groupadd samba
# grep 'samba' /etc/group
samba:x:502:
# useradd -g 502 -s /sbin/nologin smbuser1
# useradd -g 502 -s /sbin/nologin smbuser2
# chmod 775 /data/samba-site/
# chown :502 /data/samba-site/
# ls -ld /data/samba-site/
drwxrwxr-x 2 root samba 4096 2月 19 21:36 /data/samba-site/
# pdbedit -a smbuser1
new password:
retype new password:
# pdbedit -a smbuser2
new password:
retype new password:
# pdbedit -L
smbuser1:502:
smbuser2:503:
重启 samba 服务:
# service smb restart
测试
# smbclient //192.168.1.108/myshare -U smbuser1
Enter smbuser1's password:
smb: \> mkdir testdir
smb: \> ls
. D 0 Fri Feb 19 22:05:00 2016
.. D 0 Fri Feb 19 21:27:07 2016
sharefiles.txt 5 Fri Feb 19 21:36:41 2016
testdir D 0 Fri Feb 19 22:05:00 2016
35727 blocks of size 524288. 31445 blocks available
smb: \> quit
# ll /data/samba-site/
总用量 8
-rw-r--r-- 1 root root 5 2月 19 21:36 sharefiles.txt
drwxr-xr-x 2 smbuser1 samba 4096 2月 19 22:05 testdir
C. Samba 实践三
需求:搭建samba服务器,共享两个目录,public与project,其中public目录可匿名访问,任何人可以读写,project目录需要验证用户名密码方可访问。
[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
security = user 认证模式为user
passdb backend = tdbsam 这个很关键,实现匿名无须交互输入用户名和密码
load printers = yes
cups options = raw
printable = yes
map to guest = bad user
guest account = nobody
encrypt password = yes 用户的密码加密
smb passwd file = /etc/samba/smbpasswd
[public]
comment = public
path= /data/public
browseable = yes 可以被浏览,就是在网络邻居中能看到共享名
guest ok = yes 允许匿名访问,这个也需要设置,否则匿名无法访问
writable = yes
printable = no
create mask = 0644
directory mask = 0755
[project]
comment = project
path=/data/project
browseable = yes
public = no
guest ok = no
writeable = yes
; force user = root 强制指定建立文件的属主
printable = no
create mask = 0644
directory mask = 0755
# mv
/data/samba-site/
/data/project# mkdir /data/public
# chown nobody.nobody /data/public
检查配置文件是否正确
#
testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Unknown parameter encountered: "encrypt password"
Ignoring unknown parameter "encrypt password"
Processing section "[public]"
Processing section "[project]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Unknown parameter encountered: "encrypt password"
Ignoring unknown parameter "encrypt password"
Processing section "[public]"
Processing section "[project]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
# /etc/init.d/smb restart
关闭 SMB 服务: [确定]
启动 SMB 服务: [确定]
测试
# smbclient //192.168.1.108/project -U smbuser1
Unknown parameter encountered: "encrypt password"
Ignoring unknown parameter "encrypt password"
Enter smbuser1's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-24.el6_7]
smb: \> mkdir haha
smb: \> ls
. D 0 Fri Feb 19 22:39:44 2016
.. D 0 Fri Feb 19 22:17:29 2016
haha D 0 Fri Feb 19 22:39:44 2016
35727 blocks of size 524288. 31446 blocks available
smb: \> quit
# smbclient //192.168.1.108/public
Unknown parameter encountered: "encrypt password"
Ignoring unknown parameter "encrypt password"
Enter root's password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.23-24.el6_7]
smb: \> mkdir test
smb: \> ls
. D 0 Fri Feb 19 22:38:53 2016
.. D 0 Fri Feb 19 22:17:29 2016
test D 0 Fri Feb 19 22:38:53 2016
35727 blocks of size 524288. 31446 blocks available
smb: \> quit
# ls -l /data/p*
/data/project:
总用量 4
drwxr-xr-x 2 smbuser2 samba 4096 2月 19 22:42 haha
/data/public:
总用量 4
drwxr-xr-x 2 nobody nobody 4096 2月 19 22:38 test
挂载Samba共享目录
linux:
linux:
在linux中除了可以使用smbclient访问外,还可以通过 mount 挂载了,如:
# mount -t cifs //192.168.1.108/myshare /mnt -o username=smbuser1,password=123456
格式就是这样,要指定 -t cifs //IP/共享名 本地挂载点 -o 后面跟 username 和 password 挂 载完后就可以像使用本地的目录一样使用共享的目录了,注意共享名后面不能有斜杠。
windows:
打开我的电脑—>右击“添加一个网络位置”,然后根据提示执行
编辑回复