本文共 5036 字,大约阅读时间需要 16 分钟。
目录
以前每次安装samba,都要折腾一会。今天仔细研究了下,发现配置起来还是很容易的。因此记录下来,方便日后复用。
SMB协议是建立在NetBIOS协议之上的应用协议,是基于TCP138、139两个端口的服务,NetBIOS出现之后,Microsoft就使用NetBIOS实现了一个网络文件/打印服务系统。这个系统基于NetBIOS设定了一套文件共享协议,Microsoft称之为SMB(Server Message Block)协议,这个协议被用于LanManager和Windows服务器系统中,实现不同计算机之间共享打印机和文件等。因此,为了让Windows和Unix/Linux计算机相集成,最好的办法就是在Unix/Linux计算机中安装支持SMB协议的软件。这样使用Windows的客户端不需要更改设置,就能像使用Windows NT或Windows 2000服务器一样,使用Unix/Linux计算机上的共享资源了。
1). 先把cd挂载到/mnt/cdrom目录下。
[root@localhost shltsh]# mkdir /mnt/cdrom[root@localhost shltsh]# mount -t iso9660 /dev/cdrom /mnt/cdrommount: block device /dev/sr0 is write-protected, mounting read-only
2). 切换到安装盘的Packages目录下,安装samba。
[root@localhost shltsh]# cd /mnt/cdrom/Packages/[root@localhost Packages]# ls *samba*kdenetwork-fileshare-samba-4.7.2-2.fc16.i686.rpm samba-common-3.6.0-69rc2.fc16.1.i686.rpm system-config-samba-docs-1.0.9-2.fc15.noarch.rpmsamba-3.6.0-69rc2.fc16.1.i686.rpm samba-winbind-clients-3.6.0-69rc2.fc16.1.i686.rpmsamba-client-3.6.0-69rc2.fc16.1.i686.rpm system-config-samba-1.2.93-1.fc16.noarch.rpm[root@localhost Packages]# rpm -ivh samba-3.6.0-69rc2.fc16.1.i686.rpm warning: samba-3.6.0-69rc2.fc16.1.i686.rpm: Header V3 RSA/SHA256 Signature, key ID a82ba4b7: NOKEYerror: Failed dependencies:samba-common = 0:3.6.0-69rc2.fc16.1 is needed by samba-0:3.6.0-69rc2.fc16.1.i686[root@localhost Packages]# rpm -ivh samba-common-3.6.0-69rc2.fc16.1.i686.rpm warning: samba-common-3.6.0-69rc2.fc16.1.i686.rpm: Header V3 RSA/SHA256 Signature, key ID a82ba4b7: NOKEYPreparing... ########################################### [100%]1:samba-common ########################################### [100%][root@localhost Packages]# rpm -ivh samba-3.6.0-69rc2.fc16.1.i686.rpm warning: samba-3.6.0-69rc2.fc16.1.i686.rpm: Header V3 RSA/SHA256 Signature, key ID a82ba4b7: NOKEYPreparing... ########################################### [100%]1:samba ########################################### [100%]
samba的配置在/etc/samba/smb.conf目录下。本文的目的是将文件共享在局域网中,并使得共享目录有访问以及读写权限。
[root@localhost Packages]# vi /etc/samba/smb.conf
设置下面的各项
workgroup = MYGROUP //设置工作组 server string = Samba Server Version %v //共享文件(夹)的描述信息 netbios name = MYSERVER //NetBIOS名字。Fedora16默认没有启动 log file = /var/log/samba/log.%m //日志文件的保存路径,%m代表windows主机名 max log size = 50 //日志的最大容量 security = user //安全级别。user需要用户名以及密码,share不需要
接下来设置具体的需要共享的文件的信息。
[samba] //建立一个名字为samba的共享文件 comment = share folder //描述信息 path = /home/samba //需要共享的文件(夹)路径 public = no //是否允许guest用户访问(相当于guest ok = yes/no) writable = yes //是否可写 printable = no //指定打印能否启动。取值为no时,则无打印权限 write list = @users //可写用户的列表(@代表用户组)
配置信息准备好之后,接下来设置共享文件(夹)的信息
[root@localhost ~]# mkdir /home/samba //创建共享文件的目录 [root@localhost ~]# chown -R nobody /home/samba/ //设置目录的拥有者为nobody [root@localhost ~]# chmod 777 /home/samba/ //设置目录属性(权限)为777,即任意读写以及执行权
在进行到服务端的连接之前,需要预先对用于登录Samba的用户进行设置。这里我们以标准的Samba用户数据库管理工具“smbpasswd”为例,创建用于登录Samba的用户数据。这里需要注意的一点:用smbpasswd创建用户的前提是,系统用户中存在该用户--在基于系统用户之上,才可以创建该用户在Samba用户数据库中的信息。
[root@localhost samba]# smbpasswd -a samba New SMB password: //输入密码 Retype new SMB password: //再次确认输入密码 Added user samba.
在启用samba服务之前,需要进行防火墙的设置。开放samba执行时所需要的端口。
[root@localhost ~]# vi /etc/sysconfig/iptables
//打开后的内容如下:
# Firewall configuration written by system-config-firewall # Manual customization of this file is not recommended. *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
在这一行(*****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 -p udp -m udp --dport 137 -j ACCEPT -A INPUT -p udp -m udp --dport 138 -j ACCEPT
重启启动iptables,使规则生效
[root@localhost ~]#/etc/rc.d/init.d/iptables restart restartFlushing firewall rules: [ OK ] Setting chains to policy ACCEPT: filter [ OK ] Unloading iptables modules: [ OK ] Applying iptables firewall rules: [ OK ]
其中,samba的服务中包含两个守护进程(后台进程), 即smb以及nmb.
[root@localhost ~]# chkconfig smb on //设置samba自启动 [root@localhost ~]# chkconfig --list smb //确认samba的启动标签,其中2-5应该为on状态 smb 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@localhost ~]# chkconfig nmb on //设置nmb自启动 [root@localhost ~]# chkconfig --list nmb //确认nmb的启动标签,其中2-5应该为on状态 nmb 0:off 1:off 2:on 3:on 4:on 5:on 6:off [root@localhost ~]# /etc/rc.d/init.d/smb restart //启动samba服务 Restarting smb (via systemctl): [ OK ] [root@localhost ~]# /etc/rc.d/init.d/nmb restart //启动nmb服务 Restarting nmb (via systemctl): [ OK ]
转载地址:http://qleji.baihongyu.com/