linux上安装配置samba服务器

时间:2023-03-08 17:04:19
linux上安装配置samba服务器

linux上安装配置samba服务器

在linux上安装配置samba服务器

在这给大家介绍一个不错的家伙,samba服务。如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这篇详解,希望能帮您解决困扰。

先简单介绍一下,SMB(Server Messages Block,信息服务块)是在局域网上共享文件和打印机的一种协议,通过它可以使局域网内的Windows、linux和Unix等系统共享文件和打印机等资源。在linux上可以运行SMB的软件很多,最常用的就是Samba。如果您使用的是REDHAT 9,在那三张光盘中就提供了samba服务器的RPM包。

安装samba服务器的RPM

像在linux下安装配置其他服务一样,先要安samba有关的RPM包:

1)Samba-common:包括samba服务器和客户端均需要的文件(在第一张光盘中)

2)Samba:samba服务端软件(在第一张光盘中)

3)Samba:samba客户端软件(在第一张光盘中)

说明一下,列出这些要安装的rpm包包只是为了说明清楚些,其实只要用个“samba*”就全搞定了。为了老少皆宜,我把所有操作过程都帖了过来,连不会挂载光驱的朋友都应该能看懂吧。

1)

[root@linux root]# mount /mnt/cdrom

[root@linux root]# cd /mnt/cdrom/RedHat/RPMS/

[root@linux RPMS]# rpm -ivh rpmdb-redhat-9-0.20030313.i386.rpm

warning: rpmdb-redhat-9-0.20030313.i386.rpm: V3 DSA signature: NOKEY, key ID

db42a60e

Preparing...        ###################################### [100%]

1:rpmdb-redhat     ################################### [100%]

这一步是准备工作,把REDHAT 9的C盘中的rpmdb-redhat包安上,可以解决安装时的依赖关系错误。

[root@linux RPMS]# cd

[root@linux root]# umount /dev/cdrom

[root@linux root]# mount /mnt/cdrom

既然samba的包都在REDHAT 9的A盘,就在光驱中放入A盘,mount挂载一下。

mount: /dev/cdrom already mounted or /mnt/cdrom busy

mount: according to mtab, /dev/cdrom is already mounted on /mnt/cdrom

[root@linux root]# cd /mnt/cdrom/RedHat/RPMS/

[root@linux RPMS]# rpm -ivh samba* --aid

安装所有以samba开头的包,加上—aid参数,就把安装时所需的其他包也安上了,很方便。

warning: samba-2.2.7a-7.9.0.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e

Preparing...         ##################################### [100%]

1:libjpeg           ##################################### [ 14%]

2:libtiff              ##################################### [ 29%]

3:libpng            ##################################### [ 43%]

4:cups-libs        ##################################### [ 57%]

5:samba-common    ################################## [ 71%]

6:samba           ##################################### [ 86%]

7:samba-client  #################################### [100%]

修改配置文件

[root@linux RPMS]# vi  /etc/samba/smb.conf

在[global]部分做如下修改:

1) workgroup = WORKGROUP        (改一下工作组名)

2) hosts allow = 192.168.138.    (写一个允许访问这服务器的网段,末尾有“.”)

3) security=user

samba有四种安全等级:

share:用户不需要账户及密码即可登录samba服务器

user:由提供服务的samba服务器负责检查账户及密码(默认)

server:检查账户及密码的工作由另一台windows或samba服务器负责

domain:指定windows域控制服务器来验证用户的账户及密码)

4) encrypt passwdords=yes         (去掉前面的注释“;”)

smb passwd file = /etc/samba/smbpasswd     (密码文件的位置)

在文件末尾添加如下内容:

[samba]              (共享文件夹名)

comment=This is my samba server  (这是注释行,可以不写东西)

path=/samba    (指定要共享文件的位置)

writable = yes

browseable =yes

read only = yes

create mode=0664   (这是文件权限)

directory mode=0777    (这是目录权限)

保存退出。vi编辑器使用,按“i”,修改添加;先按“esc”,再按“:”输入“wq”即是保存退出,输入“q!”是不存盘退出。

启动samba服务

[root@linux samba]# service smb start     (启动samba服务)

Starting SMB services: [  OK  ]

Starting NMB services: [  OK  ]

[root@linux samba]# testparm         (检查配置文件的正确性)

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[printers]"

Processing section "[samba]"

Loaded services file OK.

Press enter to see a dump of your service definitions

创建一个samba用户 

该用刻户在windows下有没有都无所谓。

1)建一个系统用户

[root@linux samba]# useradd  samba      (建一个名叫samba的用户)

[root@linux samba]# passwd samba        (给samba用户添加密码)

Changing password for user samba.

New password:               (密码要六位以上,不显示在屏幕上)

BAD PASSWORD: it does not contain enough DIFFERENT characters

Retype new password:         (确认密码)

passwd: all authentication tokens updated successfully.

2)然后创建samba帐户

[root@linux samba]# smbpasswd -a samba

(-a必须加,为了生成密码文件smbpasswd,该密码是windows登陆Linux的samba用户密码)

New SMB password:

Retype new SMB password:

unable to open passdb database.

Added user samba.

3)查看一下生成的用户名、密码

[root@linux samba]# vi /etc/samba/smbpasswd

samba:500:A9C604D244C4E99DAAD3B435B51404EE:ACB98FD0478427CD18949050C5E87B47:[UX         ]:LCT-468268E6:

4)重新启动samba服务

[root@linux samba]# service smb restart

Shutting down SMB services: [  OK  ]

Shutting down NMB services: [  OK  ]

Starting SMB services: [  OK  ]

Starting NMB services: [  OK  ]

最后阶段,进行测试

1)先按照主配置文件所指定的位置,建好要共享的资源。

[root@linux usr]# mkdir samba     (建/usr/samba文件夹)

[root@linux usr]# chmod 777 /usr/samba   (samba服务器受本地文件系统权限和共享权限两种权限,而且是取最严格的权限,为了方便就把本地权限都给足好了)

[root@linux usr]# cd samba

[root@linux samba]# vi aaa.txt

2)在Windows客户机的地址栏中输入samba服务器ip(如“\\192.168.138.110)

OK了,在linux搭建的samba服务器上资源可以供Windows客户端访问了。

Linux Samba服务器配置小记

公司需求:

1. 公司搭建Samba服务器,将对公司数据进行统一的有效管理;

2. 所有员工在公司局域网内不论在哪台电脑上工作,都能访问并能将自己的文件数据保存在Samba文件服务器上。

3. 销售部,技术部都拥有各自部门的共享目录,其他部门不允许访问;

4. Samba服务器只供公司内部使用,并限量员工的使用空间。

根据网络拓扑进行Samba服务器的部署步骤;

一、建立公司员工账号及技术与销售组;

二、将相关员工加入技术及销售组;

三、建立销售及技术共享的目录,并更改目录相关权限;

四、安装并配置Samba服务器;

五、利用quota进行磁盘配额;

关于如何建账号,组这里就不再叙述。直接从第三步开始进行部署;

[root@server ~]# mkdir /home/sales

[root@server ~]# mkdir /home/jishu

[root@server ~]# chgrp jishu /home/jishu

[root@server ~]# chmod 770 /home/jishu

[root@server ~]# chgrp sales /home/sales

[root@server ~]# chmod 770 /home/sales

安装并配置Samba

[root@server ~]# rpm -qa samba*

samba-common-3.0.23c-2

samba-3.0.23c-2

samba-client-3.0.23c-2

默认系统已经安装好Samba组件;

设置smb.conf配置文件如下:

[root@server ~]# vi /etc/samba/smb.conf

具体相关配置文件里面的参数,有兴趣自己去搜索相关资料;

#设置主机方面的参数;

[global]

#与Linux主机名称有关的设置信息

workgroup = keywise 工作组设置

netbios name=server Samba服务器的NETBIOS名称

server string = This is liang’s Samba Server

#与语言有关的设置信息

unix charset=utf8

display charset=utf8

dos charset=cp950

#与日志文件有关的设置信息

log file = /var/log/samba/%m.log 日志存放位置

max log size = 50

#与密码有关的设置信息

security = user 访问需要提供密码

encrypt passwords=yes 是否加密

smb password file=/etc/samba/smbpasswd 密码放置文件

#新增每个用户的默认目录及群组用户目录,如下图;

编辑完smb.conf文件后,保存退出;

然后设置可使用Samba的账号与密码;

先查看并确认密码文件是否存在,若不存在,得自行建立;

[root@server ~]# ls -l /etc/samba/smbpasswd

-rw------- 1 root root 207 Jul 6 01:15 /etc/samba/smbpasswd

新增用户并查看/etc/samba/smbpassword;如下图;添加samba账户之前,确认系统中有相关账号;

测试smb.conf语法设置的正确性;

[root@server ~]# testparm

Load smb config files from /etc/samba/smb.conf

Processing section "[homes]"

Processing section "[printers]"

Processing section "[temp]"

Processing section "[homes]"

Processing section "[jishu]"

Processing section "[sales]"

Loaded services file OK.

Server role: ROLE_STANDALONE

Press enter to see a dump of your service definitions

启动并观察SMB服务

[root@server ~]# /etc/init.d/smb start

Starting SMB services: [ OK ]

Starting NMB services: [ OK ]

[root@server ~]# netstat -tlunp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2667/smbd

tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2667/smbd

udp 0 0 192.168.1.50:137 0.0.0.0:* 2671/nmbd

udp 0 0 0.0.0.0:137 0.0.0.0:* 2671/nmbd

udp 0 0 192.168.1.50:138 0.0.0.0:* 2671/nmbd

udp 0 0 0.0.0.0:138 0.0.0.0:* 2671/nmbd

注:Samba默认会启动多个端口,TCP端口139,445;UDP端口137,138;

测试SAMBA

l         使用匿名账号查看,密码为空;看到相关的工享目录;

l         使用jack账号查看,能看到自己的家目录;每个拥有SAMBA账号的用户,看到的目录都和自己的账号同名;

l         开始在客户端进行测试;利用一个账户进行测试;在测试时,遇到相关LINUX防火墙安全性问题;因此建议先关闭防火墙,或建相应的规则允许通过;如下图:

l         利用一个属于sales组的账户,访问sales共享目录,出现如下错误;

查看由于账号没有加入sales组;因为/home/sales目录所属组为sales;因此没权限访问;

[root@server ~]# ll /home

total 72

drwxrwx--- 2 root jishu 4096 Jul 6 06:21 jishu

drwx------ 2 liang liang 4096 Jul 6 06:16 liang

drwx------ 2 root root 16384 Jun 26 08:43 lost found

drwxrwx--- 2 root users 4096 Jul 6 01:16 public

drwxrwx--- 2 root sales 4096 Jul 6 02:30 sales

将账户加入相应组;

[root@server ~]# vi /etc/group

jishu:x:504:jack

sales:x:505:tom

然后利用net use * /del 删除已建连接;重新用Jack账号访问;

能成功看到属于自己的私有目录;并对目录有写入权限;

l         看对技术目录有没有权限写入,测试一下;因为Jack属于技术组;因此应该对jishu目录有写入权限;

OK,测试成功;SAMBA基本配置完成;

由于服务器空间有限,还得利用quota限制用户及组的空间使用;

Quota的前提,磁盘空间必须为独立的分区;可以依据不同的用户及组来加以限制使用硬盘空间;这里以/home为例;

比如限制每个用户的hardlimit为50MB;而softlimit为40MB;

1、修改/etc/fstab, 如下图;

[root@server ~]# vi /etc/fstab

[root@server ~]# mount–a

[root@server ~]# sync;sync;sync; reboot

建立quota所需要的设置文件;

[root@server ~]# quotacheck -avug

quotacheck: Scanning /dev/hda6 [/home] quotacheck: Cannot stat old user quota file: No such file or directory

quotacheck: Cannot stat old group quota file: No such file or directory

quotacheck: Cannot stat old user quota file: No such file or directory

quotacheck: Cannot stat old group quota file: No such file or directory

done

quotacheck: Checked 10 directories and 21 files

quotacheck: Old file not found.

quotacheck: Old file not found.

[root@server ~]#

以上提示为找不到相关设置文件;只能自行建立;

[root@server ~]# touch /home/aquota.user; touch /home/aquota.group

[root@server ~]# quotacheck -avug

quotacheck: Scanning /dev/hda6 [/home] done

quotacheck: Checked 10 directories and 23 files

[root@server ~]#

启动quota

[root@server ~]# quotaon -av

/dev/hda6 [/home]: group quotas turned on

/dev/hda6 [/home]: user quotas turned on

[root@server ~]#

设置用户磁盘配额;

[root@server ~]# edquota -u jack

磁盘配额也基本完成;如果要对组进行配额,就执行以下命令;这里就不多言了;

[root@server ~]# edquota -g jishu

所有的配置步骤基本完成,由于在学习阶段;希望博友们多指教不足之处,并提相关建议,博主在此有礼了,THX;