Linux下samba服务器在企业网络中应用
1. Samba服务基础:
Windows与Linux文件共享的方法,建议使用 Samba 服务器!
Samba应用环境 :
client: windows:\\ 网上邻居 net use
linux:(samba-client)
文件传输:ssh ftp smb
SMB协议:Server Message Block,服务消息块
CIFS协议:Common Internet File System,通用互联网文件系统
Samba网站:http://www.samba.org/
Samba官方下载:http://ftp.samba.org/pub/samba/
Smb进程: tcp:smbd 139 445
2. Samba 配置简介:
Samba的软件包组成:(包很大)
samba: 这个软件主要提供了 SMB 服务器所需的各项服务程序 (smbd 及 nmbd)、 的文件档、以及其他与 SAMBA 相关的 logrotate 配置文件及开机默认选项档案等;
samba-client: 这个软件则提供了当 Linux 做为 SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 文件格式的 mount.cifs、 取得类似网芳相关树形图的 smbtree 等等;
samba-common: 这个软件提供的则是服务器与客户端都会使用到的数据,包括 SAMBA 的主要配置文件 (smb.conf)、语法检验指令 (testparm) 等等;
samba-swat: 端口tcp901, 是通过浏览器对 Samba 进行管理的工具之一。通过 SWAT ,可以在 Samba 允许访问范围内的客户端,用浏览器对服务端的 Samba 进行控制。在线文档的阅览、smb.conf 的确认和编辑,以及密码的变更、服务的重启等等都可以通过 SWAT 来完成,它的直观让 Samba 变得温和化,对那些不喜欢文本界面管理服务器的朋友来说,是一个强大的工具。
system-config-samba图形配置包
samba安装:
[root@junjie ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@junjie ~]# cd /mnt/cdrom/Server/
[root@junjie Server]# ls samba*
[root@junjie Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm
error: Failed dependencies:
perl(Convert::ASN1) is needed by samba-3.0.33-3.14.el5.i386
samba-common = 0:3.0.33-3.14.el5 is needed by samba-3.0.33-3.14.el5.i386
[root@junjie Server]# yum install -y samba samba-swat
Installed: samba.i386 0:3.0.33-3.14.el5 samba-swat.i386 0:3.0.33-3.14.el5
Dependency Installed: perl-Convert-ASN1.noarch 0:0.20-1.1
Updated: samba-client.i386 0:3.0.33-3.14.el5 samba-common.i386 0:3.0.33-3.14.el5
samba配置说明:
[root@junjie Server]# rpm -qc samba
[root@junjie Server]# rpm -qc samba-common
[root@junjie ~]# ll /etc/samba/
-rw-r--r-- 1 root root 20 May 29 2009 lmhosts
-rw-r--r-- 1 root root 9733 May 29 2009 smb.conf
-rw-r--r-- 1 root root 97 May 29 2009 smbusers
Samba的服务脚本
Samba的配置目录及文件
Samba 的主配置文件叫/etc/samba/smb.conf
/etc/sysconfig/samba: 提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。
Samba主配置文件smb.conf详解:
[root@junjie ~]# rpm -ql samba |grep smb.conf
[root@junjie ~]# rpm -ql samba-common |grep smb.conf
[root@junjie ~]# grep -v "^#" /etc/samba/smb.conf |grep –v “^;”
默认主配置在/etc/samba/目录下。这个目录下还存放着我们稍后用密码访问时的口令文件。smb.conf 含有多个段,每个段由段名开始,直到下个段名。每个段名放在方括号中间。配置文件中一行一个段名和参数,段名和参数名不分大小写。除了[global]段外,所有的段都可以看作是一个共享资源。段名是该共享资源的名字,段里的参数是该共享资源的属性。
Samba 安装好后,使用testparm 命令可以测试smb.conf 配置是否正确。使用testparm –v命令可以详细的列出smb.conf 支持的配置参数。
57 [global]全局配置参数:
75 server string = Samba Server Version %v
79 ; interfaces = lo eth0 192.168.12.2/24 192.168.13.2 /24
80 ; hosts allow = 127. 192.168.12. 192.168.13.
101 security = user
75行:server string:服务器描述信息,可以是任何字符串,也可以不填。宏%v 表示显示Samba的版本号。
77行:netbios name:设置Samba Server 的NetBIOS 名称。如果不填,则默认会使用该服务器的DNS 名称的第一部分。netbios name 和workgroup 名字不要设置成一样了。
79行:interfaces:设置Samba Server 监听哪些网卡,可以写网卡名,也可以写该网卡的IP 地址
80行:hosts allow = 127. 192.168.1. 192.168.10.1
说明:表示允许连接到Samba Server 的客户端,多个参数以空格隔开。可以用一个IP 表示,也可以用一个网段表示。hosts deny 与hosts allow 刚好相反。
设置客户机访问授权:一般用在全局配置[global]部分
客户机地址表示形式:以空格分隔多个地址
主机名或IP地址,例如: 192.168.168.11 或者 prtsvr
网络地址,例如:173.17. 或者 173.17.0.0/255.255.0.0
例如:hosts allow=172.17.2.EXCEPT172.17.2.50
表示容许来自172.17.2.*.*的主机连接,但排除172.17.2.50
表示容许来自172.17.2.0/255.255.0.0 子网中的所有主机连接
表示容许来自M1 和M2 两台计算机连接
表示容许来自XQ 网域的所有计算机连接
89行:log file设置Samba Server 日志文件的存储位置以及日志文件名称。在文件名后加个宏%m(主机名),表示对每台访问Samba Server 的机器都单独记录一个日志文件。如果pc1、pc2 访问过Samba Server,就会在/var/log/samba 目录下留下log.pc1 和log.pc2 两个日志文件。
91行:max log size = 50设置Samba Server 日志文件的最大容量,单位为kB,0 代表不限制。
说明:设置用户访问Samba Server 的验证方式,一共有四种验证方式。
2. user:Samba Server 共享目录只能被授权的用户访问,由Samba Server 负责检查账号和密码
的正确性。账号和密码要在本Samba Server 中建立。
3. server:依靠其他Windows NT/2000 或Samba Server 来验证用户的账号和密码,是一种代理
验证。此种安全模式下,系统管理员可以把所有的Windows 用户和口令集中到一个NT 系统
上,使用Windows NT 进行Samba 认证, 远程服务器可以自动认证全部用户和口令,如果认证
失败,Samba 将使用用户级安全模式作为替代的方式。
221行:表示是否容许打印机中的所有打印机,在开机时自动加载浏览列表,以支持客户端的浏览功能
227行:用来指定打印系统的类型
248 [homes]个人主目录配置参数:
255 [printers]打印机配置参数:
[共享文件]设置:
comment:对共享目录的注释、说明信息
guest ok:是否允许所有人访问,等效于“public”
writable:是否可写,与read only的作用相反
Samba服务设置的读取、写入权限,优先级要低于文件系统中设置的权限
建立Samba用户数据库文件
默认数据库文件位于:/etc/samba/smbpasswd
系统用户帐号 -> Samba用户帐号
smbpasswd -a user1 #添加
smbpasswd -d user1 #禁用
smbpasswd -e user1 #启用
smbpasswd -x user1 #删除
在smb.conf文件中需要启用如下配置
默认的别名映射文件:/etc/samba/smbusers
配置文件语法检测工具:testparm
状态查看工具:smbstatus
[root@junjie ~]# smbstatus
3. Samba客户端访问方法:
网上邻居、UNC路径
windows 下:断开连接的方法:注销系统或输入以下命令.
使用Linux客户端访问文件共享服务:smbclient
smbclient命令,查看及登录使用共享
挂载:
mount命令,将共享目录挂载到本地使用
#mount -o username=vina //192.168.168.1/movie /mnt
smbmount //192.168.5.100 /mnt/dir1 –o username=user1
自动挂载:vim /etc/fstab
//192.168.2.100/qq /mnt/qq cifs defaults, credentials=/etc/samba/account.txt 0 0
4. Samba服务器配置案例:
samba安装:
[root@junjie ~]# mount /dev/cdrom /mnt/cdrom/
mount: block device /dev/cdrom is write-protected, mounting read-only
[root@junjie ~]# cd /mnt/cdrom/Server/
[root@junjie Server]# ls samba*
[root@junjie Server]# rpm -ivh samba-3.0.33-3.14.el5.i386.rpm
error: Failed dependencies:
perl(Convert::ASN1) is needed by samba-3.0.33-3.14.el5.i386
samba-common = 0:3.0.33-3.14.el5 is needed by samba-3.0.33-3.14.el5.i386
[root@junjie Server]# yum install -y samba samba-swat
Installed: samba.i386 0:3.0.33-3.14.el5 samba-swat.i386 0:3.0.33-3.14.el5
Dependency Installed: perl-Convert-ASN1.noarch 0:0.20-1.1
Updated: samba-client.i386 0:3.0.33-3.14.el5 samba-common.i386 0:3.0.33-3.14.el5
[root@junjie ~]# useradd user1
[root@junjie ~]# useradd user2
[root@junjie ~]# echo "123" |passwd --stdin user1
Changing password for user user1.
passwd: all authentication tokens updated successfully.
[root@junjie ~]# echo "123" |passwd --stdin user2
Changing password for user user2.
passwd: all authentication tokens updated successfully.
[root@junjie ~]# smbpasswd -a user1
Retype new SMB password:
[root@junjie ~]# smbpasswd -a user2
Retype new SMB password:
[root@junjie ~]# mkdir /public
[root@junjie ~]# touch /public/p1
[root@junjie ~]# mkdir /soft
[root@junjie ~]# touch /soft/f1
[root@junjie ~]# mkdir /smbuser2
[root@junjie ~]# touch /smbuser2/f1.user2
[root@junjie ~]# chmod 777 /public/ /soft/ /smbuser2/
[root@junjie ~]# ll -d /public/ /soft/ /smbuser2/
drwxrwxrwx 2 root root 4096 Apr 15 18:03 /public/
drwxrwxrwx 2 root root 4096 Apr 15 18:12 /smbuser2/
drwxrwxrwx 2 root root 4096 Apr 15 18:04 /soft/
[root@junjie ~]# vim /etc/samba/smb.conf
#检查语法:
[root@junjie ~]# testparm
Load smb config files from /etc/samba/smb.conf
Processing section "[homes]"
Processing section "[printers]"
Processing section "[public]"
Processing section "[smb-user1]"
Processing section "[smb-user2]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions
#重启samba的服务smb
[root@junjie ~]# service smb restart
Shutting down SMB services: [ OK ]
Shutting down NMB services: [ OK ]
Starting SMB services: [ OK ]
Starting NMB services: [ OK ]
#user1登录测试
使用命令关闭user1的连接,接下来使用user2访问测试!
#user2登录测试
[root@junjie ~]# ll samba-3.5.14.tar.gz
-rw-r--r-- 1 root root 30368829 Apr 1 10:49 samba-3.5.14.tar.gz
[root@junjie ~]# tar -zxvf samba-3.5.14.tar.gz -C /usr/local/src/
[root@junjie ~]# cd /usr/local/src/samba-3.5.14/source3/
[root@junjie source3]# ls
[root@junjie source3]# ./autogen.sh
[root@junjie source3]# ./configure --help
[root@junjie source3]# ./configure && make && make install
MO files for pam_winbind are installed.
All MO files for Samba are installed. You can use "make uninstall"
or "make uninstallmo" to remove them.
make: warning: Clock skew detected. Your build may be incomplete.
#make installbin && make installman && make revert(可选)
#其它配置略.
附录2:图形化管理samba服务器