linux samba服务器的配置过程,建立用户用户组,共享目录

linux samba服务器的配置过程,建立用户用户组,共享目录,第1张

groupadd salers
groupadd managers
建立用户 useradd -G salers -N mary
再把mary加入经理组 usermod -a -G mary managers
建立 salers 文件夹 mkdir -p /share/sale_data
改变用户 chown mary /share/sale_data
改变组 chgrp salers /share/sale_data
改变权限 chmod 2755 /share/sale_data
增加samba 用户 smbpasswd -a mary
chkconfig --level 35 smb on
# smbconf
[sale]
comment = SalesDirectories
path = /share/sale_data
public = yes
read=@sale
write list = mary
#改变权限 chmod 555 /share/public_data
[public]
comment = Public Directories
path = /share/public_data
public = yes

这个简单,可以参考 《鸟哥的linux私房菜 服务器》 第一个服务器就是samba服务器。。具体的来说: samba配置文件smbconf 一般你装系统的时候会默认安装samba,如果没有安装,只需要运行这个命令安装(CentOS): “yum install -y samba samba-client” Samba的配置文件为/etc/samba/smbconf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部分: [global] workgroup = MYGROUP server string = Samba Server Version %v security = user passdb backend = tdbsam load printers = yes cups options = raw [homes] comment = Home Directories browseable = no writable = yes [printers] comment = All Printers path = /var/spool/samba browseable = no guest ok = no writable = no printable = yes 主要有以上三个部分:[global], [homes], [printers]。 [global]定义全局的配置,”workgroup”用来定义工作组,相信如果你安装过windows的系统,你会对这个workgroup不陌生。一般情况下,需要我们把这里的”MYGROUP”改成”WORKGROUP”(windows默认的工作组名字)。 security = user #这里指定samba的安全等级。关于安全等级有四种: share:用户不需要账户及密码即可登录samba服务器 user:由提供服务的samba服务器负责检查账户及密码(默认) server:检查账户及密码的工作由另一台windows或samba服务器负责 domain:指定windows域控制服务器来验证用户的账户及密码。 passdb backend = tdbsam # passdb backend (用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam smbpasswd:该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。 tdbsam:使用数据库文件创建用户数据库。数据库文件叫passdbtdb,在/etc/samba中。passdbtdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的: pdbedit –a username:新建Samba账户。 pdbedit –x username:删除Samba账户。 pdbedit –L:列出Samba用户列表,读取passdbtdb数据库文件。 pdbedit –Lv:列出Samba用户列表详细信息。 pdbedit –c “[D]”–u username:暂停该Samba用户账号。 pdbedit –c “[]”–u username:恢复该Samba用户账号。 ldapsam:基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server” load printers 和 cups options 两个参数用来设置打印机相关。 除了这些参数外,还有几个参数需要你了解: netbios name = MYSERVER # 设置出现在“中国上邻居”中的主机名 hosts allow = 一二漆 一9二一陆吧一二 一9二一陆吧一三 # 用来设置允许的主机,如果在前面加”;”则表示允许所有主机 log file = /var/log/samba/%mlog #定义samba的日志,这里的%m是上面的netbios name max log size = 50 # 指定日志的最大容量,单位是K [homes]该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。 [printers]该部分内容设置打印机共享。 samba实践 注意:在试验之前,请先检测selinux是否关闭,否则可能会试验不成功。关于如何关闭selinux请查看第十五章 linux系统日常管理的“linux的防火墙”部分 一 共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读。 打开samba的配置文件/etc/samba/smbconf [global]部分 把”MY GROUP”改成”WORKGROUP” 把”security = user” 修改为“security = share” 然后在文件的最末尾处加入以下内容: [share] comment = share all path = /tmp/samba browseable = yes public = yes writable = no mkdir /tmp/samba chmod 漆漆漆 /tmp/samba 启动samba服务 /etc/initd/smb start 测试: 首先测试你配置的smbconf是否正确,用下面的命令 testparm 如果没有错误,则在你的windows机器上的浏览器中输入file://IP/share 看是否能访问 二 共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写 打开samba的配置文件/etc/samba/smbconf [global] 部分内容如下: [global] workgroup = WORKGROUP server string = Samba Server Version %v security = user passdb backend = tdbsam load printers = yes cups options = raw 然后加入以下内容: [myshare] comment = share for users path = /samba browseable = yes writable = yes public = no 保存配置文件,创建目录: mkdir /samba chmod 漆漆漆 /samba 然后添加用户。因为在[globa]中” passdb backend = tdbsam”,所以要使用” pdbedit” 来增加用户,注意添加的用户必须在系统中存在。 useradd user一 user二 pdbedit -a user一 # 添加user一账号,并定义其密码 pdbedit -a user二 pdbedit -L # 列出所有的账号 测试: 打开IE浏览器输入file://IP/myshare/ 然后输入用户名和密码 三 使用linux访问samba服务器 Samba服务在linux下同样可以访问。前提是你的linux安装了samba-client软件包。安装完后就可以使用smbclient命令了。 smbclient //IP/共享名 -U 用户名 如:[root@localhost]# smbclient //一00四陆漆/myshare/ -U user一 Password: Domain=[LOCALHOST] OS=[Unix] Server=[Samba 三0三三-三二9el5_陆二] smb: \> 出现如上所示的界面。可以打一个””列出所有可以使用的命令。常用的有cd, ls, rm, pwd, tar, mkdir, chown, get, put等等,使用help + 命令可以打印该命令如何使用,其中get是下载,put是上传。 另外的方式就是通过mount挂载了: 如: mount -t cifs //一00四陆漆/myshare /mnt -o username=user一,password=一二三四5陆 格式就是这样,要指定-t cifs //IP/共享名本地挂载点 -o后面跟username 和 password 挂载完后就可以像使用本地的目录一样使用共享的目录了

samba服务器的核心是smbd和nmbd个守护进程。根据查询相关信息显示,samba服务的资源共享是通过smbd和nmbd两个守护进程来控制的,smbd服务用来管理samba服务器对文件、打印资源的共享访问,利用TCP协议来传输数据,默认的端口为139和445。nmbd服务用来管理samba服务器工作组、NetBIOS主机名的解析,利用UDP协议开启137,138端口来实现名称解析,所以在配置防火墙时,要开放137、138、139及445端口。

据Samba项目网站声称,Samba是一组开源/免费软件套件,它为SMB/CIFS客户机提供了无缝顺畅的文件和打印服务。不像实现SMB/CIFS网络协议的其他系统(比如面向HP-UX的LM Server、面向OS/2的LAN Server或VisionFS),Samba(及其源代码)可以免费获取(最终用户不需要支付任何费用),并且允许Linux/Unix服务器和Windows/Unix/Linux客户机之间实现协同运行。

正是由于这些原因,在不同的 *** 作系统(并非仅仅只有Linux)共存的网络环境下,Samba是文件服务器的优选解决方案――而最常见的网络架构就是多个微软Windows客户机访问一台安装有Samba的Linux服务器,我们将在本文中探讨这种情形。

要注意:另一方面,如果我们的网络完全由基于Unix的客户机(比如Linux、AIX或Solaris等等)组成,可以考虑使用NFS(不过在这种情况下Samba仍是一种选择),这时NFS的速度更快。

将Samba安装在Debian和CentOS上

在我们开始着手安装之前,可以使用 *** 作系统的软件包管理系统,寻找关于Samba的信息:

在Debian上:

# aptitude show samba 

在CentOS上:

# yum info samba 

在下面这个屏幕截图中,我们可以看到“aptitude show samba”的输出结果(“yum info samba”会得到类似的结果):

现在不妨安装Samba(下面这个屏幕截图对应于安装到Debian 7 [Wheezy]服务器上的情况):

在Debian上:

# aptitude install samba 

在CentOS上:

# yum install samba 

将用户添加到Samba

如果是4x之前的版本,想将用户添加到Samba,就需要一个本地Unix帐户:

# adduser <username> 

下一步,我们需要使用带“-a”选项的smbpasswd命令,将用户添加到Samba,该选项指定随后用户名应添加到本地smbpasswd文件。系统会提示我们输入一个密码(该密码没必要与本地Unix帐户的密码一样):

# smbpassword -a <username> 

最后,我们将访问系统中用作Samba共享区的一个目录的权限授予用户xmodulo(如果需要的话,还可以将访问权限授予其他用户)。要完成这一步,只需用文件编辑器(比如Vim)打开/etc/samba/smbconf文件,浏览到文件末尾,使用描述性名称,创建一段代码(将名称括在方括号内),比如[xmodulo]:

# SAMBA SHARE  [xmodulo]  path = /home/xmodulo  available = yes valid users = xmodulo read only = no browseable = yes public = yes writeable = yes 

现在我们必须重启Samba;为了以防万一,使用testparm命令检查smbconf文件,查找有无语法错误:

# service samba restart

# testparm

要是有什么错误,testparm结束运行后,就会如实报告。

将Samba共享区映射为Windows 7 PC上的网络驱动器

鼠标右击Computer(电脑),选择“Map network drive”(映射网络驱动器):

键入安装有Samba的那台机器的IP地址,随后键入共享区的名称(这是smbconf文件中刮在单括号内的名称),并确保“Connect using different credentials”(使用不同的登录资料来连接)复选框已勾选:

输入之前用“smbpasswd -a”设置的用户名和密码:

进入到Computer(电脑),检查网络驱动器是否已正确添加上去:

为了测试一下,不妨利用Samba的参考手册页创建一个PDF文件,并将它保存到/home/xmodulo目录中:

下一步,我们可以证实该文件可以从Windows来进行访问:

我们可以使用默认的pdf阅读软件打开该文件:

最后,不妨看一下我们能否将来自Windows的一个文件保存到刚映射的网络驱动器。我们将打开changelog文件,该文件列出了Notepad++的功能特性:

然后试着将它作为一个明文文件(txt扩展名)保存到Z:\;然后,不妨看一下该文件在Linux中是否能浏览:

启用配额

第一步,我们需要证实当前内核是不是已经过编译并支持配额:

# cat /boot/config-$(uname -r) | grep -i config_quota 

每一个文件系统最多有五种配额限制可予以实施:用户软限制、用户硬限制、用户组软限制、用户组硬限制和宽限时间。

现在我们将为/home文件系统启用配额,为此在/etc/fstab文件中对应/home文件系统的那一行,将usrquota和grpquota挂载选项添加到现有的defaults选项;为了让变更生效,我们将重新挂载文件系统:

下一步,我们需要在/home中创建两个文件,它们将充当用户配额和用户组配额的数据库:分别是aquotauser和aquotagroup。之后,我们将针对启用配额的文件系统,创建当前磁盘使用表:

# quotacheck -cug /home  # quotacheck -avugm 

尽管我们已为/home文件系统启用了配额,但我们还没有对任何用户或用户组设置任何限制。检查现有用户/用户组的配额信息:

# quota -u <username> # quota -g <groupname> 

最后,后几步包括:使用quotatool命令,为每个用户及/或每个用户组指定配额(注意:可以使用edquota来执行这项任务,但quotatool更直观简单,不太容易出错)。

想为名为xmodulo的用户将软限制设置在4 MB、将硬限制设置在5 MB,并为xmodulo用户组将软限制和硬限制分别设置在10 MB和15 MB:

# quotatool -u xmodulo -bq 4M -l '5 Mb' /home  # quotatool -g xmodulo -bq 10M -l '15 Mb' /home 

我们可以在Windows 7中看到结果(400MB中398MB闲置):

1 安装iptables防火墙

安装iptables和iptables-services 
yum install iptables 
yum install iptables-services

关闭centos自带的防火墙 
systemctl stop firewalld 
systemctl mask firewalld


2 清空防火墙默认规则和自定义规则

iptables -P INPUT ACCEPT 
iptables -F 
iptables -X 
iptables -Z


3 防火墙开放samba服务所需端口和常用端口

vi /etc/sysconfig/iptables 
添加以下内容到iptables中 
-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 -m state –state NEW -m udp -p udp –dport 137 -j ACCEPT 
-A INPUT -m state –state NEW -m udp -p udp –dport 138 -j ACCEPT 
-A INPUT -p tcp –dport 22 -j ACCEPT 
-A INPUT -p tcp –dport 21 -j ACCEPT 
-A INPUT -p tcp –dport 80 -j ACCEPT 
-A INPUT -p tcp –dport 443 -j ACCEPT 
-A INPUT -p icmp –icmp-type 8 -j ACCEPT 
-A INPUT -m state –state RELATED,ESTABLISHED -j ACCEPT 
-P OUTPUT ACCEPT


4 开启iptables防火墙

注册iptables服务 
systemctl enable iptablesservice 
开启服务 
systemctl start iptablesservice 
查看状态 
systemctl status iptablesservice


5 安装和配置samba

yum install samba 
设置samba开机启动 
chkconfig smb on

vim /etc/samba/smbconf,粘贴复制以下内容 
[global] 
unix charset = gbk 
dos charset = gbk 
workgroup = img 
netbios name = img 
server string = uc 
security = user 
smb ports = 1315 1314 #很重要,貌似阿里云屏蔽了samba默认的端口

[img] 
comment = uc 
path=/home/xuhaoguang/work 
create mask = 0664 
directory mask = 0775 
writable = yes 
valid users = work #登录samba服务的账号 
browseable = yes

给samba添加work账号: 
smbpasswd -a work

启动samba: 
service smb restart


6 客户端连接samba服务

mac: 
command +k ; smb://ip_address:1314

windows: 
运行输入:\Samba服务器的ip

      我是按照上面的步骤完成阿里云服务器上的samba配置的,仅供大家参考!


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/13412973.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-31
下一篇 2023-07-31

发表评论

登录后才能评论

评论列表(0条)

保存