linux访问windows的samba配置,如何配置?详细教程

linux访问windows的samba配置,如何配置?详细教程,第1张

这里只讲到一些很简单的配置,为了方便初学者进行win和linux的通信,也可以了解一些linux服务的配置环境。

概要:

Windows中有一个网络邻居,它提供在局域网内的小型网络资源共享方案,计算机之间使用Samba套件SMB(Session Message Block)协议服务通信。LINUX也可以通过此协议与Windows实现类似网络邻居的通信。下面将介绍SMB协议在Linux下的安装、配置和使用。

注:对于Linux的一些基本使用这里不作详细介绍。SMB基于NetBIOS协议工作。

安装:

Samba的安装包可从网络下载,现在的版本是22。我从LINUX的安装盘中找到的安装包(223),共三个,都以Samba开头,RPM包格式,用rpm –ivh xxxrpm 解包,将把服务和工具存放到/sbin和/usr/bin下,配置文件在/etc/samba中。查找一下smb、nmb、smbclient工具是否存在。

配置:

对Samba的配置主要是对smbconf文件的设置。配置项目和方法有机百种之多,在配置文件目录中提供一个预制的配置文件,你只要对其进行改动就行,;和#表示注释。下面将对配置中的主要项目加以说明。

注:这里只是配置将本机对外公布的数据,如何使用其它主机的服务几乎与此无关,但最好配置一下。

1、 简化配置,清晰概念

smbconf的基本数据只有三段[global]、[homes]、[printers],分别对服务通信数据、个人目录和打印机进行配置。其中[global]段是必需的,[homes]的默认设置使将登陆用户的的主目录进行共享,[printers]是共享系统中配置的所有打印机。

2、 [global]段

这一段只介绍一下基本的配置。其他可根据需要设置。

a) 以下配置在网络邻居里的显示信息

Workgroup = 工作组名 与windows工作组是一个意思

Server string = xxxxx 对计算机的简要说明

b) 如果要共享打印机,使用以下几项

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

Load printers = yes

printing = lprng 说明打印机类型

c) 指明日志文件

log file = /var/log/samba/%mlog %m表示登陆用户账号

d) 设置公开资源使用级别,与windows的访问控制相像

security = user

e) 设置登陆密码,可用smbpasswd –a 用户名设置密码

encrypt passwords = yes

smb passwd file = /etc/samba/smbpasswd 密码保存文件

f) 下面一部分很有意思,它可以将不同的登陆账号映射为现有的用户而不用要求系统必须有此账户,即当使用windows时不必注销和更换账号,并且linux也不必添加大量账号。

username map = /etc/samba/smbusers 映射文件

如果其他设置没有改动的话,现在启动samba就可以正常通信了。但使用是否如您所愿,还需要对共享数据进行配置。

3、[homes]段

comment = Home Directories 提示信息,不重要

browseable = no 是否显示次段表示的共享,但在[homes]段不起无用,仍然显示$HOME文件夹。

writable = yes

valid users = %S

create mode = 0664 在此文件夹中创建文件的默认权限

directory mode = 0775

4、[printers]段

comment = All Printers

path = /var/spool/lpd/testsmb 假脱机目录

browseable = no 与[homes]相同

# Set public = yes to allow user ’guest account’ to print

guest ok = no

writable = no

printable = yes

5、其他的共享资源设置与[printers]和[homes]中的设置差不多。可以参考一下配置文件中的一些注释掉的设置。

其他的配置是集成3、4段的设置参数,可参考其他资料。

启动:

Samba启动主要由smbd和nmbd完成,很简单

1、 smbd –D -d1

2、 nmbd -D -d1 -n 计算机名

smbd SMB的客户进程,使用smbconf文件

nmbd 提供NetBIOS有名服务和浏览支持。

-D 表示以守护进程方式运行 –d1 表示服务启动级别,d1就行

稍等让windows找到服务,打开网络邻居找找,应该能找到了,否则检查一下网络连通情况。或用testparm工具检查一下配置文件的语法。

使用:

这里只讲一下linux下的使用,windows下不会用的话,哪还是用linux吧,哈哈。

smbclient –L 远程计算机名 –U 用户名

将列出远程计算机上的共享资源情况

smbclient ‘\远程计算机名共享名称’ –u xx

将进入到一个类似ftp的文本界面,就像使用ftp一样,稍有不同,看一下,很简单。

1 Samba 简介

Samba(SMB是其缩写) 是一个网络服务器,用于Linux和Windows共享文件之用;Samba 即可以用于Windows和Linux之间的共享文件,也一样用于Linux和Linux之间的共享文件;不过对于Linux和Linux之间共享文件有更好的网络文件系统NFS,NFS也是需要架设服务器的;

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

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

Samba 用的netbios协议,如果您用Samba 不成功,

Linux与Windows 、Linux 和 Linux

2 Samba 功能和应用范围

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

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

3 Samba 两个服务器相关启动程序、客户端及服务器配置文件等;

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

smb 是Samba 的主要启动服务器,让其它机器能知道此机器共享了什么;如果不打开nmb服务器的话,只能通过IP来访问,比如在Windows的IE浏览器上打入下面的一条来访问;

\\19216815\共享目录

\\19216815\opt

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

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

[root@localhost ~]# /etc/initd/smb start

启动 SMB 服务: [ 确定 ]

启动 NMB 服务: [ 确定 ]

如果停止呢?就在smb后面加stop ;重启就是restart

[root@localhost ~]# /etc/initd/smb stop

[root@localhost ~]# /etc/initd/smb 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

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

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

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

tcp 0 0 0000:139 0000: LISTEN 10639/smbd

tcp 0 0 0000:445 0000: LISTEN 10639/smbd

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

[root@localhost ~]# iptables -F

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

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

如果我们是用Linux发行版自带的Samba软件包,一般情况下Samba服务器的配置文件都位于/etc/samba目录中,服务器的主配置文件是smbconf;也有有户配置文件 smbpasswd、smbusers和lmhosts等(最好您查看一下这些文件的内容);还有一个文件是secretstdb,这个文件是Samba 服务器启动手自动生成的;我们慢慢根据教程的进度来适当地增加这些文件的说明吧;一下子都说出来,感觉内容太多;所以只能一点一点的来了;

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

smbcacls smbcontrol smbencrypt smbmount smbprint smbstatus smbtree

smbclient smbcquotas smbmnt smbpasswd smbspool smbtar smbumount

smbd nmbd mount

其中服务器端的是smbd、nmbd、smbpasswd ;其它的大多是客户端;这些并不是都需要一定要精通的,但至少得会用几个;比如smbmount(也就是mount 加参数的用法),还用smbclient等;

35 在Linux 中的常用工具mount(smbmount)和smbclient;Windows查看Linux共享的方法 ;

351 在Linux系统中查看网络中Windows共享文件及Linux中的Samba共享文件;

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

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

这个以后慢慢补充吧;

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

这个简单吧,在网上领居,查看工作组就能看得到,或者在浏览器上输入如下的

\\ip地址或计算机名

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

353 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等,尝试一下吧。

如果您挂载了远程的smbfs文件系统出现的是简体中文乱码,就要考虑挂载时要指定编码了;

4、由最简单的一个例子说起,匿名用户可读可写的实现;

第一步: 更改smbconf

我们来实现一个最简单的功能,让所有用户可以读写一个Samba 服务器共享的一个文件夹;我们要改动一下smbconf ;首先您要备份一下smbconf文件;

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

[root@localhost samba]# mv smbconf smbconfBAK

然后我们来重新创建一个smbconf文件;

[root@localhost samba]#touch smbconf

然后我们把下面这段写入smbconf中;

[global]

workgroup = LinuxSir

netbios name = LinuxSir05

server string = Linux Samba Server TestServer

security = share

[linuxsir]

path = /opt/linuxsir

writeable = yes

browseable = yes

guest ok = yes

注解:

[global]这段是全局配置,是必段写的。其中有如下的几行;

workgroup 就是Windows中显示的工作组;在这里我设置的是LinuxSir

netbios name 就是在Windows中显示出来的计算机名;

server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;

security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;

[linuxsir] 这个在Windows中显示出来是共享的目录;

path = 可以设置要共享的目录放在哪里;

writeable 是否可写,这里我设置为可写;

browseable 是否可以浏览,可以;

guest ok 匿名用户以guest身份是登录;

第二步:建立相应目录并授权;

[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 ;

第三步:启动smbd和nmbd服务器;

[root@localhost ~]# smbd

[root@localhost ~]# nmbd

第四步:查看smbd进程,确认Samba 服务器是否运行起来了;

[root@localhost ~]# pgrep smbd

13564

13568

第五步:访问Samba 服务器的共享;

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

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

Password: 注:直接按回车

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

//LinuxSir05/

1、useradd、groupadd

2、ps -aux 和top看了yexic的回答我似乎理解了问题要问的什么了,问题的应该是查看当前进程的命令和动态查看进程的命令。如果问题是这样的话答案就是ps 和top,如果还是你问的那样的话就应该只用ps命令就可以查看了加上参数-aux,用了这个命令过后主要查看STAT那一列如果是S那么该进程为停止状态,如果为T那么是正在侦测或者是停止状态,如果为Z那么就是僵尸程序,为Z的要kill掉,没用的R为可执行的状态。但我想应该是ps 和top这两个命令

3、7个运行级别、init 3

4、作用为与windows系统共享文件、配置文件为/etc/samba/smbconf

5、不怎么理解,第二个空的答案应该是command options object

6、2代表最大的一个版本号,第二个位偶数的话为正式版,为基数则是测试版,第三个指定第二个数的补丁包。我的理解是这个答案,说实话没看懂他想问的是什么。

7、容量和文件

8、mount、umount

9、/dev、/etc

10、/、swap

11、pwd、cd、/、/或者/

12、重定向命令吧,格式是这样的cat worldtxt >> hellotxt >> 就为重定向符号>>为追加,>为替换。

13、r读、w写、x执行

14、service 进程名 start,和/etc/initd/进程名 start

15、ls -l

16、mv cjhtxt wjztxt

简答题:

1、有三种方法,分别是man,info,和--help

使用方法分别为man ls获取ls命令的帮助

info ls 获取ls命令的帮助

ls --help简单的查看ls命令的参数信息

2、-rw- r-- r-- aaa root Jul 15 17:31 abctxt

里面的第一个字符-表示abctxt为普通文档后面的rw- r-- r--里面rw-表示u-user(这里是aaa)拥有者的权限是rw读写权限;r--表示g-group(这里是root组)所属组的成员拥有的权限为r读的权限;r--表示o-other其他用户(这里是出了aaa,和root组里面的用户以外的用户)有r读的权限。

3、1)、解压源码包

2)、解压后会有一个readme类似的文档

3)、根据文档查看软件安装时需要的环境变量,照着做完过后make测试一下。

4)、测试成功过后make install即可

源码包安装我只装过一次所以我知道的就这些,你也可以去网上搜一下具体一点的方法

4、1)、创建分区来给配额做准备,创建好后记得格式化,支持磁盘配额的文件系统只有ext2、ext3、ext4这几个。所以格式化的时候也只能格式化成这几个之中的其中之一,格式化文件系统用mkfs命令,-t指定文件系统类型。这里以/dev/sda4为新创建的分区。

2)、创建挂载点mkdir /quota挂载点可以自己取名

3)、挂载分区(文件系统)mount -o usrquota,grpquota /dev/sda4 /quota

4)、检查分区是否具备配额的要求quotacheck -cugm /dev/sda4

5)、激活配额,可以有两种方法quotaon -a激活所有可以配额的分区。quotaon /dev/sda4激活指定分区的。

6)、为指定用户设置配额:edquota -u user配置好后即可

5、1)lvm需要多个磁盘,但是linux多个分区就可以当成是不同的磁盘,所以这里要先创建分区,用fdisk创建两个分区,一个也行,两个更具有代表性。并且要把分区的文件系统类型设置为8e,8e既是 Linux LVm。这里假设新建的两个分区为/dev/sda5和/dev/sda6

2)、创建物理卷。用pvcreate命令如pvcreate /dev/sda5 /dev/sda6

3)、创建卷组。用vgcreate命令例:vgcreate myvg /dev/sda5 这里是创建一个名叫myvg的卷组,而且在一个卷组里面vgcreate只能用一次,要添加新的物理卷到这个卷组里面要用vgextend命令例:vgextend myvg /dev/sda6把/dev/sda6添加到myvg这个卷组里面,

4)、创建逻辑卷。用lvcreate命令例:lvcreate -n mylv -L 100M myvg从卷组myvg里面读取100M的空间来创建一个叫mylv的逻辑卷。

5)、格式化文件系统,mkfs命令。

6)、挂载LVM。首先创建挂载点mkdir /lvm,然后挂载mount /dev/myvg/mylv /LVM就可以挂载上去了,也可以这样挂载mount /dev/mapper/myvg-mylv /LVM效果一样。

Samba 的工作原理是,让NETBIOS(Windows95网络邻居的通讯协议)和SMA Server Message Block)这两个协议运行于TCP/IP通信协议之上,并且使用Windows 95的NETBEUI协议让LINUX 可以在网络邻居上被Windows 95看到。 其中最重要的就是SMB协议(Server Message Block),这是一个用于不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)的协议。SMB协议是一个非常重要的协议,在所有 的Microsoft Windows系列操作系统中广为应用。 Samba是SMB服务器在类UNIX系统上的实现。它是开放源代码的GPL自由软件。目前Samba可以在几乎所有的UNIX变种上运行。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » linux访问windows的samba配置,如何配置?详细教程

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情