samba网络服务的搭建和配置

一.理论知识:

1.samba代替nfs的原因。
2. Windows主机之间使用SMB/CIFS协议进行文件和打印的共享。(微软的服务)
端口:445  139
3. samba的核心是两个守护进程smbdnmbd程序。
Smbdnmbd使用的全部配置信息全都保存在smb.conf文件中。
Smb.confsmbdnmbd两个守护进程说明输出什么以便共享,共享输出给谁及如何进行输出。
4.Smbd进程的作用是提供文件/打印共享。
nmbd进程是提供网络中域或者工作组内的主机进行主机名称的解析 
二.安装(四个包1.samba 2.samba-common  3.samba-client  4.system-config-samba 
1.rpm安装
rpm –ivh /media/cdrom/Redhat/RPM/samba*   
2.源码包的安装(samba-3.0.22.tar.gz
tar xzvf  samba-3.0.22.tar.gz
cd  samba-3.0.22/source
./configure  --prefix=/usr/local/samba  --sysconfdir=/etc/samba/
make
make install

三./etc/samba/smb.conf主配文件的主要参数:
smb.conf文件中,注释行以“#”开头,同时每项中英文字母不区分大小写,在一行最后字符尾加 “\”,可将一行分成多行。用开头的行,是可改变的配置,将去掉时,该配置将取作用。
提问:grep的含义;常用参数
1 grep -v "^#" /etc/samba/smb.conf |grep -v "^;"排除以#开头的行
[global]
   workgroup = MYGROUP
   ;hosts allow = 192.168.1   192.168.2
   server string = Samba Server
   printcap name = /etc/printcap
   load printers = yes
cups options = raw
hosts allow = 192.168.1.     10.100.100.    (注意格式  )
  log file = /var/log/samba/%m.log
   max log size = 50
   security = user
[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
create mask = 0755   创建文件时 权限是755
only  guest  =   yes  仅以匿名用户登录

[global](
全局参数的设置,它对samba的功能具有很大的影响,主要用来设置整个系统规则。 
workgroup= 
这是你在windows中的域。 
server string= 
这是在windows中看到你的samba的解释。 
netbios name =192.168.1.125(
linux主机IP),如果把该句注消,默认的是你LINUX机器名,不过,最好还是自己填上 
dos charset=GB2312 
unix charset=GB2312 
加上这二句就可以正确显示中文了。 
hosts allow 
允许登录的linux-samba的主机名单,用IP地址给出,多个IP地址用空格分开,不在名单中的主机将不能得到samba提供的服务,这也是网络安全的一个方面。 
printcap name 
指定printcap文件地址,通常为/etc/printcap,包含了linux打印机的配置信息。 
load printers 
允许使用共享打印机时,默认值为yes 
log file = /usr/local/samba/var/log.%m 
max log size = 0 
  上面这两行则是Samba日志的相关定义。其记录文件的位置是放在/var/log/samba/%m.log,安装目录不一样,日志可不一样,后面的一条是定义日志记录文件的大小,单位是KB,如果是0的话就不限大小。 
guest acount 
来宾帐户,表示用哪一个Linux用户作为所要的客户连接,定义Samba缺省的用户账号,这个账号必须在/etc/passwd中。 
security 
指定安全模式。大多数用户使用user级的安全模式,samba用本地linux口令文件验证。 
security = security_level  
定义Samba的安全级别,按从低到高分为四级:shareuserserverdomain。它们对应的验证方式如下: 
1.    share:
没有安全性的级别,任何用户都可以不要用户名和口令访问服务器上的资源。 
2.    user:samba
的默认配置,要求用户在访问共享资源之前资源必须先提供用户名和密          码进行验证。   
3.    server:
user安全级别类似,但用户名和密码是递交到另外一个服务器去验证,比如递交给一台NT服务器。如果递交失败,就退到user安全级。 
4.    domain:
这个安全级别要求网络上存在一台Windows的主域控制器,samba把用户名和密码递交给它去验证。
注意:
/etc/samba/lmhosts 文件提供ipnetbios名称间的解析

后面三种安全级都要求用户在本linux机器上也要系统帐户。否则是不能访问的 
smb passwd file=/etc/samba/smbpasswd (
设置smb密码文件的位置
username map =/etc/smbusers 
encrypt passwords =no 
采用的时明文密码验证,如果是加密的,就改为yes
四.用户的建立
1.用户必须是系统用户。用useradd添加
2.密码用smbpasswd –a 后面跟用户名,然后会提示你输入密码
禁用某个用户
启用
删除 
五.使用swat管理Samba服务器
    1.安装swap rpm -ivh samba-swat-3.0.10-1.4E.i386.rpm
    2. chkconfig  swat  on
3. service xinetd restart
4. http://ip:901 就可以访问了 (默认情况下,只能用本机访问)

testparm命令是配置文件测试工具,可以对smb.conf配置文件的语法进行检测,并显示当前配置的清单
七.Smbstatus  显示服务器的连接信息
Smbclient –L 192.168.1.1  显示192.168.1.1 这个服务器上的共享目录
    Smbclient  //192.168.1.1/aa   -U  aa 用用户aa访问192.168.1.1上面的aa目录
.目录挂载
.Smbmount用于挂再linux共享目录。    smbmount //192.168.1.2/public /mnt
    mount -t smbfs -o username=st02   //192.168.1.2/public /mnt
十一 本科总结
1.Windows主机之间使用SMB/CIFS协议进行文件和打印的共享
2.Samba服务器在Linux /UNIX系统中实现了SMB/CIFS协议
3.Samba服务器需要运行smbdnmbd两个服务程序
4.配置文件smb.confSamba服务器配置的核心
5.使用smbclientsmbmount客户端命令可以连接使用Samba服务器中的共享目录
实验
                                
常见共享目录配置项的含义
    comment:对共享目录的注释、说明信息
    path:共享目录在服务器中对应的实际路径
    browseable:该共享目录在“网上邻居”中是否可见
    guest ok:是否允许所有人访问,等效于“public”
    writable:是否可写,与read only的作用相反
    read only = yes
    writable
实验:
建立资源,使登陆到该服务器的用户均有权使用该空间(包括读,)
.
编辑smb.conf文件
vi smb.conf
[resource]
comment = local resource 
path = /var/samba/resource 
read only = no 
public = yes //
允许guest用户访问
建立共享文件夹
mkdir -p /var/samba/resource
由于任何人都能使用,所以得给该文件夹设置访问权限
chmod 707 /var/samba/resource
如果想在该文件夹中放置预共享文件,而又不想花时间从别的文件夹中cp过来,此时可以使用指针.比如想共享/usr/share/doc中的文件,则可以:
ln -s /usr/share/doc /var/samba/resource/doc
进入/var/samba/resource ls一下,是不是出现指针文件了!
建立一资源,只能让用户liu全权访问.
编辑smb.conf文件
vi smb.conf
[liu]
comment = liu
path = /var/samba/liu
valid users = liu //
只允许liu访问 或者@组名
public = no
writable = yes
建立共享文件夹
mkdir -p /var/samba/liu
由于只能让liu使用,所以得给该文件夹设置访问权限
chown liu.liu /var/samba/liu
chmod 700 /var/samba/liu
此时该文件夹属于liu用户,并且只能由liu用户访问.
建立一资源,只能让root,zhangwang访问.
编辑smb.conf文件
vi smb.conf
[zhang wang]
comment = zhang wang
path = /var/samba/liu
valid users = zhang     wang     
public = no
writable = yes
create mask = 0707           create
建立共享文件夹
mkdir -p /var/samba/zhangwang
给该文件夹设置访问权限
chmod 707 /var/samba/zhangwang
此时该文件夹只能root,zhang,wang访问了.
建立一资源,让指定的组group2中的用户访问.
编辑smb.conf文件
vi smb.conf
[group]
comment = group2
path = /var/samba/group2
public = yes
writable = yes
write list = @group2 //
设置读写访问用户列表(read list
建立共享文件夹
mkdir -p /var/samba/group2
给该文件夹设置访问权限
chown group2.group2 /var/samba/group2
chmod 770 /var/samba/group2
此时该文件夹只能由group2中的用户访问了.
(3). 
以上为创建共享文件夹,下面为创建共享打印机.
配置打印机的方面有很多,比如使用redhat-config-printer命令即可调出配置菜单.
当然smb.conf中也要设置啊:
[global]
printcap name = /etc/printcap //
配置文件路径
[printers]
writable = no
guest ok = yes //guest
可用
browseable = no //
不可浏览
ptrintable = yes
path = /var/spool/samba //
队列位置
printer admin = root //
打印机管理员
其他配置不变或按情配置
接下来再添加print驱动设置:
[print$]
comment = printer drivers
path = /etc/samba/drivers
browseable = yes
guest ok = no
read only = yes
write list = root
接着创建drivers文件夹:mkdir -p /etc/samba/drivers
最后给用户准备打印机驱动,并启动打印共享:
注意:例34是补充内容,课本上没有!!!
cupsaddsmb -a -U root //-a为共享所有打印机 -U为以root身份执行
cupsaddsmb
命令
灵活的samba权限
read only = yes
write list = aa这两行的作用:虽然该目录只读,但aa仍然能写
read only = no
read    list = aa 作用:虽然该目录都可写,但aa只读


本文转自 gehailong 51CTO博客,原文链接:http://blog.51cto.com/gehailong/263894,如需转载请自行联系原作者
上一篇:服务器搭建:手把手教你配置web服务之nginx1.6


下一篇:DBImport V3.1 数据互导工具及文档生成器更新发布