linux的samba(linux搭建samba服务器步骤)
linux samba命令详解
Linux系统下samba命令用于Samba服务器控制,是samba命令内容的具体介绍:
1、samba命令简介:
samba命令用于Samba服务器控制,samba命令为script文件,可启动、停止Samba服务器或回报目前的状态。
2、语法:
samba [start][stop][status][restart]
3、参数说明:
start启动Samba服务器的服务。
stop停止Samba服务器的服务。
status显示Samba服务器目前的状态。
restart重新启动Samba服务器。
实例:
启动Samba,输入命令:
# samba start
详解Linux系统中安装配置Samba服务器的步骤
一、获取源代码包并进行解压
从samba的官方网站可以下载最新的samba源代码包。下面我们以samba-3.5.9.tar.gz的源代码包作为案例进行解析。本例中,我们将源代码包放在目录/home/samba下,然后执行下面的命令进行解压缩。
代码如下:
# tar–xzvf samba-3.5.9.tar.gz
二、配置configure
对源代码包进行解压缩后,进入目录
代码如下:
# cd/home/samba/samba-3.5.9/source3
然后执行下面的命令进行配置。
代码如下:
#./configure
可能在刚开始时,该目录下没有configure文件,此时可先执行下面的命令
代码如下:
#./autogen-sh
此时要求系统安装了autoconf、automake等工具。
在运行上面的配置命令之前,我们可以通过命令
代码如下:
#./configure–-help
来查看配置命令的一些选项。
三、生成与安装make make install
在环境配置命令./configure成功执行后,可以运行命令
代码如下:
# make
来生成二进制可执行文件,这可能需要两到三分钟。成功生成可执行文件后,可以通过下面命令
代码如下:
#make install
来进行安装。系统默认的安装路径是/usr/local/samba
四、配置动态链接库路径
安装完成后,我们需要配置动态链接库路径,因为运行samba的进行smbd和nmbd需要到目录/usr/local/samba/lib下的动态链接库文件。但是该目录不是系统默认的动态链接库文件搜索路径,于是我们需要将该目录添加到文件ld.so.conf中。执行下面的命令
代码如下:
# vi/etc/ld.so.conf
打开ld.so.conf文件,并在该文件中加入下面这一行内容。
代码如下:
/usr/local/samba/lib
然后执行命令
代码如下:
# ldconfig
来更新动态链接库缓冲。
五、samba配置文件smb.conf
samba在运行过程中需要用到配置文件smb.conf。smb.conf配置文件是samba最重要的配置文件,该文件定义了samba的安全机制、文件共享和打印共享的目录和参数以及其他一些系统配置功能。
配置文件smb.conf的默认路径是/usr/local/samba/lib/smb.conf,我们可以在运行smbd进程时,通过-s选项来执行特定的smb.conf文件(具体说明见下一节),一般不推荐使用-s选项,因为其配置工具,如smbclient、testparm等默认都是读取/usr/local/samba/lib/smb.conf文件。下面我们以一个简单的配置文件进行说明,其路径为/etc/samba/smb.conf。
代码如下:
[global]
workgroup= MYGROUP
server string= Samba Server%v
security= user
log file=/var/log/samba/%m.log
passdb backend= smbpasswd
smb passwd file=/etc/samba/smbpasswd
[root]
path=/
valid users= root
writeable= yes
[public]
path=/data
guest ok= yes
read only= yes
上面配置文件定义了root和public两个文件共享服务。关于上面这个配置文件的具体细节,我们这里不做详细的论述。这里主要说明的一点:在samba 3.0.23版本以前验证用户密码的默认backend是smbpasswd,而3.0.23版本之后的默认backend是tdbsam。我们可以通过参数passdb backend来选择特定的backend。在使用smbpasswd时默认读取的密码文件时/usr/local/samba/private/smbpasswd,我们可以通过smb passwd file来指定特定的密码文件。
在配置完smb.conf文件后,我们可以运行testparm(目录/usr/local/samba/lib下)命令来对smb.conf文件进行语法检查,其会检测出哪些参数名无法识别等问题。
六、启动samba
samba有两个主要的进程smbd和nmbd。smbd进程提供了文件和打印服务,而nmbd则提供了NetBIOS名称服务和浏览支持,帮助SMB客户定位服务器,处理所有基于UDP的协议。
配置smb.conf文件后,在开始运行samba的服务进程之前。我们需要先做一些准备工作。运行smbpasswd命令(在目录/usr/local/samba/bin下)
代码如下:
#./smbpasswd–a root
向smb.conf文件中指定的/etc/samba/smbpasswd文件中添加root用户以及密码信息。关于smbpasswd文件的详细内容介绍见相关文档。
然后运行命令
代码如下:
# service iptables stop
关闭防火墙,因为防火墙可能会阻止用户访问该机器。下面是运行samba的服务进程smbd和nmbd
代码如下:
#/usr/local/samba/sbin/smbd–D–s/etc/samba/smb.conf
#/usr/local/samba/sbin/nmbd–D–s/etc/samba/smb.conf
上面的-D选项指定smbd和nmbd以守护进程的方式启动,并且通过-s选项指定了特定的配置文件/etc/samba/smb.conf。以守护进程方式启动smbd和nmbd的优势是响应速度快,但是要关闭的话只能kill掉。当然我们可以通过脚本来执行这些操作,这里就不提供脚本了。
七、smbclient进行测试检查
在启动samba之后,我们可以在本机使用smbclient(目录/usr/local/samba/bin下)来进行测试。下面命令
代码如下:
# cd/usr/local/samba/bin
#./smbclient–L//127.0.0.1
可以列出本samba服务器所提供的服务列表,本例运行结果如下:
代码如下:
[root@localhost bin]#./smbclient–L//127.0.0.1
Enter root’s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
p Sharename Type Comment
-----------------------
IPC$ IPC IPC Service(Samba Server 3.5.9)
public Disk
root Disk
pDomain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
p Server Comment
------------------
LOCALHOST Samba Server 3.5.9
Workgroup Master
-------------------
MYGROUP LOCALHOST
当然也可以通过smbclient来访问samba服务器提供的服务,其命令格式如下:
代码如下:
#./smbclient“//serverAdderss/aservice”–U username
其中serverAddress是要访问的samba服务器的IP地址,aservice指定samba服务器上提供的某个服务名称,选项-U username指定要以哪个用户名来访问samba服务器。例如
代码如下:
[root@localhost bin]#./smbclient“//127.0.0.1/root”–U root
Enter root’s password:;#这里输入samba用户root的密码
Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.5.9]
smb:;#访问成功,输入相关命令进行操作
上面个smb:表明了访问成功,此时我们可以输入一些命令来在samba服务器上进行操作,比如ls、mkdir等。q或quit命令执行退出,并断开连接。
八、在Windows客户端访问samba服务器
在Windows客户端,可以在网上邻居中通过新建网上邻居来访问,或者在【开始】——【运行】中输入192.168.1.34root来访问samba服务器192.168.1.34上面提供的root服务。
九、重要选项说明
全局选项:
全局选项用于[global]的
选项定义中,其用于说明samba服务器的一些基本属性。其有些选项可以被其他
中的选项定义覆盖。
workgroup= MYGROUP
定义samba服务器所在的工作组或者域(如果设置security= domain的话)。
server string= Samba server
设定samba服务器的描述,通过网络邻居访问时可在备注中查看到该描述信息。
hosts allow= host(subnet)
设定允许访问该samba服务器的主机IP或网络,该选项的值为列表类型,不同的项目之间使用空格或逗号隔开,例如hosts allow= 192.168.3.0, 192.168.1.1,该选项设置允许主机192.168.1.1以及子网192.168.3.0/24内的所有主机访问该samba服务器。
hosts deny= host(subnet)
设定不允许访问该samba服务器的主机IP或网络,其格式与hosts allow一样。
guest account= guest
设定了游客的账号,在游客访问guest ok= yes的共享服务时,samba服务器将设置客户端以该游客账号来访问共享。
log file= MYLOGFILE
设定记录文件的位置。
max log size= size
设定记录文件的大小,单位为KB,如果设置为0则表示无大小限制。
security=
设定samba服务器的安全级,其有四种安全级别:share、user、server和domain,默认为user。关于这四种安全级别的详细信息,请查看相关文档。
password server= ServerIP
设定了用户账号认证服务器IP,其在设定security= server时有效。
encrypt passwords= yes| no
设定是否对密码进行加密。如果不对密码进行加密的话,在认证会话期间,客户端与服务器传递的是明文密码。但有些Windows系统默认情况下,不支持明文密码传输。
passdb backend= smbpasswd| tdbsam| ldapsam
设定samba服务器访问和存储samba用户账号的后端,在samba-3.0。23之前的默认值为smbpasswd,而之后的默认值为tdbsam。
smb passwd file=
设定samba的用户账号文件。对于源代码安装的samba,在samba-3.0.23之前,其默认值为/user/local/samba/private/smbpasswd;而samba-3.0.23之后,其默认值为/usr/local/samba/private/passwd.tdb。
include= smbconfFile
通过include选项可以包含其他配置文件,通过该选项和一些samba定义的变量可以设定与不同机器相关的配置。
local master= yes| no
设定该samba服务器是否试图成为本地主浏览器,默认值为yes。若设置为no,则该samba服务器永远不可能成为本地主浏览器,而设置为yes不代表其一定能成为本地主浏览器,只是让其能参与本地主浏览器的选举。
os level= N
N是一个整数,设定了该samba服务器参加本地主浏览器选举时的权重,其值越大,权重越大。os level= 0时,该服务器将失去选举的机会。
domain master= yes| no
设定samba服务器成为域浏览器。域浏览器从各个本地主浏览器处获取浏览列表,并将整个域的浏览列表传递给各个本地主浏览器。
preferred master= yes| no
设定该samba服务器是否为工作组里的首要主浏览器,如果设置为yes,则在nmbd启动时,将强制一个浏览选择。
局部选项:
局部选项为除了global外的各个
中的参数。其定义了共享服务的属性。
comment=
设定共享服务的描述信息。
path=
设定共享服务的路径,其中可以结合samba预定义的变量来设置。
hosts allow= host(subnet)
hosts deny= host(subnet)
与全局的hosts allow和hosts deny含义相同,其会覆盖全局的设置。
read only= yes| no
设定该共享服务是否为只读,该选项有一个同义选项writeable。
user= user(@group)
设定所有可能使用该共享服务的用户,可以使用@group来设置群组group中的所有用户账号。该选项的值为列表,不同的项目之间使用空格或逗号隔开。在设置security= share时,客户端要访问某共享服务时提供的密码会与该选项指定的所有用户进行一一配对认证,若某用户认证通过,则以该用户权限进行共享服务访问,否则拒绝客户端的访问(设置security= share不是允许游客访问,只有guest ok= yes才是允许游客访问,切记!!!)。
valid users= user(@group)
设定能够使用该共享服务的用户和组,其值的格式与user选项一样。
invalid users= user(@group)
设定不能够使用该共享服务的用户和组,其值的格式与user选项一样。
read list= user(@group)
设定对该共享服务只有读取权限的用户和组,其值的格式与user选项一样。
write list= user(@group)
设定对该共享服务拥有读写权限的用户和组,其值的格式与user选项一样。
admin list= user(@group)
设定对该共享服务拥有管理权限的用户和组,其值的格式与user选项一样。
public= yes| no
设定该共享服务是否能够被游客访问,其同义选项有guest ok。
create mode= mode
mode为八进制值,如0755,其默认值为0744。该选项指定的值用于过滤新建文件的访问权限,新建文件的默认权限将与create mode指定的值进行按位与操作,将结果再与force create mode指定的值进行按位或操作,得到的结果即为新建文件的访问权限。
force create mode= mode
mode为八进制值,默认为0000。其作用参考选项create mode。
directory mode= mode
mode为八进制值,默认为0755。该选项指定的值用于过滤新建目录的访问权限,新建目录的默认权限将与directory mode指定的值进行按位与操作,将结果再与force directory mode指定的值进行按位或操作,得到的结果即为新建目录的访问权限。
force directory mode= mode
mode为八进制值,默认为0000。该选项的作用参考选项directory mode。
force user= user
强制设定新建文件的属性onwer。若存在一个目录,其允许guest可以写,则guest就可以删除。但设定force user为其他用户,并设置create mode= 0755,则gues用户不能够删除其新建文件。
上面只是简单的介绍了一些重要的选项,并且没有讨论有关[printers]的选项说明,更多选项请man smb.conf进行查阅。
linux下Samba服务和NFS服务配置的方法
linux下Samba服务和NFS服务配置
一、Samba服务配置过程
samba的功能很简单,就是为了使linux和windows之间能够实现共享。并且利用samba搭建文件服务器,不仅比windows功能强大,而且访问速度快、安全。首先说明,samba服务器需要两个守护进程:smbd和nmbd。smbd进程监听139TCP端口,处理到来的SMB数据包;nmbd进程监听137、138UDP端口,使其他主机能浏览linux服务器。
1、安装Samba服务
首先用命令测试rpm-qi samba看是否安装了Samba软件包,若没有可以用yum install samba在线安装(fedora 11环境下)。
2、启动Samba服务
安装完成后,使用service smb start命令启动samba服务。如果想让samba服务开机自动加载,可使用ntsysv命令(或setup命令中的system service选项)打开开机自动加载的服务,并勾选smb,确定后即可实现开机加载samba服务。
3、关闭防火墙
默认情况下防火墙关闭了139 TCP端口,也关闭了nmbd进程所需要的137、138端口。所以我们使用命令service iptables stop命令关闭防火墙。也可对防火墙进行修改,放行TCP139 UDP 137、138端口。
4、配置samba服务
samba服务的配置文件是/etc/samba/smb.conf,使用VI编辑器打开vi/etc/samba/smb.conf文件,对samba进行配置
smb.conf文件中包括4中结构,【Global】、【Homes】、【printers】、【Userdefined_shareName】,其中:
Globa用于定义全局参数和缺省值
Homes用于用户的home目录共享
Printers用于定义打印机共享
Userdefined_ShareName用于自定义共享(可有多个)
说明:文件中开头带有“#”为说明文件,不执行。开头带有“;”为举例文件,不执行(若想让其执行,去掉“;”)。
配置全局参数【Global】
◎基本全局参数
workgroup=MYGROUP设置samba要加入的工作组
server string=Samba Service指定浏览列表里的机器描述
netbios name=fedora设置samba的NetBIOS名字(需要自己添加)
client code page=936设置客户字符编码 936为简体中文(需要自己添加)
◎日志全局参数
log file指定日志文件的名称
max log size=50指定日志文件的最大尺寸(KB)
◎安全全局参数
security定义samba的安装等级,share--用户不需要用户名和密码即可登陆samba服务器;user--由提供samba服务的samba服务器负责检查帐户及口令;server--检查帐户及口令的工作指定由另一台WindowsNT/2000或samba服务器负责;domain--指定windowsNT/2000域控制器来验证用户帐户、密码
encrypt passwords= yes
smb passwd file=/etc/samba/smbpasswd
这两行用于设定是否对samba密码进行加密,并指定加密文件存放路径.
◎配置自定义共享
自定义共享,只需在文件最后加入【share】,名字随便取。其中一的参数我们来依依介绍
comment描述该共享的名称
path定义该共享的目录
browseable指定共享的目录是否可浏览
writable指定共享的目录是否有写入权限
read only指定共享的目录为只读权限
public指定是否可以允许Guest帐户访问
guest ok通public相同,yes为允许guest访问
only guest指定只有guest用户可以访问
calid users指定访问该共享的用户
如:comment=my share
path=/home/share
browseable=yes
read only=yes
public=yes
only guest=yes
◎配置完成后的工作
在配置完成后,我们只需新建path定义的共享目录mkdir/home/share,
并使用chmod命令设置了其权限为777,chmod 777/home/share。
这样在service smb restart重启smb服务后客户端就可以访问该服务器(我修改了全局参数中的security=share,所以进入服务器不需要输入用户名和密码)。在windows下运行中运行://192.168.1.6(linux的IP地址)即可。
二、NFS服务配置过程
1、NFS服务器的安装
检查linux系统中是否安装了nfs-utils和portmap两个软件包,#rpm–q nfs-utils(portmap)
2、查看NFS服务器是否启动
#service nfs status
#service portmap status
如果服务器没有启动,则开启服务(默认服务下nfs没有完全开启)
#service nfs start
#service portmap start
也可以在ntsysv命令下关闭iptable和开启nfs让其自启动。
3、指定NFS服务器的配置文件
NFS服务器的配置文件保存“/etc/”目录中,文件名称是“exports”,该文件用于被指NFS服务器提供的目录共享
#vi/etc/exports
配置“exports”文件格式如下
/tftpboot*(sync,ro)
tftp:共享目录名
*表示所有主机
(sync,ro)设置选项
exports文件中的“配置选项”字段放置在括号对(“()”)中,多个选项间用逗号分隔
sync:设置NFS服务器同步写磁盘,这样不会轻易丢失数据,建议所有的NFS共享目录都使用该选项
ro:设置输出的共享目录只读,与rw不能共同使用
rw:设置输出的共享目录可读写,与ro不能共同使用
4、重新输出共享目录
Exportfs管理工具可以对“exports”文件进行管理
#exportfs–rv可以让新设置的“exports”文件内容生效
显示当前主机中NFS服务器的输出列表
# showmount-e
显示当前主机NFS服务器中已经被NFS客户机挂载使用的共享目录
# showmount-d
5、使用mount命令挂载NFS文件系统
#mount 192.168.1.6:/tftpboot/home/share
将主机IP地址为192.168.1.6中的/tftpboot目录挂载到/home/share
卸载系统中已挂载的NFS共享目录
# umount/home/share
卸载的时候不能在/home/share目录下卸载,必须注销系统后卸载。
PS:
如果portmap进程停止了运行或异常终止,那么该系统上的所有RPC服务器必须重新启动。首先停止NFS服务器上的所有NFS服务进程,然后启动portmap进程,再启动服务器上的NFS进程。
但portmap只在第一次建立连接的时候起作用,帮助网络应用程序找到正确的通讯端口,但是一旦这个双方正确连接,端口和应用就绑定,portmap也就不起作用了。但对其他任何第一次需要找到端口建立通讯的应用仍然有用。简单的说,portmap就是应用和端口的婚姻介绍人,双方成事了以后,媒婆就没用了。