Linux与Windows 共享文件Samba 服务的安装于配置

参考:redhat linux samba smb 配置、RedHat LinuxSamba配置(简单配置)、LinuxWindows 共享文件Samba

 

目录

 

1 Samba 简介

2 Samba 功能和应用范围

3 samba 的安装及服务启动

4 Samba 服务器配置文件

5 samba 服务自动启动及其他工具

正文

 

1Samba简介

 

SambaSMB是其缩写) 是一个网络服务器,用于LinuxWindows共享文件之用;Samba 即可以用于WindowsLinux之间的共享文件,也一样用于LinuxLinux之间的共享文件;

 

不过对于LinuxLinux之间共享文件有更好的网络文件系统NFSNFS也是需要架设服务器的;

大家知道在Windows 网络中的每台机器即可以是文件共享的服务器,也可以同是客户机;Samba 也一样能行,比如一台Linux的机器,如果架了Samba Server 后,它能充当共享服务器,同时也能做为客户机来访问其它网络中的Windows共享文件系统,或其它LinuxSabmba 服务器;

我们在Windows网络中,看到共享文件功能知道,我们直接就可以把共享文件夹当做本地硬盘来使用。在Linux的中,就是通过Samba的向网络中的机器提供共享文件系统,也可以把网络中其它机器的共享挂载在本地机上使用;这在一定意义上说和FTP是不一样的。

 

2Samba 功能和应用范围

 

Samba 应该范围主要是WindowsLinux 系统共存的网络中使用;如果一个网络环境都是LinuxUnix类的系统,没有必要用Samba,应该用NFS更好一点;

Samba 能为我们提供点什么服务呢?主要是共享文件和共享打印机。

 

3samba 的安装及服务启动

 

3.1 samba 服务的安装

 

rpm -qa|grep samba   //此命令用于检查linux系统有没有装过samba

如安装过,则会显示

Samba-common- 2. 2.7a -7.9.0

Samba-client- 2. 2.7a -7.9.0

Samba- 2. 2.7a -7.9.0

后面显示的是版本信息

如果没有显示,则需要放入第一张光盘安装:

rpm -ivh samba-common- 2. 2.7a -7.9.0.i386.rpm

rpm -ivh samba- 2. 2.7a -7.9.0.i386.rpm

rpm- ivh samba-client- 2. 2.7a -7.9.0.i386.rpm

当然也可以从图形化界面选择samba安装。

 

3.2 Samba 有两个服务器,一个是smb,另一个是nmb

 

smb Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;如果不打开nmb服务器的话,只能通过IP来访问,比如在WindowsIE浏览器上打入//samba服务器IP地址/共享目录 来访问。

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

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

 

service smb start         //启动 Samba

pstree | grep mbd         //检查Samba是否启动

          | -nmbd

          | -smbd           //出现这二行,就表明Samba已经启动

service smb stop          //停止

#service smb restart        //重启

 

# pgrep smbd

# pgrep nmbd          //查看服务器是否运行起来了

 

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

 

查看这个有何用呢?有时你的防火墙可能会把smbd服务器的端口封掉,所以我们应该smbd服务器所占用的端口;下面查看中,我们知道smbd所占用的端口是139445

 

# 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

 

如果您有防火墙,一定要把这两个端口打开。如果不知道怎么打开。可能你和我一样是新手,还是把防火墙规则清掉也行;

# iptables –F

# /sbin/iptables –F

 

3.4  查看Samba 服务器的配置文件;

 

如果我们是用Linux发行版自带的Samba软件包,一般情况下Samba服务器的配置文件都位于/etc/samba目录中:

服务器的主配置文件是smb.conf

用户配置文件 smbpasswdsmbuserslmhosts等;

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

 

4.  配置服务

 

知识点,samba有四种安全级别,它们分别是:

share:用户不需要账户就可登陆samba服务器

user:需在账户才可以登陆samba服务器

server:

domain:

以上是它的四个运行级别;share,user这二个级别适合用小型部门,如网吧等,这也是我要和大家讲的内容。

 

4.1 share级别的配置

 

其实这个级别的samba很简单,首先它不需要以用户和密码来验证登陆,所以就不必去配置samba用户了。

 

cp /etc/samba/smb.conf /etc/samba/smb.conf.bak         // 备份samba的配置文件

vi /etc/samba/smb.conf        // 找到 security = user 将它改成 security = share

service smb restart           // 重启samba服务器

 

这时我们在IE输入://sabma服务器的地址 就可以得到共享目录。

 

此时我们服务器上任没有设置任何共享目录,下面我们在服务器上设置一个共享目录。

 

mkdir /mnt/text

chmod 0777 /mnt/text

vi /etc/samba/smb.conf

 

把光标移动配置文件的最后一行,在下面加入以下配置

 

# This is samba text

[text]                   //共享目录的名字

comment = text

path = /mnt/text         //共享目录的路经

read only = no           //指定该目录是否可以读

writable = yes           //指定该目录是否可以写

public = yes             //指定该目录是否可以guest访问

// 然后保存。

service smb restart    // 重启samba服务器

这时我们在IE输入://sabma服务器的地址,会得到text共享目录。

这里大家会看见已经有一个text的共享目录,此目录有“完全权限”。

可照此例子设定,上面所讲得是share级别的samba,很简单!

 

4.2 user级别的samba配置

 

Share级别的samba就是无需用户就可以访问服务器,而user级别的samba则需以samba用户和密码才能访问,所以我们先要设定一个samba用户,如下:

 

vi /etc/samba/smb.conf        //找到 security = share 将它改成 security = user

useradd movie

passwd movie                  //设置用户密码

smbpasswd a movie           //设置sabam登陆的密码

mkdir /mnt/text2

chown movie.movie /mnt/text2  //设定文件夹text2movie用户所有

vi /etc/samba/smb.conf

 

把光标移动配置文件的最后一行,在下面加入以下配置

 

# This is movie’Service

[text2]

comment = text2

path = /mnt/text2

writable = yes

valid users = movie

public = no

// 然后保存。

service smb restart             // 重启samba服务器

 

这时我们在IE输入//sabma服务器的地址,会提示你输入samba用户和密码,输入用户:movie 和密码,进入。这时会看到多了“movie”、“text2”这二个目录,“movie”是movie用户的根目录,“text2”是我们刚刚设定的共享目录。如果我们不想使用“movie”用户的根目录共享,怎么办法呢,如下:

 

vi /etc/samba/smb.conf

找到

[homes]

comment = Home Directories

browseable = no

writable = yes

[homes]下面每行的前面加上符号“;”

 

[homes]

   comment = Home Directories

   browseable = no

   writable = yes

// 然后保存。

service smb restart             // 重启samba服务器

这时我们在IE输入//sabma服务器的地址, movie目录就没了。

 

5samba 服务自动启动及其他工具

 

5.1  samba自动启动

有如下两种方法,任选其一:

1)最简单的做法:手动设置

# setup

进入系统设置界面,选择system services,回车进入系统服务设置界面,找到smb服务,空格选中为*(即系统启动时自动启动的服务)

2)最标准的做法

A. /etc/init.d 中作一个如下内容的脚本smbd

$smbspool=/var/spool/samba

$piddir=/var/run

$smbd=/usr/sbin/smbd

$nmbd=/usr/sbin/nmbd

if [ "x$1" = "x" -o "x$1" = "xstart" ]; then

if [ -d $smbspool ]; then

rm -f $smbspool/*

fi

$smbd D

$nmbd D

elif [ "x$1" = "xstop" ]; then

kill `cat $piddir/smbd.pid`

kill `cat $piddir/nmbd.pid`

else

echo "$0 start|stop"

fi

B. 然后执行

ln -s /etc/init.d/smbd /etc/rc3.d/S99smbd

ln -s /etc/init.d/smbd /etc/rc0.d/K01smbd

 

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

 

smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtree

smbclient smbcquotas smbmnt smbpasswd smbspool smbtar smbumount

smbd nmbd mount

其中服务器端的是smbdnmbdsmbpasswd ;其它的大多是客户端;

Linux 中的常用工具mountsmbmount)和smbclientWindows查看Linux共享的方法 ; 在Linux系统中查看网络中Windows共享文件及Linux中的Samba共享文件;一般的情况下,我们要用到smbclient;常用的用法也无非是下面的;

# smbclient -L //ip地址或计算机名

 

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

这个简单吧,在网上领居,查看工作组就能看得到,或者在浏览器上输入如下的 //ip地址或计算机名,这样就能看到这个机器上有什么共享的了,点鼠标操作完成;如果访问不了,不要忘记把Linux的防火墙规划清掉,或让相应的端口通过;

 

5.3  smbfs文件系统的挂载;

 

mount 的用法,加载网络中的共享文件夹到本地机;mount就是用于挂载文件系统的,SMB做为网络文件系统的一种,也能用mount挂载;smbmount说到底也是用mount的一个变种;

mount 挂载smbfs的用法;

 

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

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

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

 

smbmount的用法:

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

smbmount //ip地址或计算机名/共享文件夹名 挂载点

 

说明:

如果您的服务器是以share共享的,则无需用户名和密码就能挂载,如果出现要密码的提示,直接回车就行;您也可以用smbmount 来挂载,这样就无需用mount -t smbfs来指定文

件系统的类型了;

对于挂载点,我们要自己建立一个文件夹,比如我们可以建在/opt/smbhd,这由您说的算吧;

mount的命令中,我们发现有这样的一个参数codepage=cp936,这是服务器端文件系统的编码的指定,cp936 就是简体中文,当然您可以用utf8等,编码不同时可能造成中文文件名显示乱码。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值