当前位置:文档之家› Linux下Samba的安全配置

Linux下Samba的安全配置

Linux下Samba的安全配置
Linux下Samba的安全配置

SAMBA服务器安全配置

目录

1. Samba 简介 (2)

2. Samba 功能和应用范围 (2)

3. Samba服务相关配置 (2)

3.1 samba启动程序 (2)

3.2 查看Samba 服务器的端口及防火墙 (2)

3.3 查看Samba 服务器的配置文件 (3)

3.4 samba配置文件说明 (3)

3.5 Samba 在Linux 中的一些工具(服务器端和客户端) (5)

3.6 在Linux 中的常用工具和Windows查看Linux共享的方法 (5)

3.6.1 在Linux上查看Windows及Samba共享文件 (5)

3.6.2 在Windows中访问Linux Samba服务器共享文件的办法 (7)

3.6.3 在Linux中smbfs文件系统的挂载 (7)

3.7 以浏览器管理SAMBA-SWAT (9)

4. 举简单例子说明匿名用户可读可写的实现 (9)

4.1 更改smb.conf (9)

4.2 建立相应目录并授权 (12)

4.3启动smbd和nmbd服务器 (13)

4.4查看smbd进程,确认Samba 服务器是否运行起来了 (13)

4.5访问Samba 服务器的共享 (13)

5. 复杂一点的用户共享模型 (13)

5.1 共享权限设计实现的功能 (13)

5.2 在服务器上创建相应的目录 (14)

5.3 添加用户用户组,设置相应目录家目录的权限 (14)

5.3.1 添加用户组 (14)

5.3.2 添加用户 (14)

5.3.3 添加samba用户,并设置密码 (14)

5.3.4 配置相关目录的权限和归属 (15)

5.4 修改Samba配置文件 smb.conf (15)

5.5创建一个samba用户 (17)

5.6最后阶段,进行测试 (17)

1. Samba 简介

Samba(SMB是其缩写)是一个网络服务器,用于Linux与Linux(最好用NFS),Linux和Windows 间共享文件,在Windows 网络中的每台主机既可以是文件服务器,也可以同时是客户机;一台Linux 主机如果架设了Samba服务后,它既能充当服务器,同时也能作为客户机来访问其它网络中的Windows 共享文件系统,或其它Linux的Sabmba服务器;在Windows网络中,能看到共享文件夹功能,可以把共享文件夹映射为本地网络驱动器。在Linux中,就是通过Samba向网络中的主机提供共享文件系统,也可以把网络中其它机器的共享挂载在本地主机上使用;Samba 用的是netbios协议,让Netbios和SMB在TCP/IP上运行。

2. Samba 功能和应用范围

Samba 应用范围主要是Windows和Linux 系统共存的网络中使用;如果一个网络环境都是Linux或Unix 类的系统,可以用NFS;而Samba主要是提供共享文件和共享打印机;

3. Samba服务相关配置

3.1 samba启动程序

Samba 有两个服务器,一个是smb(监听139,445TCP端口),另一个是nmb(监听137,138两个UDP 端口);smbd和nmbd使用的全部配置文件都保存在smb.conf文件中。smb 是Samba 的主要启动服务器,它能让其它主机知道该主机共享了什么;如果不打开nmb服务器的话,只能通过IP来访问。

如:在Windows的IE浏览器上输入下面的内容

\\192.168.1.5\共享目录

而nmb是解析用的,就是把这台Linux机器所共享的工作组及在此工作组下的netbios name解析出来;

一般的情况下,如果是用RPM包安装的Samba ,一般可通过如下的方式来启动Samba服务器;

[root@localhost ~]# /etc/rc.d/init.d/smb start(stop/restart)

对于所有系统来说,通用的办法就是直接运行smb 和nmb;当然要知道smb和nmb所在的目录才行;如果是自己编译的Samba,应该知道把Samba放在哪里了;

[root@localhost ~]# /usr/sbin/smbd

[root@localhost ~]# /usr/sbin/nmbd

查看服务器是否运行起来了,则用下面的命令;

[root@localhost ~]# pgrep smbd

[root@localhost ~]# pgrep nmbd

关掉Samba服务器,也可以用下面的办法,大多是通用的;要root权限来执行;

[root@localhost ~]# pkill smbd

[root@localhost ~]# pkill nmbd

3.2 查看Samba 服务器的端口及防火墙

有时防火墙可能会把smbd服务器的端口封掉,所以应该查看smbd服务器所占用的端口;下面查看中,显示smbd所占用的端口是139和445 ;

[root@localhost ~]# netstat -tlnp |grep smb

tcp 0 0

0.0.0.0:139 0.0.0.0:* LISTEN 10639/smbd

tcp 0 0

0.0.0.0:445 0.0.0.0:* LISTEN 10639/smbd

如果有防火墙,一定要把这两个端口打开。如果不知道怎么打开,还是把防火墙规则清掉;

[root@localhost ~]# iptables -F 或

[root@localhost ~]# /sbin/iptables –F

3.3 查看Samba 服务器的配置文件

如果是用Linux发行版自带的Samba软件包,一般情况下Samba服务器的配置文件都位于/etc/samba 目录中,服务器的主配置文件是smb.conf;也有用户配置文件 smbpasswd、smbusers和lmhosts等;

还有一个文件是secrets.tdb,这个文件是Samba 服务器启动时自动生成的;

3.4 samba配置文件说明

以井号(#)和分号(;)开始的行和空行被忽略,以外斜线(\)结束的行将在下一行继续。段名和参数名不分大小写。

除了[global]段外,所有的段都可以看作是一个共享资源,段名是该共享资源的名字,而段里的参数就是共享资源的属性。[global], [homes] 和 [printers]这三个段是比较特殊的,一个共享资源段由要提供访问的路径和附加的访问权限组成,可以是文件资源或打印资源。共享资源段可以给guest级的用户服务,一般来说guest用户是不需要密码的,如果给guest提供服务,guest的权限是根据UNIX里的guest帐户来赋予。如果共享资源段不是给guest提供服务的,则访问这样的段需要客户的密码。由于赋予用户对共享资源段的访问权限是基于该用户在UNIX系统的对该资源的访问权限,所以服务器是不能赋予超过UNIX系统赋予该用户的权限的。

例如:下面的共享资源段的例子定义了一个文件共享,用户对路径/home/abc有写入的权限,共享资源段名是abc,也就是共享名。

[abc]

path = /home/abc

writeable = true

特殊段

[global] 段

在这个段的参数是全局有效的。

[homes] 段

当用户请求一个共享时,服务器将在存在的共享资源段中去寻找,如果找到匹配的共享资源段,就使用这个共享资源段。如果找不到,就将请求的共享名看成是用户的用户名,并在本地的password 文件里找这个用户,如果用户名存在且用户提供的密码是正确的,则以这个home段克隆出一个共享提供给用户。这个新的共享的名称是用户的用户名,而不是home,如果home段里没有指定共享路径,就把该用户的宿主目录(home directory)作为共享路径。

通常的共享资源段能指定的参数基本上都可以指定给[home]段。但一般情况下[home]段有如下配置就可以满足普通的应用。

[homes]

writeable = yes

注意,如果在[home]段里加了guess access =ok,所有的用户都可以不要密码就能访问所有的宿主目录!

(1)基本参数

workgroup

说明:这个参数用来指定samba所要加入的工作组,另外如果在设置了security=domain,则workgroup可以指定域名。例如:

workgroup = wgp1 指明工作组为wgp1

netbios name

说明:这个参数指定samba的netbios名,可以不设置,samba将会使用机器的DNS名的第一部分,如果你的机器的DNS名是host1.domain,就用host1 例如:

netbios name = public 指定NetBios名为public

server string

说明:这个参数指定在浏览列表里的机器描述,和MS WINDOWS 里配置网络时的描述是一样的。可以是任何字符串。也可以不填,samba会用缺省的 samba %v,即samba 尾随它的版本号,不过如果要模仿NT象一点的话,可以填一下。

例如:server string = Master File Server

(2)安全参数

security

说明:这是个重要的安全配置参数,有4个值,分别是share、user、server和domain,定义了samba的基本安全级,通常是 user

security = user

这是samba的默认配置,这种情况下要求用户在访问共享资源之前资源必须先提供用户名和密码进行验证。

securtiy = share

这是几乎没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。

security = server

和user安全级类似,但用户名和密码是递交到另外一个SMB服务器去验证,比如递交给一台NT 服务器。如果递交失败,就退到user安全级,从用户端看来,server和user这两个级别是没什么分别的。

security = domain

这种安全级别要求网络上存在一台NT PDC,samba把用户名和密码递交给NT PDC去验证。

从用户端看来,user级以上的安全级其实是没什么分别的,只是服务器验证的方式不同,但这三种安全级都要求用户在本Linux机器上也要系统帐户。否则是不能访问的。

(3)共享资源设置参数

comment

说明:就是对共享的描述,可以是任意的字符串

例如:comment = Share Stuff

path

说明: path是提供共享服务的路径,可以用%u %m这样的宏来代替路径里的unix用户和客户机的Netbios名。

例如:如果我们不打算用home段做为客户的共享,而是在/home/share/ 下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成

path = /home/share/%u;

用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的

共享资源,可以这样写path

path = /home/share/%m

writeable

说明:指定共享路径是否可以写,值是yes或no

browseable

说明:指定共享是否可以浏览,默认是yes

available

说明:指定共享资源是否可用,默认是yes,设为no则关闭该资源的共享服务,用户无法连接到该资源上。

public

说明:这个参数指明是否允许guest帐户访问,值为yes或no,另一个和public相同意义的参数是guest ok。

(4)高级参数的配置

在基本配置里有提到一些参数的可以尾随%u、%m,这是samba里定义的宏,宏用百分号后面跟一字符表示,在具体运作的时候就用实际的参数来代替。常用的宏有

%S = 当前服务名

%P = 当前服务的根路径

%u = 当前服务的用户名

%g = 给定%u的所在的主工作组名

%H = 给定的%u的宿主目录

%v = Samba 版本号

%h = 运行Samba的机器的主机名

%m = 客户机的NETBIOS名

%L = 服务器的 NetBIOS 名

%T = 当前的日期和时间

灵活地应用宏可以很方便地管理比较复杂的网络

(5)共享资源参数

admin users

这个参数用来赋予用户对共享资源的管理员权限,意味着这些用户可以root一样进行所有的文件操作,当然只局限在这个共享资源上。这个选项要慎用,因为任何这样的用户可以对该共享上的文件随意进行操作。缺省是admin users = no。

例如: admin users = Su_27

那么Su_27这个用户就是这个共享资源的管理员。

valid users

说明:指定共享资源的有效用户,即允许访问该资源的用户。

例如:valid users = user1, user2 那么user1和user2是有效用户

invalid users

说明:和valid users 相反,指定那些用户不可访问这共享资源。

max connections (S)

说明:指定一个服务的最大连接数目,用户连接到该服务时如这个服务的连接数目已经达到指定值,这个新的连接请求将被拒绝。

例如: max connections = 100 最大连接数为100

3.5 Samba 在Linux 中的一些工具(服务器端和客户端)

smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtr

ee

smbclient smbcquotas smbmnt smbpasswd smbspool smbtar smbum ount

smbd nmbd mount

其中服务器端的是smbd、nmbd、smbpasswd ;其它的大多是客户端;这些并不是都需要

一定要精通的,但至少得会用几个;比如smbmount(也就是mount 加参数的用法),还有smbclient等;

3.6 在Linux 中的常用工具和Windows查看Linux共享的方法

3.6.1 在Linux上查看Windows及Samba共享文件

一般的情况下,要用到smbclient;常用的用法也无非是下面的;

[root@localhost ~]# smbclient -L //ip地址或计算机名

smbclient 是Samba 的Linux 客户端,在Linux主机上用来查看服务器上的共享资源,也可以象FTP一样,用户可以登录Samba服务器,也可以上传put和下载get文件,但对中文支持并不友好;

(1)查看服务器上的资源

smbclient -L //IP [-U 用户名]

如果Samba服务器配置为user模式,就要加“-U 用户名”,如果是share模式,省略也可;比如:

[root@localhost ~]# smbclient -L //192.168.1.3 -U sir01

Password: 请输入用户sir01的密码

如果是用share模式,就可以不必理会用户和密码,直接用;

[root@localhost ~]# smbclient -L //192.168.1.3

Password: 直接按回车

(2)登录用户身份Samba服务器共享

以用户身份登录共享后,能象FTP用户一样,上传和下载文件;用put表示上传,用get 表示下载;

smbclient //IP地址/共享文件夹 -U 用户

说明:可以用/sbin/ifconfig 来查看本机IP;共享文件夹是在smb.conf中定义的[共享文件夹],比如[sir01]。-U 用户名表示Samba 的用户;比如:

[root@localhost ~]# smbclient //192.168.1.3/sir01 -U sir01

Password:

Domain=[LINUXSIR] OS=[Unix] Server=[Samba 3.0.21b-2]

smb: \> ls

说明:登录到Samba服务器上,就可以用smbclient的一些指令,可以象用FTP指令一样上传和下载文件;

(3)smbclient 命令说明

?或help [command] 提供关于帮助或某个命令的帮助

![shell command] 执行所用的SHELL命令,或让用户进入 SHELL提示符

cd [目录] 切换到服务器端的指定目录,如未指定,则 smbclient 返回当前本地目录 lcd [目录] 切换到客户端指定的目录;

dir 或ls 列出当前目录下的文件;

exit 或quit 退出smbclient

get file1 [file2] 从服务器上下载file1,并以文件名file2存在本地机上

mget file1 file2 file3 filen 从服务器上下载多个文件;

md或mkdir 目录在服务器上创建目录

rd或rmdir 目录删除服务器上的目录

put file1 [file2] 向服务器上传一个文件file1,传到服务器上改为file2

mput file1 file2 filen 向服务器上传多个文件

3.6.2 在Windows中访问Linux Samba服务器共享文件的办法

在网上邻居,查看工作组就能看得到,或者在浏览器上输入如下

\\ip地址或计算机名

这样就能看到这个机器上的共享了,如果访问不了,不要忘记把Linux的防火墙规划清掉,或让相应的端口通过;

3.6.3 在Linux中smbfs文件系统的挂载

mount 的用法,加载网络中的共享文件夹到本地;mount就是用于挂载文件系统的,smbfs作为网络文件系统的一种,也能用mount挂载;

(1) mount 挂载smbfs的用法

mount -t smbfs -o codepage=cp936,username=用户名,password=密码, dmask=777,fmask=777,-l //ip地址/共享文件夹名挂载点

mount -t smbfs -o codepage=cp936,username=用户名,password=密码 , -l //计算机名/共享文件夹名挂载点

mount -t smbfs -o codepage=cp936 //ip地址或计算机名/共享文件夹名挂载点

(2) smbmount的用法

smbmount -o username=用户名,password=密码, -l //ip地址或计算机名/共享文件夹名挂载点 smbmount //ip地址或计算机名/共享文件夹名挂载点

说明:如果SMB服务器是以share共享的,则无需用户名和密码就能挂载,出现密码提示时,直接回车就行;也可以用smbmount 来挂载,这样就无需用mount -t smbfs来指定文件系统的类型了;对于挂载点,要自己建立一个文件夹,比如可以建在/opt/smbhd;

在mount的命令中,参数codepage=cp936,这是服务器端文件系统的编码,cp936 就是简体中文,当然也可以用utf8等,如果挂载了远程的smbfs文件系统出现的是简体中文乱码,就要考虑挂载时要指定编码了;

(3) samba密码文件

samba口令文件由smb passwd file参数指定,默认为/etc/samba/smbpasswd,创建该文件的方法

#cat /etc/passwd | mksmbpasswd.sh>/etc/samba/smbpasswd

#vi /etc/samba/smbpasswd

#chown root.root /etc/samba/smbpasswd

#chmod 500 /etc/samba

#chmod 600 /etc/samba/smbpasswd

#ll –d /etc/samba

#smbpasswd lrj

使用smbpasswd命令修改用户口令时,被修改的samba帐户的本地系统用户帐户必须事先已经存在,smbpasswd –a 添加单个samba帐号并设置口令,要求被添加的samba帐号的本地系统用户帐户已事先存在,如若不存在使用useradd添加

#testparm 检查配置文件语法有无错误

在Windows使用“网上邻居”映射网络驱动器,访问samba共享,而Linux使用#smbclient –l localhost 检查服务器所共享的资源

(4) Smb.conf文件结构

Smb.conf由3个标准节和若干个用户自定义共享节所组成

[global] 全局参数和缺省值

[homes] 用户的主目录共享

[printers] 打印机共享

[userdefined_sharename] 用户自定义共享

Smb.conf文件语法:该文件中常用的变量

%s 当前服务台(共享名)

%p 当前服务台的根路径(主目录)

%u 当前服务台的用户名(共享用户名)

%H 给定的%U的宿主目录

%v 给定的%U的版本号

%h 运行samba服务器的主机名

%m 客户端的Netbios名

%L 服务器的Netbios名

%T 当前日期和时间

%M 客户机主机名

%N NIS服务器名

%i 客户机IP

(5) Samba四种安全等级(security参数指定)

Share 无需帐户,口令即可登录samba服务器

User 由提供服务的samba服务器负责检查帐户及密码(默认)

Server 由另一台WinNT/2000或其他Samba服务器负责审核用户名口令

Domain 指定WinNT/2000域控制器验证用户帐号和口令

Samba使用/etc/samba/lmhosts文件存放netbios名与IP静态映射表,以作为Linux主机以samba客户端去访问Windows共享或其他Linux提供的samba共享

#cat /etc/samba/lmhosts

#vi /etc/samba/lmhosts

127.0.0.1 Localhost

192.168.1.200 shrike

192.168.1.100 rh9

192.168.1.77 win01

192.168.1.88 win02

#smbclient -L win01

#smbclient //win01/tools –U osmond

Smb:\>? 类似FTP

\>quit

#mkdir –p /mnt/smb/win01

#smbmount //win01/tools /mnt/smb/win01 将远程共享tools挂载到本地/mnt/smb/win01

#cd;unount /mnt/smb/win01

在Linux窗口模式下: smb://210.31.8.89 ,输入Windows用户名密码,可访问该机共享

为实现自动加载,可在fstab文件中加入一行:

//192.168.2.100/samba /mnt/floppy smbfs defaults,username= ,password= 1 1

3.7 以浏览器管理SAMBA-SWAT

(1)检查/etc/services文件,确定下行内容之前没有“#”

Swat 901/tcp #Samba Web Administration Tool

(2)编辑/etc/xinetd.d/swat文件内容

Service swat

{ Disable =no

Port =901

Socket_type =stream

Wait =no

Noly_from =“允许运行SWAT的地址”

User =root

Server =/usr/sbin/swat

Log_on_failure +=USERID

}

(3)重启服务 /etc/rc.d/init.d/xinetd restart

(4)http://允许运行SWAT的地址:901 输入root及其密码,出现SWAT管理界面

4. 举简单例子说明匿名用户可读可写的实现

#grep –v “#” /etc/samba/smb.conf|grep –v “;”

4.1 更改smb.conf

创建让所有用户可以读写一个Samba 服务器共享的一个文件夹;要改动一下smb.conf ;首先备份一下smb.conf文件;

[root@localhost ~]# cd /etc/samba

[root@localhost samba]# mv smb.conf smb.confBAK

重新创建一个smb.conf文件;

[root@localhost samba]#touch smb.conf

全局参数选项:

[global] 全局配置,必须填写

workgroup = LinuxSir 在Windows中显示的工作组

netbios name = LinuxSir05 在Windows中显示的计算机名

server string = Linux Samba Server TestServer Samba服务器的说明,可自行定义security = share 验证和登录方式,如设为share,不用设用户名密码Printcap name = /etc/printcap 设置打印机配置文件路径

Load printers = yes 是否加载打印机配置文件

Printing = cups 设置打印机系统类型

Log file = /var/log/samba/%m.log 指定日志文件的名称

Max log size = 0 指定日志文件的最大尺寸

Encrypt passwords = yes 用于指定是否使用加密口令

Smb passwd file = /etc/samba/smbpasswd 指定samba口令文件的路径

Unix password sync = yes

Passwd program = /usr/bin/passwd %u

/usr/bin/passwd

Pam password change = yes

Obey pam restrictions = yes

Socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 服务器客户间会话选项Dns proxy = no

Client code page = cp936 设置客户字符编码页

Socket address 指定samba监听的IP地址

Admin user 设定管理员帐号

Map to guest guest登录名及口令不正确时的处理方式Username map 指定SMB/Unix名字映射文件的路径

Host allow =210.31.8 except 210.31.8.208 可以访问samba的主机

Host deny 禁止访问samba的主机

Change notify timeout 设置服务器周期性异常通知

Deadtime 客户端无操作多少分钟后服务器中断连接getwd cache 是否使用cache功能

keepalive 服务器每隔多少秒向客户端发送keepalive包max open files 同一客户端最多能打开的文件数目

共享目录参数

[linuxsir] 在Windows中显示的共享目录名

Comment = home Directories 指定对共享的描述

Valid users = %s

Create mode = 0644

directory mode = 0755

path = /opt/linuxsir 设置为共享的目录放在哪里(路径)

writeable = yes 是否可写

browseable = yes 是否可以浏览,是则在工作组下能看到共享文件夹available = 指定共享资源是否可用

read only = 指定共享的路径是否为只读

guest ok = yes 匿名用户以guest身份登录guest account = 指定一般性客户帐户

guest only = 是否只允许guest帐号访问

public = 是否可以允许guest帐号访问

read list = 设置只读用户访问列表

write list = 设置读写用户访问列表

valid users = 指定允许使用服务器的用户列表

invalid users = 指定不允许使用服务器的用户列表

配置举例:

#vi /etc/smb.conf

Workgroup=WORKGROUP

Server strin=samba server %v at %h

Hosts allow =192.168.1.

Client code page=936

#vi /etc/samba/smb.conf

[resource] 添加resource共享

Comment=local resource

Path=/var/samba/resource

Public=yes

Writable=yes

#mkdir –p /var/samba/resource

#cd /var/samba/resource

#ln –s /usr/share/doc doc

#ls –s /var/ftp ftp

#vi /etc/samba/smb.conf

[tmp]

Comment=temporary file space

Path=/tmp

Read only=no 读写共享

Public =yes

[cdrom]

Comment=CDROM

Path=/mnt/cdrom

Read only=yes 只读共享

Public=yes

为指定用户或组配置samba共享

#useradd fred #passwd fred

#smbpasswd –a fred 添加fred的samba帐号

#mkdir /var/samba/fred

#chown fred.fred /var/samba/fred 更改目录属性

#vi /etc/samba/smb.conf

[freddirs]

Comment=fred’s service

Path=/var/samba/fred

Valid users=fred

Public=no

Writable=yes

为指定的多个用户配置samba共享

#useradd tom #useradd ben #passwd tom #passwd ben #smbpasswd -a tom

#smbpasswd -a ben

#mkdir /var/samba/tomben

#chomod 707 /var/samba/tomben

#vi /etc/samba/tomben

[myshare]

Comment=tom’s and ben’s share

Path=/var/samba/tomben

Valid users=tom,ben

Public=no

Writable=yes

Create mask=707

为指定的组配置samba共享

#useradd staff #passwd staff #useradd –G staff user1 #passwd user1 #useradd –G staff user1 #passwd user2 #smbpasswd –a user1

#smbpasswd –a user2

#mkdir /var/samba/staff

#chown staff.staff /var/samba/staff

#chmod 770 /var/samba/staff

#vi /etc/samba/smb.conf

[staff]

Comment=public staff

Path=/var/samba/staff

Public=yes

Writable=yes

Write list =@staff

4.2 建立相应目录并授权

[root@localhost ~]# mkdir -p /opt/linuxsir

[root@localhost ~]# id nobody

uid=99(nobody) gid=99(nobody) groups=99(nobody)

[root@localhost ~]# chown -R nobody:nobody /opt/linuxsir

注释:关于授权nobody,先用id命令查看nobody用户的信息,发现他的用户组也是nobody,要以这个为准。有些系统nobody用户组并非是nobody ;

4.3启动smbd和nmbd服务器

[root@localhost ~]# smbd

[root@localhost ~]# nmbd

4.4查看smbd进程,确认Samba 服务器是否运行起来了

[root@localhost ~]# pgrep smbd

13564

13568

4.5访问Samba 服务器的共享

在Linux 中可以用下面的命令来访问;

[root@localhost ~]# smbclient -L //LinuxSir05

Password: 注:直接按回车

在Windows中,您可以用下面的办法来访问;

\\LinuxSir05\

5. 复杂一点的用户共享模型

比如一个公司有五个部门,分别是linuxsir,sir01,sir02,sir03,sir04。我们想为这家公司设计一个比较安全的共享文件模型。每个用户都有自己的网络磁盘,sir01到sir04还有共用的网络硬盘;所有用户(包括匿名用户)有一个共享资料库,此库为了安全是只读的;所有的用户(包括匿名用户)要有一个临时文件中转的文件夹... ....

5.1 共享权限设计实现的功能

1)linuxsir部门具有管理所有SMB空间的权限;

2)sir01到sir04拥有自己的空间,并且除了自身及linuxsir有权限以外,对其它用户具有绝对隐私性;

3)linuxsir01到linuxsir04拥有一个共同的读写权限的空间;

4) 所有用户(包括匿名用户)有一个有读权限的空间,用于资料库,所以不要求写入数据。

5)sir01到sir04还有一个共同的空间,对sir01到sir04的用户来说是隐私的,不能让其它用户来访问。

6) 还要有一个空间,让所有用户可以写入,能删除等功能,在权限上无限制,用于公司所有用户的临时文档中转等;

5.2 在服务器上创建相应的目录

[root@localhost ~]# mkdir -p /opt/linuxsir

[root@localhost ~]# cd /opt/linuxsir

[root@localhost linuxsir]# mkdir sir01 sir02 sir03 sir04 sirshare sir0104rw sirallrw

[root@localhost linuxsir]# ls

sir01 sir0104rw sir02 sir03 sir04 sirallrw sirshare

注:功用如下:

/opt/linuxsir 这是管理员目录,负责管理其下所有目录;

/opt/linuxsir/sir01 是sir01的私有主目录,除了用户本身和linuxsir以外其它用户都是不可读写;/opt/linuxsir/sir02 是sir02的私有主目录,除了用户本身和linuxsir以外其它用户都是不可读写;/opt/linuxsir/sir03 是sir03的私用主目录,除了用户本身和linuxsir以外其它用户都是不可读写;/opt/linuxsir/sir04 是sir04的私用主目录,除了用户本身和linuxsir以外其它用户都是不可读写;/opt/linuxsir/sirshare 所用用户(除了linuxsir有权限写入外)只读目录

/opt/linuxsir/sir0104rw 是用于sir01到sir04用户可读写共用目录,但匿名用户不能读写;

/opt/linuxsir/sirallrw 用于所有用户(包括匿名用户)的可读写;

5.3 添加用户用户组,设置相应目录家目录的权限

5.3.1 添加用户组

[root@localhost ~]# /usr/sbin/groupadd linuxsir

[root@localhost ~]# /usr/sbin/groupadd sir01

[root@localhost ~]# /usr/sbin/groupadd sir02

[root@localhost ~]# /usr/sbin/groupadd sir03

[root@localhost ~]# /usr/sbin/groupadd sir04

[root@localhost ~]# /usr/sbin/groupadd sir0104

5.3.2 添加用户

[root@cuc03 ~]# adduser -g sir01 -G sir0104 -d /opt/linuxsir/sir01 -s /sbin/nologin sir01 [root@cuc03 ~]# adduser -g sir02 -G sir0104 -d /opt/linuxsir/sir02 -s /sbin/nologin sir02 [root@cuc03 ~]# adduser -g sir03 -G sir0104 -d /opt/linuxsir/sir03 -s /sbin/nologin sir03 [root@cuc03 ~]# adduser -g sir04 -G sir0104 -d /opt/linuxsir/sir04 -s /sbin/nologin sir04 [root@cuc03 ~]# adduser -g linuxsir -d /opt/linuxsir -G linuxsir,sir01,sir02,sir03,sir04,sir0104 -d /opt/linuxsir -s /sbin/nologin linuxsir

再用finger和id来查看用户信息,主要是看用户是否添加正确;

[root@localhost ~]# id linuxsir

[root@localhost ~]# finger linuxsir

5.3.3 添加samba用户,并设置密码

先添加用户,但添加的这些用户都是虚拟用户,因为这些用户是不能通过SHELL登录系统的;另外值得注意的是系统用户密码和Samba用户的密码是不同的。如果您设置了系统用户能登入SHELL,可以设置用户的

Samba密码和系统用户通过SHELL登录的密码不同。

通过smbpasswd 来添加Samba用户,并设置密码。原理是通过读取/etc/passwd文件中存在的用户名。[root@localhost sir01]# smbpasswd -a linuxsir

New SMB password: 注:在这里添加Samba用户linuxsir的密码;

Retype new SMB password: 注:再输入一次;

用同样的方法来添加 sir01、sir02、sir03、sir04的密码;

5.3.4 配置相关目录的权限和归属

[root@cuc03 ~]# chmod 755 /opt/linux

[root@cuc03 ~]# chown linuxsir:linuxsir /opt/linuxsir

[root@cuc03 ~]# cd /opt/linuxsir

[root@cuc03 ~]# chmod 2770 sir0*

[root@cuc03 ~]# chown sir01.linuxsir sir01

[root@cuc03 ~]# chown sir02.linuxsir sir02

[root@cuc03 ~]# chown sir03.linuxsir sir03

[root@cuc03 ~]# chown sir04.linuxsir sir04

[root@cuc03 ~]# chown linuxsir.sir0104 sir0104rw

[root@cuc03 ~]# chown linuxsir.linuxsir sirshare

[root@cuc03 ~]# chmod 755 sirshare

[root@cuc03 ~]# chown linuxsir:linuxsir sirallrw

[root@cuc03 ~]# chmod 3777 sirallrw

5.4 修改Samba配置文件smb.conf

配置文件如下,修改/etc/samba/smb.conf后,不要忘记重启smbd和nmbd服务器;[global]

workgroup = LINUXSIR

netbios name = LinuxSir

server string = Linux Samba Test Server

security = share

[linuxsir]

comment = linuxsiradmin

path = /opt/linuxsir/

create mask = 0664

#create mask是用户创建文件时的权限掩码;对用户及用户组可读写,对其它用户可读;

directory mask = 0775

#directory mask 是用来设置用户创建目录时的权限掩码,意思是对于用户和用户组可读可写,对其它用户可读可执行;

writeable = yes

valid users = linuxsir

browseable = yes

[sirshare]

path = /opt/linuxsir/sirshare

writeable = yes

browseable = yes

guest ok = yes

[sirallrw]

path = /opt/linuxsir/sirallrw

writeable = yes

browseable = yes

guest ok = yes

[sir0104rw]

comment = sir0104rw

path = /opt/linuxsir/sir0104rw create mask = 0664

directory mask = 0775

writeable = yes

valid users = linuxsir,@sir0104 #@sir0104是用户组;

browseable = yes

[sir01]

comment = sir01

path = /opt/linuxsir/sir01

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir01,@linuxsir

browseable = yes

[sir02]

comment = sir02

path = /opt/linuxsir/sir02

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir02,@linuxsir

browseable = yes

[sir03]

comment = sir03

path = /opt/linuxsir/sir03

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir03,@linuxsir

browseable = yes

[sir04]

comment = sir04

path = /opt/linuxsir/sir04

create mask = 0664

directory mask = 0775

writeable = yes

valid users = sir04,@linuxsir

browseable = yes

5.5创建一个samba用户

该用户在windows下有没有都无所谓。

1)建一个系统用户

[root@linux samba]# useradd samba (建一个名叫samba的用户)

[root@linux samba]# passwd samba (给samba用户添加密码)

Changing password for user samba.

New password: (密码要六位以上,不显示在屏幕上)

BAD PASSWORD: it does not contain enough DIFFERENT characters

Retype new password: (确认密码)

passwd: all authentication tokens updated successfully.

2)然后创建samba帐户

[root@linux samba]# smbpasswd -a samba

(-a必须加,为生成密码文件smbpasswd,该密码是windows登陆Linux的samba用户密码)New SMB password:

Retype new SMB password:

unable to open passdb database.

Added user samba.

3)查看一下生成的用户名、密码

[root@linux samba]# vi /etc/samba/smbpasswd

samba:500:A9C604D244C4E99DAAD3B435B51404EE:ACB98FD0478427CD18949050C5E87B47:[UX ]:LCT-468268E6:

4)重新启动samba服务

[root@linux samba]# service smb restart

5.6最后阶段,进行测试

1)先按照主配置文件所指定的位置,建好要共享的资源。

[root@linux usr]# mkdir samba (建/usr/samba文件夹)

[root@linux usr]# chmod 777 /usr/samba (samba服务器受本地文件系统权限和共享权限两种权限,取最严格的权限,为了方便就把本地权限都给足好了)

[root@linux usr]# cd samba

[root@linux samba]# vi aaa.txt

2)在Windows客户机的地址栏中输入samba服务器ip(如“\\192.168.138.110)

Linux访问Windows文件夹

只需键入下面的命令就可以了。

mount –t smbfs -o username=user,password=password,ip=192.168.**.** //HOSTMACHINE_NAME/Tinix /mnt/smb/Tinix

其中,username和password必须是宿主机上合法的用户名和密码,而且要有访问共享文件夹Tinix的权限。HOSTMACHINE_NAME是宿主机的计算机名称。注意,逗号之后不能有空格。并不需要配置Samba服务器,因为不想从Windows中访问Linux,只需将Windows 中的文件夹共享,这样宿主机和虚拟机都可以访问,现在,在/mnt/smb/Tinix目录下已经能够看到Windows下的文件了。例如:

在192.168.1.37 上有一个共享文件夹temp 则可以

mount -t smbfs -o username=guanjun,password=goodguanjun //192.168.1.37/temp /mnt/cdrom/

这样就可以访问了。

对于同时安装Windows和Linux双系统的主机:

Linux访问同一磁盘上Windows的分区:#mount –t auto /dev/hda1 /mnt/winpart Windows系统访问Linux的分区:下载explore2fs 在Windows下解压缩安装

Linux下配置本地打印机举例:

在mozilla地址栏中输入http://localhost:631

在Windows中下载Adobe postscript Drivers文件名winstchs.exe,在Windows环境下安装,在c:\winnt\system32\spool\drivers,从子目录w32x86和win40中挑选如下文件,放在一个临时文件夹中,将文件夹更改为大写

ADFONTS.MFM ADOBEPS5.DLL DEFPRTR2.PPO ADOBEPS4.DRV ADOBEPSU.DLL ICONLIB.DLL ADOBEPS4.HLP ADOBEPSU.HLP

在Linux主机中创建/usr/share/cups/目录,将临时文件夹中的上述文件复制到该目录,可使用FTP或共享文件夹方式复制

#vi /etc/samba/smb.conf

[global]

Load printers=yes

Printing=cups

Printcap name=cups

[printers]

Comment=all printers

Path=/var/spool/samba

Browseable=no

Public=yes

Guest ok=yes

Writable=no

Printable=yes

Printer admin=root

[print$] 为Windows客户机准备打印机驱动

Comment=printer drivers

Path=/etc/samba/drivers

Browseable=yes

Guest ok=no

Read only=yes

Write list=root

#mkdir /etc/samba/drivers

#cupsaddmin –a –u root

#service smb restart

[global] //设置samba服务整体环境

workgroup = hackase //设置工作组名

server string = angel server //服务器名说明

; hosts allow = 192.168.1. 192.168.2. 127. //限制可访问此服务的IP范围,默认是全部允许的,要是想设设置去掉前面的";"

printcap name = /etc/printcap //打印机配置文件

load printers = yes //是否共享打印机

# bsd, sysv, plp, lprng, aix, hpux, qnx, cups

printing = cups //打印机的类型.标准打印机类型包括以上几种.

; guest account = pcguest //pcguest为用户名.可改去掉前边的";"让用户以pcguest身份匿名登录,但保证/etc/passwd中有此人.

log file = /var/log/samba/%m.log //为登录服务器的用户建立不同的日志文件. max log size = 0 //日志文件的大小,"0"代表无限制

//以下是smb.conf文件对服务器安全级别的设置

security = share //安全性的级别共四种.share、user、server、domain

; password server = 密码验证服务器.

; password level = 8 //密码级别

; username level = 8

encrypt passwords = yes //用户密码加密,当然也可以不加密

smb passwd file = /etc/samba/smbpasswd //将密码服务器设置为samba server.

需要这个东东来指定验证文件.这个是文件的路径,如果samba server是指定的win server这个不需要

; ssl CA certFile = /usr/share/ssl/certs/ca-bundle.crt

unix password sync = Yes

passwd program = /usr/bin/passwd %u

passwd chat = *New*password* %n\n *Retype*new*password* %n\n

*passwd:*all*authentication*tokens*updated*successfully*

pam password change = yes

; username map = /etc/samba/smbusers //如果每个windows用户在samba服务器

中有帐户这个可以不设

; include = /etc/samba/smb.conf.%m

obey pam restrictions = yes

; interfaces = 192.168.12.2/24 192.168.13.2/24 如果多网段要在这里列出

; remote announce = 192.168.1.255 192.168.2.44

; local master = no

; os level = 33

; domain master = yes

; preferred master = yes

; domain logons = yes

; logon script = %m.bat

; logon script = %U.bat

; logon path =

[url=file://\\%L\Profiles\%U]\\%L\Profiles\%U[/url]

; wins support = yes //wins server支持

; wins server = w.x.y.z

; wins proxy = yes //wins 代理设置

dns proxy = no //dns代理设置

; preserve case = no

; short preserve case = no

; default case = lower

; case sensitive = no

#============================ Share Definitions ============================ [homes] //用户访问自已目录的设置

comment = Home Directories //说明(以下同理)

browseable = no//设定目录可不可以别人浏览

writeable = yes//用户写入自己的权限

valid users = %S

create mode = 0664

directory mode = 0775

; [netlogon] //此段域用户登录目录设置

; comment = Network Logon Service

; path = /usr/local/samba/lib/netlogon

; guest ok = yes

; writable = no

; share modes = no

;[Profiles]

; path = /usr/local/samba/profiles

; browseable = no

; guest ok = yes

[printers] //打印机设置

comment = All Printers

path = /var/spool/samba

browseable = no

printable = yes

;[tmp] //用户共享资源设置

; comment = Temporary file space

; path = /tmp //可以自定义目录,去掉前边的";"就OK了

; read only = no //是否只读或可写

; public = yes

samba详细安装

为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两中不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大的方便,本章将以Redhat 5为例,简要介绍如何在Linux操作系统上搭建Samba服务器,本章只对Samba的安装及配置过程进行简要讲解。 1. 服务查询 默认情况下,Linux系统在默认安装中已经安装了Samba服务包的一部分,为了让大家对整个过程有一个完整的了解,在此先将这部分卸载掉。可以在“/”下输入命令rpm –qa samba*,或者rpm –qa |grep samba,默认情况下可以查到两个已经存在的包: samba-client-3.0.33-3.7.el5 samba-common-3.0.33-3.7.el5 用rpm –e将两个包卸载掉。对于samba-common-3.0.33-3.7.el5,因为与其它rpm包之间存在依赖关系,所以必须加参数-f和--nodeps,-f是指强制,--nodeps是指不检查依赖关系,具体完整命令为rpm –e –f –nodeps samba-common-3.0.33-3.7.el5,这样可以将此包顺利卸载。 2. 安装Samba a) 挂载系统安装盘 使用命令mount /dev/cdrom /mnt/cdrom完成系统安装盘的挂载,完成之后进入/mnt/cdrom/Server,使用命令find samba*查询和samba服务相关的rpm包,可以查到如下4条记录: [root@localhost /]# rpm -qa |grep samba samba-client-3.0.33-3.7.el5 samba-3.0.33-3.7.el5 samba-common-3.0.33-3.7.el5 samba-swat-3.0.33-3.7.el5 samba-3.0.33-3.7.el5.i386.rpm:为Samba服务的主程序包。后面的数字为此包的版本号,要搭建Samba服务器,必须安装此软件包; samba-client-3.0.33-3.7.el5.i386.rpm:为连接服务器和连接网上邻居的客户端的Samba客户端工具;

samba配置详解

samba配置详解:Samba配置文件常用参数详解 疯狂代码 https://www.doczj.com/doc/f8485782.html,/ ?: http:/https://www.doczj.com/doc/f8485782.html,/IntegrativeServer/Article65311.html 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 = Samba Server Version %v 介绍说明:设定 Samba Server 注释可以是任何串也可以不填宏%v表示显示Samba版本号 netbios name = smbserver 介绍说明:设置Samba ServerNetBIOS名称如果不填则默认会使用该服务器DNS名称第部分netbios name和workgroup名字不要设置成样了

Samba详细配置

Red Hat Enterprise Linux 5下安装配置Samba服务 2010-09-28 23:34:25| 分类:Linux Samba | 标签:linux samba f服务器配置安装|字号大中小订阅环境: Red Hat Enterprise Linux 5 samba-3.0.25b-0.el5.4 samba-common-3.0.25b-0.el5.4 samba-client-3.0.25b-0.el5.4 system-config-samba-1.2.39-1.el5 一、安装 1、检查是否已经安装Samba服务器(默认只是安装了Samba的客户端) #rpm -qa | grep samba 若显示: samba-common-3.0.25b-0.el5.4 samba-client-3.0.25b-0.el5.4 则表示还没有安装Samba服务器端,只是安装了Samba客户端 2、开始安装 1)放入Red Hat Enterprise Linux 5安装光盘,并挂载好 #mount /dev/cdrom /mnt/cdrom 2)可使用:命令查看其安装文件 # ls /mnt/cdrom/Server/ | grep samba samba-3.0.25b-0.el5.4.i386.rpm samba-client-3.0.25b-0.el5.4.i386.rpm samba-common-3.0.25b-0.el5.4.i386.rpm samba-swat-3.0.25b-0.el5.4.i386.rpm sblim-cmpi-samba-0.2.3-29.EL5.i386.rpm sblim-cmpi-samba-devel-1-29.EL5.i386.rpm sblim-cmpi-samba-test-1-29.EL5.i386.rpm system-config-samba-1.2.39-1.el5.noarch.rpm 再进行安装 # rpm -ivh /mnt/cdrom/Server/samba-3.0.25b-0.el5.4.i386.rpm(samba服务器) # rpm -ivh /mnt/cdrom/Server/system-config-samba-1.2.39-1.el5.noarch.rpm(图形化配置程序) # rpm -ivh /mnt/cdrom/Server/samba-swat-3.0.25b-0.el5.4.i386.rpm(基于HTTP的配置工具,可不安装) 二、配置 1、配置文件:/etc/samba/smb.conf(其中“#”号开头是注释语句,“;”开头是示范语句) 可使用如下语句修改它: # vi /etc/samba/smb.conf 配置完后可使用如下语句检查配置文件 #testparm smb.conf文件的整体结构: [global]

配置samba服务器-梁玉锋

配置samba服务器 用以下命令查看samba的安装情况。 [root@localhost linux-2.6.18_pro500]# rpm -qa |grep samba samba-common-3.4.7-58.fc12.i686 samba-3.4.7-58.fc12.i686 samba-winbind-clients-3.4.2-47.fc12.i686 samba-client-3.4.7-58.fc12.i686 samba服务器安装完成后,几个重要的文件分布如下: /etc/pam.d/samba:samba的PAM认证配置。 /etc/rc.d/init.d/smb:samba的启动脚本。 /etc/samba/smbusers:samba服务器用户与操作系统用户映射文件。 /usr/bin/mksmbpasswd.sh:创建samba用户的脚本。 /usr/bin/smbcontrol:控制samba服务器运行的工具。 /usr/bin/smbstatus:列出samba服务器的连接状态。 /usr/sbin/nmbd:samba服务器的nmbd进程的命令文件。 /usr/sbin/smbd:samba服务器的smbd进程的命令文件。 用以下命令启动samba服务器。 [root@localhost linux-2.6.18_pro500]# /etc/rc.d/init.d/smb start 启动SMB 服务:[确定] [root@localhost linux-2.6.18_pro500]# /etc/rc.d/init.d/nmb start 启动NMB 服务:[确定] [root@localhost linux-2.6.18_pro500]# ps -eaf |grep smbd root 17528 1 0 20:51 ? 00:00:00 smbd -D root 17530 17528 0 20:51 ? 00:00:00 smbd -D root 17540 1925 0 20:51 pts/0 00:00:00 grep smbd [root@localhost linux-2.6.18_pro500]# ps -eaf |grep nmbd root 17537 1 0 20:51 ? 00:00:00 nmbd -D root 17542 1925 0 20:52 pts/0 00:00:00 grep nmbd 默认时,samba服务器启动了两个smbd进程和一个bmbd进程,均以root用户的身份运行。其中,smbd进程主要负责处理对文件和打印机的服务请求;而nmbd进程主要负责处理Netbios名称服务并提供网络浏览功能。 可以用一下命令查看以下这两个进程监听的网络端口。 [root@localhost linux-2.6.18_pro500]# netstat -anp|grep smbd tcp 0 0 :::139 :::* LISTEN 17657/smbd tcp 0 0 :::445 :::* LISTEN 17657/smbd tcp 0 0 ::ffff:192.168.1.101:445 ::ffff:192.168.1.106:4429 ESTABLISHED 17693/smbd unix 2 [ ] DGRAM 42228 17657/smbd

CentOS 6.5下Samba服务器的安装与配置

CentOS 6.5下Samba服务器的安装与配置 一、简介 Samba是一个能让Linux系统应用Microsoft网络通讯协议的软件,而SMB是Server Message Block的缩写,即为服务器消息块,SMB主要是作为Microsoft的网络通讯协议,后来Samba将SMB通信协议应用到了Linux系统上,就形成了现在的Samba软件。后来微软又把SMB 改名为CIFS(Common Internet File System),即公共Internet 文件系统,并且加入了许多新的功能,这样一来,使得Samba具有了更强大的功能。 Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux 之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而Samba较多的用在了Linux与windows之间的数据共享上面。 SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba 服务器也可以访问网络中其它windows系统或者Linux系统共享出来的文件。 Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。 组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux 系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。 例如,某台Samba服务器的IP地址为10.0.0.163,对应的工作组名称为davidsamba,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows 下查看Linux Samba服务器共享文件的方法。 \\10.0.0.163\共享目录名称 \\davidsamba\共享目录名称 Samba服务器可实现如下功能:WINS和DNS服务;网络浏览服务;Linux和Windows域之间的认证和授权;UNICODE字符集和域名映射;满足CIFS协议的UNIX 共享等。 二、系统环境 系统平台:CentOS release 6.3 (Final) Samba版本:samba-3.5.10-125.el6.x86_64

Samba服务简单基本配置

Redhat Enterprise Linux 6.2 samba服务配置 虚拟机打开后,添加rehl-server-6.2镜像文件,以便后续安装samba服务准备 第一步, 第二步:

一、安装前准备 1、使用Samba服务器需要防火墙开放以下端口 UDP 137 UDP 138 TCP 139 TCP 445 #配置防火墙端口 命令如下: [root@roothomes ~] vi /etc/sysconfig/iptables 添加以下配置(紧跟在-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT这句后面添加文件,否则将无法生效) -A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT -A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT #重启防火墙,使规则生效 [root@roothomes ~] /etc/rc.d/init.d/iptables restart 2、关闭CentOS6系统的 SELinux(初学者最好关闭此项,否则将不会成功) [root@roothomes ~] vi /etc/selinux/config #SELINUX=enforcing #注释掉 #SELINUXTYPE=targeted #注释掉 SELINUX=disabled #增加 #:wq 保存。 #重启系统 [root@roothomes ~] shutdown -r now 或者reboot或者 init 6 二、安装Samba 1、检查Samba服务包是否已安装 [root@roothomes ~] rpm -qa | grep samba 前面挂载系统镜像文件后,依次输入以下命令 [root@roothomes ~] cd /media [root@ media ~] cd RHEL_6.2\ i386\ Disc\ 1/ (输入一个大写的R后,可按Tab键自动补全) [root@ RHEL_6.2\ i386\ Disc\ 1 ~]cd Packages/ [root@ Packages ~]ls samba* samba-3.5.10-114.el6.i686.rpm samba-common-3.5.10-114.el6.i686.rpm samba-client-3.5.10-114.el6.i686.rpm

Linux1 安装Samba

Linux1 安装Samba 像Red Hat Enterprise Linux 5.4操作系统中的大多数软件一样,Samba软件遵守GPL版权,并且是免费的。它既有RPM安装包形式,也有源代码形式,无论是何种形式的安装,其安装方法都非常简单 1.RPM安装 RPM是Red Hat Package Manager的缩写,中文意思就是RedHat软件包管理,是最先由RedHat公司开发出来的Linux下软件包管理工具,由于这种软件管理方式非常方便,逐渐被其它Linux发行商所借用,目前已经成为Linux平台下通用的软件包管理方式,例如Fedora,Rdehat、suse等主流Linux发行版本都默认采用这种软件包管理方式。 在默认情况下,Red Hat Enterprise Linux 5.4安装程序没有安装Samba服务,因此,需要用户手动安装。 在Red Hat Enterprise Linux 5.4系统桌面的任意空白位置右击,并执行【打开终端】命令,在打开的窗口中(终端),通过输入“rpm -q samba”命令,并按【回车】键,以检测系统是否已经安装了Samba软件包或查看已经安装了何种版本的Samba,如图2-4所示。 图2-4 查看Samba安装信息 在此,还可以输入“rpm -qa |grep samba”命令,并按【回车】键,可以查看到已安装的与Samba有关的软件包,如图2-5所示。 图2-5 查看Samba安装信息 通过rpm –qa |grep samba命令,可以查看到所有已安装的且包含samba字段的软件包。提示 从图中可以查看到系统已经默认安装了Samba客户端工具和Samba通用工具和库文件。但是并没有安装Samba主程序包,因此需要用户手动安装Samba主程序包。如果现在要安装,需要将Red Hat Enterprise Linux 5.4的第2张安装光盘放入光驱。 当系统加载光驱完成后,在终端中,输入“mount /dev/cdrom /mnt”命令,并按【回车】键,如图2-6所示。这样可以将光盘文件挂载到本地计算机mnt目录下。

Samba配置整理

Samba Samba 宣称自己为“Linux 和 UNIX 程序的标准 Windows 互操作性套件”。尽管 Linux 和 UNIX 风格渗透到装载 SMB 文件共享的其他方法中,但更贴近Samba 的功能的说法是,Samba 既是客户端又是服务器,或者更进一步,Samba 是进入 Windows 网络的一个集成点。 Samba 包含几个在后台运行并提供服务的守护进程和几个用于与 Windows 或Samba 服务交互的命令行工具。本文章系列将详细讨论这些守护进程和工具,但其中一些需要特别注意的二进制文件是: ?smbd。这个守护进程充当 SMB 文件和打印服务器。 ?nmbd。这个守护进程提供 NetBIOS 命名服务。 ?mount.cifs。这个工具将一个远程 SMB 文件系统装载到本地 UNIX 文件系统上,很像一个本地磁盘或 NFS 共享。 ?smblient。这个工具提供对 SMB 资源的命令行访问,很像一个 FTP 客户端。它还能列示远程服务器上的共享并浏览网络。 ?smb.conf。这不是一个工具,而是所有工具的配置文件,因此值得在二进制文件上下文中指出。 ?Samba 服务器套件由几个守护程序组成,包括smbd、nmbd和winbindd。swat 程序是另外一个Samba 服务器,但是其通常都是从一个超级服务器运行,因此在 技术上不是守护程序。 smbd smbd 程序提供 Samba 的大部分核心功能。其职责包括: ?提供文件和打印机共享。此功能可以说是一个最重要的Samba 职责,smbd执行此功能。 ?验证用户。smbd针对本地数据库验证用户或传递验证请求到另一台计算机。如果您的Samba 服务器被配置为域控制器,则smbd还可从其他计算机响应验证请求。 (在设置您的安全模式中将描述工作组和域配置)。 ?提供时间服务。Samba 可以告诉其他计算机当前的时间;smbd可处理此细节。 默认情况下,smbd 守护程序绑定到 TCP 端口 139 和 445。SMB 协议通过 TCP 上的 NetBIOS 使用端口 139,它是许多旧客户端使用 SMB/CIFS 的方式。端口445 在 TCP 服务上提供简单的 SMB,它是访问 Samba 服务器的新客户端数。 由于这些职责的关键性质(尤其是,提供文件和打印机共享及验证),smbd 可视为是 Samba 的核心。实际上,可以使用诸如 Samba 自己的 smbclient 等的

linux下samba服务器搭建配置

Samba服务器搭建与配置 安装samba包 首先检测机器是否已安装samba服务器: [root@localhost cdrom]# rpm -qa|grep samba samba-winbind-clients-3.5.10-114.el6.i686 [root@localhost cdrom]# 若没有或者安装不全则从主机cdrom中查找相关包,进行安装 cdrom的挂载: 在vm->设置->硬件CD/DVD中,勾选已连接和启动时链接 [root@localhost ~]# mkdir /mnt/cdrom [root@localhost ~]# mount -t iso9660 /dev/cdrom1 /mnt/cdrom/ mount: block device /dev/sr1 is write-protected, mounting read-only [root@localhost ~]# 我的安装包放在cdrom1中,故将其挂载到我们创建的/mnt/cdrom目录下 在挂载目录下查找到samba安装包: [root@localhost ~]# cd /mnt/cdrom/ [root@localhost cdrom]# find ./ -name "samba*" ./Packages/samba-3.5.10-114.el6.i686.rpm ./Packages/samba-client-3.5.10-114.el6.i686.rpm ./Packages/samba-common-3.5.10-114.el6.i686.rpm ./Packages/samba-winbind-3.5.10-114.el6.i686.rpm ./Packages/samba-winbind-clients-3.5.10-114.el6.i686.rpm [root@localhost cdrom]# 将所有包进行逐个安装: [root@localhost cdrom]# rpm -ivh ./Packages/samba-common-3.5.10-114.el6.i686.rpm warning: ./Packages/samba-common-3.5.10-114.el6.i686.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY Preparing... ########################################### [100%]

centos 安装samba共享服务器详细步骤

Centos下安装新版samba服务器详细过程 作者:陈秋飞本文档是本人基于centos下搭建samba服务器做的笔记,新版的samba已经修改了一些功能和配置,因为有些人还按照百度上面那些老的方法去处理,已经是无法解决一些问题的了。比如新版的samba中已经是不能创建smbpasswd文件的了,就算你在配置文件注释掉原来的密码存放方式,也没用。 现在不用纠结,我已经找出了适合新版samba的整个搭建和权限分配过程。希望对大家有所帮助。 1、yum安装samba # yum -y install samba samba-client samba-common 2、环境分析 数据目录:/home/gongxiang 公司共享目录:/home/gongxiang/人事部/通告栏由人事部成员管理共享目录 技术部目录:/home/gongxiang/技术部 运维部目录:/home/gongxiang/运维部 金融部目录:/home/gongxiang/金融部 人事部目录:/home/gongxiang/人事部 部门管理账号情况: 总经理:最大权限账号manager 技术部:最大权限账号jishu,普通员工jishu01、jishu02 运维部:最大权限账号 yunwei,普通员工yunwei01、yunwei02 金融部:最大权限账号 jinrong,普通员工jinrong01、jinrong02 人事部:最大权限账号 hr,普通员工hr01、hr02

需要的分组: 技术部:tech 运维部:maintain 金融部:finance 人事部:hure 3、解决方案 (1)、在samba服务器建立共享目录 # mkdir /home/gongxiang/人事部/通告栏-p # mkdir /home/gongxiang/技术部-p # mkdir /home/gongxiang/运维部-p # mkdir /home/gongxiang/金融部-p # mkdir /home/gongxiang/人事部-p # ll /home/gongxiang 总用量16 drwxr-xr-x 2 root root 4096 9月 2 09:26 技术部drwxr-xr-x 2 root root 4096 9月 2 09:27 金融部drwxr-xr-x 3 root root 4096 9月 1 14:42 人事部drwxr-xr-x 2 root root 4096 9月 1 14:42 运维部

实验11 配置与管理Samba服务器 (参考)

实验11 配置与管理Samba服务器 一、实验目的 1. 掌握Linux与Windows的资源共享和互访方法。 2. 掌握Samba服务器的安装与配置方法。 二、项目需求 项目背景:某公司需要添加Samba服务器作为文件服务器,工作组名为Workgroup,发布共享目录/share,共享名为public,这个共享目录允许所有公司员工访问。 三、实验环境 1.系统及软件环境 操作系统:RHEL6 (服务器)、windows Server 2008(作为客户机验证) 2.实验配置文件及命令 配置文件:/etc/samba/smb.conf 命令:ifconfig、service smb status/start、vim等 三、实验内容 RHEL 6作为服务器,能够接入网络,并能Samba服务器提供文件共享服务; windows server 2008 作为客户机,能访问RHEL 6服务器上的共享目录; 为满足项目需求,通过在Samba服务器上配置security=share来让所有用户登录时采用匿名账户nobody访问。 四、实验步骤参考 1.VM设置 (1)虚拟机网络设置 方案1:合作模式(多台机器合作完成) 将RHEL 6与windows server 2008两者全部设置成桥接模式:选中对应操作系统右键——虚拟机设置——网络适配器——桥接模式 (桥接模式:使用(连接)VMnet0 虚拟交换机,此时虚拟机相当于网络上的一台独立计算机,与主机一样,拥有一个独立的IP地址。) 如图所示:

方案2:独立模式(在一台虚拟机上完成) 将RHEL 6与windows server 2008两者全部设置成特定网段:选中对应操作系统右键——虚拟机设置——网络适配器——自定义 注:RHEL 6与windows server 2008使用同一区段亦可。 如图所示:

Linux下的SMB服务安装及配置

SMB服务安装及配置: 一、联通网络: 1、安装系统时候,在虚拟机设置里面把网络适配器 改成桥接模式。(已经安装好的系统可以在虚拟机 菜单下的【虚拟机】→【设置】下面改) 2、在Linux下修改网络IP为:192.168.12.201。 3、在Win下打开【网络和Internet】→【网络连接】, 查看本地连接的属性,IPV4属性,设置静态IP地 址:192.168.12.200。点击【确定】保存退出。 4、在虚拟机的Linux系统下,Ping本身IP:命令输 入:Ping 192.168.12.201;Ping过了再PingWin 下的IP:Ping 192.168.12.200。如果Ping通了, 再到Win下命令提示符下Ping本身和Linux的IP。 如果都Ping通了就开始下一步操作。 二、SMB安装与配置: 1.安装smb服务: 首先在shell里面查询自己是否安装了smb。 [root@localhost ~]# rpm -qa samba | grep 'samba' samba-3.0.21b-2 // 如果有类似这行输出,则表示安装了 smb,否则需要安装 下载或从光盘上找到SMB服务安装包。

安装(samba*代表其安装包名称): # rpm -ivh samba* 2.配置SMB文件: # vi /etc/samba/smb.conf 在“Share Definitions”区段添加如下内容: [Test] comment = Test Directories path = /home/share browseable = yes writeable = yes 保存并退出。 添加一个用户并设置密码: # useradd smbtest # passwd smbtest ...... SMB与系统共用用户名,但不共用密码。也就是说,上面设置的用户名对SMB有效, 但密码对SMB无效,需用smbpasswd命令另外添加一个密码。 # smbpasswd -a smbtest

SAMBA服务器配置实验报告

实验报告---SAMBA服务器配置 一、实验目的: 1、掌握Linux与Windows的资源共享。 2、掌握Samba服务器的安装和配置方法。 二、实验内容: (一)共享/tmp目录,共享名为share;用户无需密码即可访问;并用SMBCLIENT 连接此共享名实现文件上传和下载功能。 (二)共享/etc/samba目录,共享名为xinhua,创建一个用户,该用户需密码才可访问 三、实验步骤: (一)第一个实验 1、检查是否安装了samba软件包:rpm - qa | grep samba,如果没有安装,创建挂载点: mkdir /mnt/cdrom,挂载系统光盘:mount /dev/cdrom /mnt/cdrom 2、安装samba包: rpm – ivh smbam-…(使用tab键补全) 3、再查看samba服务器的软件包是否安装成功,成功之后,启动samba服务器

4、配置samba服务器内容:vi /etc/samba/smb.conf,安全级别改为share,默认的安全级 别为user。 共享系统的/tmp目录共享名为share。添加内容如下: [share] comment=just share path=/tmp public=yes writable=yes 5、重启samba服务器 6、在windows xp中进行检测结果,共享是否成功

7、使用SMBCLIENT连接share实现文件上传和下载功能。 下载: 上传: 然后在windows xp中查看上传的文件dxf.txt (二)、第二个实验 1、创建Samba用户xinhua,密码为了123,如图所示: 2、设置Samba共享目录,并定义安全级别为user,如图所示: 3、重新加载并启动Samba服务,如图所示:

Solaris10配置samba_服务

Solaris 10 配置samba 服务 一、samba 简介 Samba提供了Unix系统和Windows之间的文件和打印机共享服务。一台Solaris的机器,如果配置了Samba Server,就能充当共享服务器;同时也能作为客户机访问网络中其它Windows系统上的共享文件,或其它安装了Samba Server的Solaris/Linux系统上的共享文件。 SolarislO在系统安装的时候就已经包含了Samba,只需要简单的配置就可以成为Samba Server。 Samba服务器包含两个Daemon, nmbd和smbd。smbd是samba的内核,是建立对话,验证客户和提供文件系统和打印服务的基础;nmbd则处理所有的名字注册和解析请求,实现了网络浏览的功能;它的任务是向局域网广播Samba服务器所提供的服务;Nmbd使得Samba服务器显示在windows操作系统的网络邻居中,允许用户浏览可以通过samba使用的资源。 Solaris10自带samba,但samba服务为遗留服务,新安装solaris中未被启用 使用命令ps -ef | grep mbd,可查看samba进程samba在solaris10中的一些目录

、配置samba无用户验证方式 1. 创建共享目录 mkdir -m 777 -p /export/home/smbshare 2. 创建samba配置文件 cp /etc/sfw/smb.c on f-example /etc/sfw/smb.c onf 3. 编辑/etc/sfw/smb.conf 文件 a. 将security = user 改为security = share 连接模式,share为共享模式,不需要用户验证。user和server方式需要用户验证 b. . log file = /var/samba/log/log.%m 定义了log的默认路径,可自行定义log路径 c. max log size = 50 定义了log文件默认大小,单位Kb d. 修改共享文件路径信息 将原有信息 #======== Share Defin iti ons ========== [homes] comme nt = Home Directories browseable = no writable = yes 修改为 Share Defi niti ons [homes]

Samba共享详细图解教程

samba共享 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成,在我们学习ubuntu过程中也是经常遇到。我们常通过Samba软件包用SMB协议来进行共享文件和打印机。在这篇文章里我主要以一个教程的形式,将Samba重要功能之一的文件共享给大家演示出来。 首先我们当然要先安装Samba服务器和客户端工具了,不过安装之前,为了考虑数据源的稳定性,最好我们要先更新一下数据源。相关命令操作如图一所示: 图一 然后开始安装Samba服务器,相关命令操作如图二所示:

图二 然后我再安装Samba smbclient客户端工具,结果提示smbclient 已经是最新版本了,原来在安装Samba服务器时,smbclient客户端工具也被含在了里面。相关命令操作如图三所示: 图三 要使用SMB挂载Windows文件系统,还需要smbfs,相关命令操作如图四所示:

图四 至此Samba服务器的安装结束,我们开始着手Samba服务器的配置。此时可以通过编辑/etc/samba/smb.conf文件来配置Samba服务,不过在配置之前,首先有必要先查看下/etc/samba/smb.conf手册,加深我们对此配置文件的了解。可以在终端输入“man smb.conf命令来获得。配置手册如图五所示:

图五 在编辑配置文件之前,应该保留一份原文件的副本,不对其做修改,以便今后必要时可做参考和重用这份原始配置。备份/etc/samba/smb.conf文件,相关命令操作如下图所示: 在Samba服务器配置文件中,Kerberos安全认证系统是一种重要的标准服务。这就要求我们的Ubuntu系统必须安装Kerberos,同时/etc/samba/smb.conf也需要修改以选择适当的realm和security 模式。gedit打开/etc/samba/smb.conf配置文件,相关操作如图六所示: 图六

linux samba服务配置

Samba是一种自由软件包,用来让Unix系统的操作系统与微软Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File Sy stem)网络协定做连结。和windows上的网上邻居原理是一样的。通过SM B协议可以实现资源共享及打印机共享。Samba是Windows与Unix系统O S(Operating System的缩写,操作系统:windows、linux、Unix、Mac 等)之间搭建起的一座桥梁,可以实现资源共享,可以像FTP这样使用。SAMBA的工作原理: 步骤1:协议协商 步骤2:建立连接

步骤3:资源共享

步骤4:断开连接 Samba服务主要安装包为前三个安装包: samba-2.2.7a-7.9.0.i386.rpm //Samba的服务端软件(第一张镜像盘) samba-client-2.2.7a-7.9.0.i386.rpm //Samba客户端软件(第一张镜像盘)samba-common-2.2.7a-7.9.0.i386.rpm //包括Samba服务器和客户端都需要的文件(第一张镜像盘) samba-swat-2.2.7a-7.9.0 //Samba的WEB配置工具(第一张镜像盘) redhat-config-samba-1.0.4-1.noarch.rpm //Samba的GUI配置工具(第一张镜像盘) samba-swat-2.2.7a-7.9.0.i386.rpm //Samba的Web配置工具(在第三张镜像盘)samba的主配置文件是/etc/samba/smb.conf [root@localhost root]# rpm -qa|grep samba //显示是否安装的samba服务

centos7 samba安装与配置

samba是个文件共享服务器。在linux和windows之间很好用,当然有更好的是NFS。这里对自己在CentOS7上安装samba的过程做一个记录。 因为发现网上的都很乱,自己踩过坑以后,记录下,以便以后不再踩了。当然,你也可以去看《鸟哥的linux私房菜-服务器搭建篇》,上面都介绍 的很好。 1、关闭防火墙。 CentOS 7 是自带的firewall,CentOS 6 好像是iptables。关闭防火墙命令如下: 第一种方法是关闭防火墙: systemctl disable firewalld.service 第二种方法是添加规则: firewall-cmd --permanent --zone=public --add-service=samba firewall-cmd --reload 2、关闭selinux vim /etc/selinux/config 设置:SELINUX=disabled Centos7配置文件共享服务器SAMBA三步曲 1、安装 yum install samba samba-client samba-common -y 2、配置 备份已有配置 mv /etc/samba/smb.conf /etc/samba/smb.conf.bkp 添加新的配置 vim /etc/samba/smb.conf 输入以下内容 [global] workgroup = WORKGROUP server string = Samba Server %v netbios name = centos security = user map to guest = bad user dns proxy = no #============================ Share Definitions ============================== [Public] path = /data/share/ writable = yes browsable = yes guest ok = yes guest only = yes create mode = 0777 directory mode = 0777 注意:在samba4中share 和server已经被禁用,需要用 security = user 和map to guest =Bad User来实现无密码

samba服务器的安装、配置及相关问题的解决

Linux 下samba服务器的安装 Samba服务器的功能主要是实现windows系统和Linux主机之间的文件共享,其功能相当于windows系统之间实现文件共享的“网上邻居”。其具体安装步骤如下: 1.准备工作 在Linux下安装samba服务器需要三个.rpm的安装包,分别是: (1)samba-common-2.2.7a-7.9.0.i386.rpm (2)samba-2.2.7a-7.9.0.i386.rpm (3)samba-client-2.2.7a-7.9.0.i386.rpm 你可以在网上下载,也可从你的安装光盘上查找。一般情况下都在第一张光盘中可以找到。在终端窗口中输入: (1)mount /mnt/cdrom/(挂载光盘) (2)cd /RedHat/RPMS (3)ls (4)cp samba* /home/(将安装文件放置在home目录下) 2.安装samba服务器 在终端窗口中输入:(1)rpm –ivh samba-common-2.2.7a-7.9.0.i386.rpm (2) rpm –ivh samba-2.2.7a-7.9.0.i386.rpm (3) rpm –ivh samba-client-2.2.7a-7.9.0.i386.rpm 3.配置samba服务器 (1)创建登入Linux系统的用户及密码 在终端窗口中输入:useradd youyou(用户名) Passwd youyou (设置youyou用户登入Linux系统时的密码) (2)给samba服务器设置登入的用户和密码 在终端窗口中输入:cat /etc/passwd | mksmbpasswd.sh > /etc/samba/smbpasswd (其作用是把所有能登入Linux系统的用户都设置成samba用户) 回车后接着输入:smbpasswd youyou(为youyou这个用户设置登入samba

相关主题
文本预览
相关文档 最新文档