Samba主要用于windows与Linux之间的文件共享,使用SMB/CIFS协议。CentOS 6默认安装不包括samba软件包,所以需要我们手动进行安装。
Step 1 >> 安装samba
yum install -y samba
Step 2 >> 创建一个共享用户名和密码
[root@localhost ~]# useradd shareuser -s /sbin/nologin
现在创建samba密码用户shareuser使用smbpasswd命令
[root@localhost ~]# smbpasswd -a shareuser
New SMB password:
Retype new SMB password:
Added user shareuser.
Step 3 >> 创建一个名为共享的文件夹的根目录
[root@localhost ~]# mkdir /share
并且更改共享文件夹的所有权
[root@localhost /]# chown -R shareuser:root /share/
Step 4 >> 添加配置信息
[root@localhost /]# vim /etc/samba/smb.conf
在文件末行添加如下,保存退出。
[share]
comment = Share
path = /share
writable = yes
valid users = shareuser
Step 5 >> 启动samba服务
[root@localhost /]# service smb start
Starting SMB services: [ OK ]
系统引导时自动启动samba服务
[root@localhost /]# chkconfig –levels 235 smb on
Step 6 >> 检查配置,使用 testparm
[root@localhost /]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[homes]"
Processing section "[printers]"
Processing section "[share]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log.%m
max log size = 50
idmap config * : backend = tdb
cups options = raw
[homes]
comment = Home Directories
read only = No
browseable = No
[printers]
comment = All Printers
path = /var/spool/samba
printable = Yes
print ok = Yes
browseable = No
[share] #看这
comment = Share
path = /share 共享的路径
valid users = shareuser 共享的用户
read only = No
关闭防火墙,关闭selinux , 使用共享即可。
[共享名]
comment = 任意字符串
说明:comment是对该共享的描述,可以是任意字符串。
path = 共享目录路径
说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的 Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个 Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用 户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以 这样写:path = /home/share/%m 。
browseable = yes/no
说明:browseable用来指定该共享是否可以浏览。
writable = yes/no
说明:writable用来指定该共享路径是否可写。
available = yes/no
说明:available用来指定该共享资源是否可用。
admin users = 该共享的管理者
说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
例如:admin users =bobyuan,jane(多个用户中间用逗号隔开)。
valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users = bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
invalid users = 禁止访问该共享的用户
说明:invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
write list = 允许写入该共享的用户
说明:write list用来指定可以在该共享下写入文件的用户。
例如:write list = bobyuan,@bob
public = yes/no
说明:public用来指定该共享是否允许guest账户访问。
guest ok = yes/no
说明:意义同“public”。
几个特殊共享:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
; valid users = MYDOMAIN\%S
[printers]
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = no
writable = no
printable = yes
[netlogon]
comment = Network Logon Service
path = /var/lib/samba/netlogon
guest ok = yes
writable = no
share modes = no
[Profiles]
path = /var/lib/samba/profiles
browseable = no
guest ok = yes
将用户tommy的家目录屏蔽起来
;[homes]
; comment = Home Directories
; browseable = no
; writable = yes
; valid users = %S
; valid users = MYDOMAIN\%S
默认情况下,[homes],browseable,writable参数前面是没有分号的,这样客户端就能看到用户tommy的家目录,这样不安全,所以要在[homes],browseable,writable前面加上分号,这样在客户端就只能看见sambashare_user这一个目录了。
net use * /del /y 这个经常要用,尤其咋测试的情况下,在 WINDOW 的环境下需要切断和linux 之间的共享。
解决不允许一个用户使用一个以上用户名与一个服务器或共享资源的多重连接
用net use命令可以查看你当前与网络资源的连接,例如驱动器映射、IPC连接。使用该命令后,应该可以看到你和有资源连接。然后可以用net use * /del /y命令中断开所有连接。