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配置的,仅供大家参考!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)