红联Linux门户
Linux帮助

Linux之samba服务的简单运用

发布时间:2015-03-29 10:44:04来源:linux网站作者:linux人

能提供文件共享的常见服务:ftp, nfs,samba

在Windows中借助netbios(广播方式,主要功能是主机名解析),cifs(common internet file system),smb(service message block)来实现文件共享。


samba主要有两个进程:

nmbd:模拟netbios的功能,让linux主机能出现在Windows主机上的网上邻居里

smbd:实现文件共享功能

samba用户帐号:

必须是系统用户,但samba自己维护一个访问samba服务的专用密码。


samba安全级别:

share:允许匿名访问samba

user:提供有效的帐号密码才能访问

server:集中身份认证(提供一台专门的认证服务器)

domain:帐号和密码在DC(域控)

samba接受SELinux控制

samba支持基于IP的访问控制

samba通过[homes]支持本地用户通过samba访问自己的家目录

Web GUI: swat (xinet)


建立一个samba服务器,达到如下要求:

1、每个用户登陆samba后都有一个自家的目录,对自家目录拥有rwx的权限,且限定其所使用的空间大小;

2、每个用户登陆后都可查看到一个公共的共享目录,此目录对普通的用户只有读取权限;

思路:

1、准备一个独立的分区,此分区启用磁盘配额,对各个用户设置配额;

2、编辑smb.conf配置文件,增加独立的共享目录;

samba用户家目录及共享目录的准备:

事先准备好一个独立的分区。要想启用quota,那必须是单独的分区,所以得准备一个分区,并挂载到系统中

[root@bogon ~]# mkdir /samba

[root@bogon ~]# blkid /dev/sda4  #/dev/sda4是一个独立的分区

/dev/sda4: LABEL="SAMBA_HOME" UUID="504627df-fa43-4768-9459-6f01ef991e2e" TYPE="ext4"

[root@bogon ~]# vim /etc/fstab  #在最后加入下边一行

UUID=504627df-fa43-4768-9459-6f01ef991e2e    /sambahome                ext4      defaults,usrquota,acl    0 0

注:“acl”的意思开启挂载分区的访问控制,便于使用“setfacl命令”,不然会报Operation not supported”错误。

[root@bogon ~]# mount -a

[root@bogon ~]# mount

/dev/sda2 on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")

/dev/sda1 on /boot type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

/dev/sda4 on /sambahome type ext4 (rw,usrquota,acl)

[root@bogon ~ ]# mkdir /samba/{home,share}

普通用户及管理用户的创建:

[root@bogon ~]# useradd -c "samba user" -d /samba/home/samba1 samba1

[root@bogon ~]# smbpasswd -a samba1

[root@bogon ~]# useradd -c "samba admin user" -d /samba/home/sambaadmin sambaadmin

[root@bogon ~]# smbpasswd -a sambaadmin


samba安装配置:

系统环境:

[root@bogon ~]# cat /etc/RedHat-release

CentOS release 6.4 (Final)

[root@bogon ~]# uname -r

2.6.32-358.el6.x86_64

[root@bogon ~]# yum -y install samba

[root@bogon ~]# yum -y install samba-client  #samba客户端工具单独安装

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

[root@bogon samba]# ls #主配置文件为smb.conf

lmhosts    smb.conf    smbusers

[root@bogon samba]# cp smb.conf smb.conf.back

[root@bogon samba]# vim smb.conf

说明:smb.conf配置文件在我们的一般运用中,要修改的地方不多,一般在[global]中修改”workgroup = MYGROUP“

为”workgroup = WORKGROUP“即可,然后在最后的”Share Definitions“增加相应配置如下:

[sambashare]

comment = sambashare

path = /samba/share

public = yes

writable = yes

write list = +sambaadmin    #只有sambaadmin这个组中的成员才能有写的操作

guest ok = yes

browseable = yes

[root@bogon ~]# setfacl -m u:sambaadmin:rwx /samba/share/  #设置samba管理用户对share目录的权限。

[root@bogon ~]# for i in nmb smb;do service $i start;done  #启动服务

[root@bogon ~]# smbclient -L 192.168.1.200 -Usamba1  #用客户端工具本地测试服务器已共享了哪目录

[root@bogon ~]# smbclient //192.168.1.200/samba1 -Usamba1  #进入samba的交互模式


启用磁盘配额:

[root@bogon ~]# yum list | grep quota

quota.x86_64 1:3.17-20.el6 base

quota-devel.i686 1:3.17-20.el6 base

quota-devel.x86_64 1:3.17-20.el6 base

[root@bogon ~]# yum -y install quota

[root@bogon ~]# quotacheck -cvu /samba/

[root@bogon ~]# ls /samba/

aquota.user    home    share

[root@bogon ~]# edquota samba1  #对普通用户启动配额,设置空间的使用限制为10MB。

Disk quotas for user samba1 (uid 500):

Filesystem  blocks    soft      hard        inodes        soft        hard

/dev/sda4  20          0      10240            5                0          0 #这里的单位是KB

[root@bogon ~]# quotaon -auv  #激活quota的功能

[root@bogon ~]# for i in nmb smb;do service $i restart;done  #重启服务


接下来就可以在Windows端进行测试了。

注意:

samba有两个守护进程:smbd监听139TCP端口

nmbd监听137和138UDP端口

smbd进程的作用是处理smb请求包,负责用户验证和文件共享;nmbd进程的作用是处理浏览共享各计算机名称解析。

所在Windows下用"运行-->\\IP地址"的方式来访问共享时,可以不启用nmb这个服务,也一样可以使用共享资源。

在Windows 下用命令"net use"查看已建立的连接,用“net use \\192.168.1.200\IPC$ /delete”命令清除已建立的连接。

[root@bogon ~]# repquota -a  #打印出各个用户的配额使用报告

*** Report for user quotas on device /dev/sda4

Block grace time: 7days; Inode grace time: 7days

Block limits                                                                        File limits

User  used  soft        hard          grace          used          soft          hard              grace

-------------------------------------------------------------------------------------------------------

root --   12                0              0                                      3                0              0

samba1 --  3800              0            10240                                40                0              0

sambaadmin --    16                0            0                                        5                0              0


至此结束!