- 浏览: 69335 次
- 性别:
- 来自: 沈阳
文章分类
最新评论
Samba配置文件常用参数详解
一、samba-server
1、安装samba
默认情况下,安装samba-winbind-clients-3.5.4-68.e16.x86_64,samba-3.5.4-68.e16x86_64、samba-client-3.5.4-68.e16.x86_64和samba-common-3.5.4-68.e16.x86_64即可
2、启动SMB服务
Samba启动至少需要两个deamons:
smbd: 管理Samba主机分享什么目录,档案与打印机
nmbd: 管理群组及NETBIOS
PORT: 137,138,139
service smb start(ntsysv图形化启动)
/etc/init.d/smb start
设置运行级别启动
chkconfig --level 2345 smb on(chkconfigsmb on,同样是在2345运行级别开启)
3、samba的主配置文件,位于/etc/samba/smb.conf,由Global Settings和Share Definitions组成,其中前者是与Samba服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的;后者是针对共享目录个别的设置,只对当前的共享资源起作用。
技术文档放置在/usr/share/doc/samba-3.5.4
登录记录: /var/log/samba
Samba的主配置文件叫smb.conf,默认在/etc/samba /目录下。
smb.conf含有多个段,每个段由段名开始,直到下个段名。每个段名放在方括号中间。每段的参数的格式是:名称=值。配置文件中一行一个段名和参数,段名和参数名不分大小写。
除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共享资源的名字,段里的参数是该共享资源的属性。
Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。使用testparm–v命令可以详细的列出smb.conf支持的配置参数。
全局参数:
==================Global Settings ===================
[global]
config file = /usr/local/samba/lib/smb.conf.%m
说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由 smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。
workgroup = WORKGROUP
说明:设定 Samba Server 所要加入的工作组或者域。
server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
netbios name = smbserver
说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除 172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
hosts allow=M1,M2
表示容许来自M1和M2两台计算机连接
hosts allow=@xq
表示容许来自XQ网域的所有计算机连接
max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
deadtime = 0
说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。
time server = yes/no
说明:time server用来设置让nmdb成为windows客户端的时间服务器。
log file = /var/log/samba/log.%m
说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。
max log size = 50
说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。
security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用 Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实
用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问 Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2.tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd–a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。
pdbedit–a username:新建Samba账户。
pdbedit–x username:删除Samba账户。
pdbedit–L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit–Lv:列出Samba用户列表的详细信息。
pdbedit–c “[D]”–u username:暂停该Samba用户的账号。
pdbedit–c “[]”–u username:恢复该Samba用户的账号。
3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”
encrypt passwords = yes/no
说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。
smbpasswd file = /etc/samba/smbpasswd
说明:用来定义samba用户的密码文件。smbpasswd文件如果没有那就要手工新建。
username map = /etc/samba/smbusers
说明:用来定义用户名映射,比如可以将root换成 administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。
guest account = nobody
说明:用来设置guest用户名。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
说明:用来设置服务器和客户端之间会话的Socket选项,可以优化传输速度。
domain master = yes/no
说明:设置Samba服务器是否要成为网域主浏览器,网域主浏览器可以管理跨子网域的浏览服务。
local master = yes/no
说明:local master用来指定Samba Server是否试图成为本地网域主浏览器。如果设为no,则永远不会成为本地网域主浏览器。但是即使设置为yes,也不等于该Samba Server就能成为主浏览器,还需要参加选举。
preferred master = yes/no
说明:设置Samba Server一开机就强迫进行主浏览器选举,可以提高Samba Server成为本地网域主浏览器的机会。如果该参数指定为yes时,最好把domain master也指定为yes。使用该参数时要注意:如果在本Samba Server所在的子网有其他的机器(不论是windows NT还是其他Samba Server)也指定为首要主浏览器时,那么这些机器将会因为争夺主浏览器而在网络上大发广播,影响网络性能。
如果同一个区域内有多台Samba Server,将上面三个参数设定在一台即可。
os level = 200
说明:设置samba服务器的os level。该参数决定Samba Server是否有机会成为本地网域的主浏览器。os level从0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果设置为0,则意味着Samba Server将失去浏览选择。如果想让Samba Server成为PDC,那么将它的os level值设大些。
domain logons = yes/no
说明:设置Samba Server是否要做为本地域控制器。主域控制器和备份域控制器都需要开启此项。
logon . = %u.bat
说明:当使用者用windows客户端登陆,那么Samba将提供一个登陆档。如果设置成%u.bat,那么就要为每个用户提供一个登陆档。如果人比较多,那就比较麻烦。可以设置成一个具体的文件名,比如start.bat,那么用户登陆后都会去执行start.bat,而不用为每个用户设定一个登陆档了。这个文件要放置在[netlogon]的path设置的目录路径下。
wins support = yes/no
说明:设置samba服务器是否提供wins服务。
wins server = wins服务器IP地址
说明:设置Samba Server是否使用别的wins服务器提供wins服务。
wins proxy = yes/no
说明:设置Samba Server是否开启wins代理服务。
dns proxy = yes/no
说明:设置Samba Server是否开启dns代理服务。
load printers = yes/no
说明:设置是否在启动Samba时就共享打印机。
printcap name = cups
说明:设置共享打印机的配置文件。
printing = cups
说明:设置Samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx
共享参数:
================== Share Definitions ==================
[共享名]
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
测试testparm
解决远程登录的时候默认GUEST user,在配置中将 guest ok = yes 改为 no
本机检测:smbcient -l //computername/sharefolder
passwd: 直接回车即可看到共享目录
如何实现多用户认证登录
一个比较正常的共享设置
[MyShare]
comment = file
path = /home/grind
allow hosts = host(subnet)
deny hosts = host(subnet)
writable = yes|no
user = user(@group)
valid users = user(@group)
invalid users = user(@group)
read list = user(@group)
write list = user(@group)
admin list = user(@group)
public = yes|no
hide dot files = yes|no
create mode = 0755
directory mode = 0755
sync always = yes|no
short preserve case = yes|no
preserve case = yes|no
case sensitive = yes|no
mangle case = yes|no
default case = upper|lower
force user = grind
wide links = yes|no
max connections = 100
deletereadonly = yes|no
其中[]里面的MyShare指定共享名,一般就是网络邻居里面可以看见的文件夹的名字。
comment指的是对改共享的备注。
path指定共享的路径,其中可以配合samba变量使用。比如你可以指定path=/data/%m,这样如果一台机器的NETBIOS名字是grind,它访问MyShare这个共享的时候就是进入/data/grind目录,而对于NETBIOS名是glass的机器,则进入/data/glass目录。
allow hosts和deny hosts和前面的全局设置的方法一样这里不再提及。
writeable指定了这个目录缺省是否可写,也可以用readonly = no来设置可写。
user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开。
valid users指定能够使用该共享资源的用户和组。
invalid users指定不能够使用该共享资源的用户和组。
read list 指定只能读取该共享资源的用户和组。
write list指定能读取和写该共享资源的用户和组。
admin list指定能管理该共享资源(包括读写和权限赋予等)的用户和组。
public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和public = yes是一样的。
hide dot files指明是不是像unix那样隐藏以“.”号开头的文件。
create mode指明新建立的文件的属性,一般是0755。
directory mode指明新建立的目录的属性,一般是0755。
sync always指明对该共享资源进行写操作后是否进行同步操作。
short preserve case指明不管文件名大小写。
preserve case指明保持大小写。
case sensitive指明是否对大小写敏感,一般选no,不然可能引起错误。
mangle case指明混合大小写。
default case指明缺省的文件名是全部大写还是小写。
force user强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= grind强制建立文件的属主是grind,同时限制create mask = 0755,这样guest就不能删除了。
wide links指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用。
max connections = n设定同时连接数是n。
delete readonly指明能否删除共享资源里面已经被定义为只读的文件。
~~~~~~~~~~~~~~~~~~~~~
建立独立的配置文件
1、copy smb.conf>user.smb.conf
2、在【global】中加入
include = /etc/samba/%U.smb.conf(用户)
include = /etc/samba/%G.smb.conf(组)
解决Linux下挂载Samba共享目录乱码
mount -t cifs -o username=User,password=Password,iocharset=utf8,codepage=cp936 //192.168.1.1/PUBLIC /media/PUBLIC
# 把User,Password,Samba服务器IP地址(192.168.1.1)
# 以及挂载目录改成自己的就行了。
需要注意的是一些老的Linux版本上使用smbmount挂载 Samba共享目录,而新系统中 mount指定cifs文件系统就行了。
常用命令:testparm 测试配置信息的正确性
smbclient -L //127.0.0.1 -U 用户名 测试对应该用户的配置是否生效
smbstatus 可以列出当前SAMBA的链接状况
pdbedit -a -u 用户名 在samba中添加用户(该用户一定要做/etc/passwd中已经定义)
pdbedit -L 查询目前已经存在的samba账号
一、samba-server
1、安装samba
默认情况下,安装samba-winbind-clients-3.5.4-68.e16.x86_64,samba-3.5.4-68.e16x86_64、samba-client-3.5.4-68.e16.x86_64和samba-common-3.5.4-68.e16.x86_64即可
2、启动SMB服务
Samba启动至少需要两个deamons:
smbd: 管理Samba主机分享什么目录,档案与打印机
nmbd: 管理群组及NETBIOS
PORT: 137,138,139
service smb start(ntsysv图形化启动)
/etc/init.d/smb start
设置运行级别启动
chkconfig --level 2345 smb on(chkconfigsmb on,同样是在2345运行级别开启)
3、samba的主配置文件,位于/etc/samba/smb.conf,由Global Settings和Share Definitions组成,其中前者是与Samba服务整体运行环境有关的选项,它的设置项目是针对所有共享资源的;后者是针对共享目录个别的设置,只对当前的共享资源起作用。
技术文档放置在/usr/share/doc/samba-3.5.4
登录记录: /var/log/samba
Samba的主配置文件叫smb.conf,默认在/etc/samba /目录下。
smb.conf含有多个段,每个段由段名开始,直到下个段名。每个段名放在方括号中间。每段的参数的格式是:名称=值。配置文件中一行一个段名和参数,段名和参数名不分大小写。
除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共享资源的名字,段里的参数是该共享资源的属性。
Samba安装好后,使用testparm命令可以测试smb.conf配置是否正确。使用testparm–v命令可以详细的列出smb.conf支持的配置参数。
全局参数:
==================Global Settings ===================
[global]
config file = /usr/local/samba/lib/smb.conf.%m
说明:config file可以让你使用另一个配置文件来覆盖缺省的配置文件。如果文件不存在,则该项无效。这个参数很有用,可以使得samba配置更灵活,可以让一台samba服务器模拟多台不同配置的服务器。比如,你想让PC1(主机名)这台电脑在访问Samba Server时使用它自己的配置文件,那么先在/etc/samba/host/下为PC1配置一个名为smb.conf.pc1的文件,然后在smb.conf中加入:config file = /etc/samba/host/smb.conf.%m。这样当PC1请求连接Samba Server时,smb.conf.%m就被替换成smb.conf.pc1。这样,对于PC1来说,它所使用的Samba服务就是由 smb.conf.pc1定义的,而其他机器访问Samba Server则还是应用smb.conf。
workgroup = WORKGROUP
说明:设定 Samba Server 所要加入的工作组或者域。
server string = Samba Server Version %v
说明:设定 Samba Server 的注释,可以是任何字符串,也可以不填。宏%v表示显示Samba的版本号。
netbios name = smbserver
说明:设置Samba Server的NetBIOS名称。如果不填,则默认会使用该服务器的DNS名称的第一部分。netbios name和workgroup名字不要设置成一样了。
interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24
说明:设置Samba Server监听哪些网卡,可以写网卡名,也可以写该网卡的IP地址。
hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server的客户端,多个参数以空格隔开。可以用一个IP表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除 172.17.2.50
hosts allow=172.17.2.0/255.255.0.0
表示容许来自172.17.2.0/255.255.0.0子网中的所有主机连接
hosts allow=M1,M2
表示容许来自M1和M2两台计算机连接
hosts allow=@xq
表示容许来自XQ网域的所有计算机连接
max connections = 0
说明:max connections用来指定连接Samba Server的最大连接数目。如果超出连接数目,则新的连接请求将被拒绝。0表示不限制。
deadtime = 0
说明:deadtime用来设置断掉一个没有打开任何文件的连接的时间。单位是分钟,0代表Samba Server不自动切断任何连接。
time server = yes/no
说明:time server用来设置让nmdb成为windows客户端的时间服务器。
log file = /var/log/samba/log.%m
说明:设置Samba Server日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server的机器都单独记录一个日志文件。如果pc1、pc2访问过Samba Server,就会在/var/log/samba目录下留下log.pc1和log.pc2两个日志文件。
max log size = 50
说明:设置Samba Server日志文件的最大容量,单位为kB,0代表不限制。
security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1. share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2. user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3. server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用 Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
4. domain:域安全级别,使用主域控制器(PDC)来完成认证。
passdb backend = tdbsam
说明:passdb backend就是用户后台的意思。目前有三种后台:smbpasswd、tdbsam和ldapsam。sam应该是security account manager(安全账户管理)的简写。
1.smbpasswd:该方式是使用smb自己的工具smbpasswd来给系统用户(真实
用户或者虚拟用户)设置一个Samba密码,客户端就用这个密码来访问 Samba的资源。smbpasswd文件默认在/etc/samba目录下,不过有时候要手工建立该文件。
2.tdbsam:该方式则是使用一个数据库文件来建立用户数据库。数据库文件叫passdb.tdb,默认在/etc/samba目录下。passdb.tdb用户数据库可以使用smbpasswd–a来建立Samba用户,不过要建立的Samba用户必须先是系统用户。我们也可以使用pdbedit命令来建立Samba账户。pdbedit命令的参数很多,我们列出几个主要的。
pdbedit–a username:新建Samba账户。
pdbedit–x username:删除Samba账户。
pdbedit–L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit–Lv:列出Samba用户列表的详细信息。
pdbedit–c “[D]”–u username:暂停该Samba用户的账号。
pdbedit–c “[]”–u username:恢复该Samba用户的账号。
3.ldapsam:该方式则是基于LDAP的账户管理方式来验证用户。首先要建立LDAP服务,然后设置“passdb backend = ldapsam:ldap://LDAP Server”
encrypt passwords = yes/no
说明:是否将认证密码加密。因为现在windows操作系统都是使用加密密码,所以一般要开启此项。不过配置文件默认已开启。
smbpasswd file = /etc/samba/smbpasswd
说明:用来定义samba用户的密码文件。smbpasswd文件如果没有那就要手工新建。
username map = /etc/samba/smbusers
说明:用来定义用户名映射,比如可以将root换成 administrator、admin等。不过要事先在smbusers文件中定义好。比如:root = administrator admin,这样就可以用administrator或admin这两个用户来代替root登陆Samba Server,更贴近windows用户的习惯。
guest account = nobody
说明:用来设置guest用户名。
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
说明:用来设置服务器和客户端之间会话的Socket选项,可以优化传输速度。
domain master = yes/no
说明:设置Samba服务器是否要成为网域主浏览器,网域主浏览器可以管理跨子网域的浏览服务。
local master = yes/no
说明:local master用来指定Samba Server是否试图成为本地网域主浏览器。如果设为no,则永远不会成为本地网域主浏览器。但是即使设置为yes,也不等于该Samba Server就能成为主浏览器,还需要参加选举。
preferred master = yes/no
说明:设置Samba Server一开机就强迫进行主浏览器选举,可以提高Samba Server成为本地网域主浏览器的机会。如果该参数指定为yes时,最好把domain master也指定为yes。使用该参数时要注意:如果在本Samba Server所在的子网有其他的机器(不论是windows NT还是其他Samba Server)也指定为首要主浏览器时,那么这些机器将会因为争夺主浏览器而在网络上大发广播,影响网络性能。
如果同一个区域内有多台Samba Server,将上面三个参数设定在一台即可。
os level = 200
说明:设置samba服务器的os level。该参数决定Samba Server是否有机会成为本地网域的主浏览器。os level从0到255,winNT的os level是32,win95/98的os level是1。Windows 2000的os level是64。如果设置为0,则意味着Samba Server将失去浏览选择。如果想让Samba Server成为PDC,那么将它的os level值设大些。
domain logons = yes/no
说明:设置Samba Server是否要做为本地域控制器。主域控制器和备份域控制器都需要开启此项。
logon . = %u.bat
说明:当使用者用windows客户端登陆,那么Samba将提供一个登陆档。如果设置成%u.bat,那么就要为每个用户提供一个登陆档。如果人比较多,那就比较麻烦。可以设置成一个具体的文件名,比如start.bat,那么用户登陆后都会去执行start.bat,而不用为每个用户设定一个登陆档了。这个文件要放置在[netlogon]的path设置的目录路径下。
wins support = yes/no
说明:设置samba服务器是否提供wins服务。
wins server = wins服务器IP地址
说明:设置Samba Server是否使用别的wins服务器提供wins服务。
wins proxy = yes/no
说明:设置Samba Server是否开启wins代理服务。
dns proxy = yes/no
说明:设置Samba Server是否开启dns代理服务。
load printers = yes/no
说明:设置是否在启动Samba时就共享打印机。
printcap name = cups
说明:设置共享打印机的配置文件。
printing = cups
说明:设置Samba共享打印机的类型。现在支持的打印系统有:bsd, sysv, plp, lprng, aix, hpux, qnx
共享参数:
================== Share Definitions ==================
[共享名]
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
测试testparm
解决远程登录的时候默认GUEST user,在配置中将 guest ok = yes 改为 no
本机检测:smbcient -l //computername/sharefolder
passwd: 直接回车即可看到共享目录
如何实现多用户认证登录
一个比较正常的共享设置
[MyShare]
comment = file
path = /home/grind
allow hosts = host(subnet)
deny hosts = host(subnet)
writable = yes|no
user = user(@group)
valid users = user(@group)
invalid users = user(@group)
read list = user(@group)
write list = user(@group)
admin list = user(@group)
public = yes|no
hide dot files = yes|no
create mode = 0755
directory mode = 0755
sync always = yes|no
short preserve case = yes|no
preserve case = yes|no
case sensitive = yes|no
mangle case = yes|no
default case = upper|lower
force user = grind
wide links = yes|no
max connections = 100
deletereadonly = yes|no
其中[]里面的MyShare指定共享名,一般就是网络邻居里面可以看见的文件夹的名字。
comment指的是对改共享的备注。
path指定共享的路径,其中可以配合samba变量使用。比如你可以指定path=/data/%m,这样如果一台机器的NETBIOS名字是grind,它访问MyShare这个共享的时候就是进入/data/grind目录,而对于NETBIOS名是glass的机器,则进入/data/glass目录。
allow hosts和deny hosts和前面的全局设置的方法一样这里不再提及。
writeable指定了这个目录缺省是否可写,也可以用readonly = no来设置可写。
user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开。
valid users指定能够使用该共享资源的用户和组。
invalid users指定不能够使用该共享资源的用户和组。
read list 指定只能读取该共享资源的用户和组。
write list指定能读取和写该共享资源的用户和组。
admin list指定能管理该共享资源(包括读写和权限赋予等)的用户和组。
public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和public = yes是一样的。
hide dot files指明是不是像unix那样隐藏以“.”号开头的文件。
create mode指明新建立的文件的属性,一般是0755。
directory mode指明新建立的目录的属性,一般是0755。
sync always指明对该共享资源进行写操作后是否进行同步操作。
short preserve case指明不管文件名大小写。
preserve case指明保持大小写。
case sensitive指明是否对大小写敏感,一般选no,不然可能引起错误。
mangle case指明混合大小写。
default case指明缺省的文件名是全部大写还是小写。
force user强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user= grind强制建立文件的属主是grind,同时限制create mask = 0755,这样guest就不能删除了。
wide links指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links = no将使该连接不可用。
max connections = n设定同时连接数是n。
delete readonly指明能否删除共享资源里面已经被定义为只读的文件。
~~~~~~~~~~~~~~~~~~~~~
建立独立的配置文件
1、copy smb.conf>user.smb.conf
2、在【global】中加入
include = /etc/samba/%U.smb.conf(用户)
include = /etc/samba/%G.smb.conf(组)
解决Linux下挂载Samba共享目录乱码
mount -t cifs -o username=User,password=Password,iocharset=utf8,codepage=cp936 //192.168.1.1/PUBLIC /media/PUBLIC
# 把User,Password,Samba服务器IP地址(192.168.1.1)
# 以及挂载目录改成自己的就行了。
需要注意的是一些老的Linux版本上使用smbmount挂载 Samba共享目录,而新系统中 mount指定cifs文件系统就行了。
常用命令:testparm 测试配置信息的正确性
smbclient -L //127.0.0.1 -U 用户名 测试对应该用户的配置是否生效
smbstatus 可以列出当前SAMBA的链接状况
pdbedit -a -u 用户名 在samba中添加用户(该用户一定要做/etc/passwd中已经定义)
pdbedit -L 查询目前已经存在的samba账号
发表评论
-
Linux常用命令(4)
2016-03-16 09:51 5431、查看命令所在具体位置 which 文件 2、查看环 ... -
red hat的经验总结1
2016-01-13 16:44 5031、system-config-date 进入日期界面 2、在 ... -
SUSE服务启动顺序
2015-10-27 14:57 700SUSE 服务启动顺序的问 ... -
linux core文件的设置
2015-06-26 11:01 2417L一、前言: 有的程序可 ... -
linux字符集
2015-06-10 15:58 480一·查看字符集 字符集在系统中体现形式是一个环境变量,以Cen ... -
鸟哥的linux私房菜(数据流重定向)
2015-03-02 16:39 10871、数据流重导向 标准输入(stdin) :代码为 0 ,使用 ... -
LINUX任务(jobs)详解(转载)
2015-03-01 14:34 603在用管理员执行一个命令后,用Ctrl+Z把命令转移到了后台。 ... -
很精彩的linux命令(转载)
2015-03-01 14:32 639博客分类: linux运维shell基础/命令/语法 1.按 ... -
Linux运维常用命令 (转载)
2015-03-01 14:27 8121 删除0字节文件 find-type f -size 0 ... -
Linux常用命令(3)
2015-02-27 16:29 6111、命令别名设置 alias,unalias ... -
vi 小技巧
2015-02-27 15:41 729vi可以同时编辑多个文件,多个文件间可以切换,并复制内容 如: ... -
Linux常用命令(2)
2014-12-01 16:06 7141、文件系统开机挂载配 ... -
Linux常用命令(1)
2014-11-12 16:18 4241、欢迎文字 /etc/issue 2、查看目前支持语言及 ... -
Linux 网桥配置命令:brctl(转)
2014-11-06 14:48 3867linux brctl Linux网关模式 ... -
Linux下创建光盘ISO文件
2014-11-06 14:40 671dd if=/dev/scd0 of=/1.iso -
Centos经验总结
2014-11-05 10:50 721centos查看系统版本 lsb_release -a ce ...
相关推荐
在VMware环境中配置Samba服务是将Linux虚拟机与Windows系统或者其他Linux系统共享文件的一种常见方法。Samba是一个开源软件,它实现了Microsoft的SMB/CIFS协议,使得Linux和Unix系统可以与Windows系统进行无缝文件...
总之,Linux下的Samba配置是一项关键任务,它使得Linux系统能够无缝地与Windows环境协作,提供文件和打印服务。通过正确配置`smb.conf`文件,可以实现简单而有效的网络共享,提升工作效率。在实践中,不断调整和优化...
Linux 上 Samba 配置 Linux 上 Samba 配置是一种实现文件共享的方法,它允许 Linux 服务器与 Windows 客户端之间进行文件共享。在本文中,我们将详细介绍如何在 Linux 上配置 Samba,以实现文件共享。 首先,需要...
linux,scenos7的amba配置手册,一步步教你配置samba服务,实现samba文件共享功能
Samba服务器配置及访问Samba共享 Samba服务器是一种基于SMB/CIFS协议的文件和打印机共享服务器,主要用于Linux和Windows之间的资源共享。下面是Samba服务器配置及访问Samba共享的知识点总结: 一、Samba服务器安装...
Linux 下的 Samba 配置 Samba 服务是一种基于 SMB/CIFS 协议的文件和打印共享服务,可以让不同的操作系统之间进行文件共享和打印共享。在 Linux 系统中,Samba 服务可以让 Windows 用户访问 Linux 系统中的文件和...
### 24小时学习Samba配置文件和架设——核心知识点概述 #### 一、Samba简介 **Samba**是一种允许用户通过SMB (Server Message Block) 协议实现不同操作系统之间文件共享和打印服务的软件包。它主要用于Linux系统与...
### CentOS 7 配置 Samba 服务器 #### 一、概述 Samba 是一个用于在 Linux 和 Unix 系统上实现 SMB/CIFS 协议的软件包,它允许不同操作系统之间的文件和打印共享。本篇文章将详细介绍如何在 CentOS 7 上安装、配置...
### Samba 高级配置详解 #### 一、Samba 概述 Samba 是一套开源软件,它基于 SMB (Server Message Block) 和 NetBIOS 协议,允许 Unix-based 系统(如 Linux)与 Windows 系统之间进行文件共享和打印服务。通过 ...
Samba 服务器配置实验报告 本实验报告的主要目的是学习和掌握 Samba 服务器的配置,实现简单共享和用户级别共享的配置过程,理解共享的指定、权限的分配和使用。 一、Samba 服务器配置文件 Samba 服务器配置文件...
现在,我们进入Samba配置文件(通常位于`/etc/samba/smb.conf`)进行全局环境配置。全局配置决定了Samba服务器的基本行为,包括默认的文件系统权限、语言设置、日志级别等。一个基本的全局配置段可能如下: ```ini ...
配置完成后,可以在Windows客户端上尝试访问Linux服务器上的共享资源,以验证Samba配置是否成功。如果一切正常,你应该能够在网络邻居中看到Linux服务器,并能访问共享的文件和打印机。 **五、安全考虑** 确保...
### 知识点:简单的SAMBA配置 #### SAMBA简介 SAMBA是一种允许不同操作系统(如Linux、Windows)之间的文件共享和服务的一种协议。通过SAMBA服务,用户可以在Linux系统上设置共享目录,使得Windows系统能够像访问...
SAMBA服务器配置实验报告.doc
Linux 文件共享 samba 配置 Linux 文件共享是指在 Linux 系统中,使用 samba 服务来实现文件共享的功能。samba 是一个免费的开源软件,可以将 Linux 文件系统共享给其他操作系统的计算机。 在 Linux 系统中,samba...
CentOS Samba 服务器配置 本文将详细介绍 CentOS Samba 服务器的配置方法,旨在让 CentOS 主机兼容 Windows 网络,实现同样的功能,并充分发挥 CentOS 主机的可用性。 Global Settings 在配置 CentOS Samba 之前...