linux怎么配置samba服务器

linux怎么配置samba服务器,第1张

1samba服务器目录
企业数据目录:/companydata
公共目录:/companydata/share
销售部目录:/companydata/sales
技术部:/companydata/tech
2企业员工情况:
总经理:gm
销售部:销售部经理 redking、员工 sky、员工 jane
技术部:技术部经理 michael、员工 bill、员工 joy
3搭建samba文件服务器,建立公共共享目录,允许所有人访问,权限为只读,为销售部和技术部分别建立单独的目录,只可以总经理和相应部门员工访问,并且公司员工禁止访问非本部门的共享目录。

案例解析:
1需求分析
对于建立公共目录public字段就可以实现匿名访问,员工只能访问本部门的共享目录,禁止访问非本部门的共享目录,可以通过设置目录共享字段“browseable = no”及字段“valid users”来实现其隐藏功能和相应的访问权限。这样设置不能很好得解决同一目录多种需求的权限设置,所以需要建立独立配置文件,为每个部门建立一个组后并为每个组建立配置文件来实现隔离用户权限会比较灵活。
2 解决方案
1)建立各部门专用共享目录
使用mkdir建立需求的共享目录以便分门别类的存储相应资料。
[root@RHEL ~]#mkdir /companydata
[root@RHEL ~]#mkdir /companydata/share
[root@RHEL ~]#mkdir /companydata/sales
[root@RHEL ~]#mkdir /companydata/tech
同时设置/companydata共享目录的用户权限
[root@RHEL ~]#chmod –R 777 /companydata
2)添加samba服务器描述及设置smbpasswd文件
默认/etc/samba/目录下没有smbpasswd文件,要先关闭samba的tdbsam验证。
解决方法:在smbconf文件中注释掉passdb backend = tdbsam 一行,为了指定samba用户的验证我们加上这一条smb passwd file = /etc/samba/smbpasswd,然后保存退出。
3)添加用户和组
先建立销售部组sales,技术部组tech,然后使用useradd命令添加总经理帐号gm及各个员工的帐号并加入相应的用户组。
[root@RHEL ~]#groupadd sales
[root@RHEL ~]#groupadd tech
[root@RHEL ~]#useradd gm
[root@RHEL ~]#useradd –g sales redking
[root@RHEL ~]#useradd –g sales sky
[root@RHEL ~]#useradd –g sales jane
[root@RHEL ~]#useradd –g tech michael
[root@RHEL ~]#useradd –g tech bill
[root@RHEL ~]#useradd –g tech joy
接着使用smbpasswd命令添加samba用户:
[root@RHEL ~]#smbpasswd –a gm
New SMB password:
Retype new SMB password:
Added user gm
[root@RHEL ~]#smbpasswd –a redking
New SMB password:
Retype new SMB password:
Added user reding
[root@RHEL ~]#smbpasswd –a sky
New SMB password:
Retype new SMB password:
Added user syk
[root@RHEL ~]#smbpasswd –a jane
New SMB password:
Retype new SMB password:
Added user jane
[root@RHEL ~]#smbpasswd –a michael
New SMB password:
Retype new SMB password:
Added user michael
[root@RHEL ~]#smbpasswd –a bill
New SMB password:
Retype new SMB password:
Added user bill
[root@RHEL ~]#smbpasswd –a joy
New SMB password:
Retype new SMB password:
Added user joy
4)配置smbconf文件
(1)建立单独配置文件
用户配置文件使用用户名命令,组配置文件使用组名命令。
[root@RHEL ~]#cp /etc/samba/smbconf /etc/samba/gmsmbconf
[root@RHEL ~]#cp /etc/samba/smbconf /etc/samba/salessmbconf
[root@RHEL ~]#cp /etc/samba/smbconf /etc/samba/techsmbconf
(2)设置主配置文件smbconf
配置smbconf主配置文件,在global节点中添加相应字段,确保samba服务器的主配置文件可以调用独立的用户配置文件和组配置文件。
include = /etc/samba/%Usmbconf表示使samba服务器加载/etc/samba目录下格式为“用户名smbconf”的配置文件。
include = /etc/samba/%Gsmbconf表示使samba服务器加载/etc/samba目录下格式为“组名smbconf”的配置文件。
设置共享目录/companydata/share
添加如下内容:
[public]
comment=public data
path=/companydata/share
public=yes
5)设置总经理gm配置文件
[root@RHEL ~]#vim /etc/samba/gmsmbconf
添加如下内容:
[sales]
comment=sales data
path=/companydata/sales
writable=yes
valid users=gm

[tech]
comment=tech data
path=/companydata/tech
writable=yes
valid users=gm
6)设置销售部组sales配置文件
[root@RHEL ~]#vim /etc/samba/salessmbconf
添加如下内容:
[sales]
comment=sales data
path=/companydata/sales
writable=yes
valid users=@sales,gm
7)设置技术部组tech配置文件
[root@RHEL ~]#vim /etc/samba/techsmbconf
添加如下内容:
[tech]
comment=tech data
path=/companydata/tech
writable=yes
valid users=@tech,gm
8)开启samba服务
[root@RHEL ~]#service smb start
9)测试
分别用所设置账号进行测试。

当然是使用Samba服务程序来实现了。首先配置好yum源,接下来进行以下步骤:

1、安装sanba服务

[root@linuxprobe ~ ]# yum install samba
Loaded plugins: langpacks, product-id, subscription-manager
………………省略部分输出信息………………

2、创建用于访问共享资源的账户信息。

[root@linuxprobe ~]# id linuxprobe
uid=1000(linuxprobe) gid=1000(linuxprobe) groups=1000(linuxprobe)
[root@linuxprobe ~]# pdbedit -a -u linuxprobe
new password:此处输入该账户在Samba服务数据库中的密码retype new password:再次输入密码进行确认Unix username: linuxprobe
NT username:
Account Flags: [U ]
User SID: S-1-5-21-507407404-3243012                                                                            省略部分输出信息

3、创建用于共享资源的文件目录。

[root@linuxprobe ~]# mkdir /home/database
[root@linuxprobe ~]# chown -Rf linuxprobe:linuxprobe /home/database
[root@linuxprobe ~]# semanage fcontext -a -t samba_share_t /home/database
[root@linuxprobe ~]# restorecon -Rv /home/database
restorecon reset /home/database context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:samba_share_t:s0

4、设置SELinux服务与策略,使其允许通过Samba服务程序访问普通用户家目录。

[root@linuxprobe ~]# setsebool -P samba_enable_home_dirs on

5、在Samba服务程序的主配置文件中,写入共享信息。

[root@linuxprobe ~]# vim /etc/samba/smbconf 
[global]
workgroup = MYGROUP
server string = Samba Server Version %v
log file = /var/log/samba/log%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[database]
comment = Do not arbitrarily modify the database file
path = /home/database
public = no
writable = yes

6、重启samba服务并清空iptables防火墙检验配置效果。

[root@linuxprobe ~]# systemctl restart smb
[root@linuxprobe ~]# systemctl enable smb
ln -s '/usr/lib/systemd/system/smbservice' '/etc/systemd/system/multi-usertargetwants/smbservice'
[root@linuxprobe ~]# iptables -F
[root@linuxprobe ~]# service iptables save
iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ]

以上就是samba服务的配置方法,参考了“linux就该这么学”的第12章节,更详细的配置方法你可以百度这本书直接在官网看下网页版。

1虚拟机网络切换了,因此在window访问的时候需要用新的ip访问,但是访问时发现忘记了原来设置的用户名和密码都是啥

2因此采用 cat /etc/passwd 查看用户,回忆到用户名是lvyk,然后密码忘记了,决定直接修改密码,passwd lvyk ,密码修改成功

3然后使用新的密码登录samba的时候总是提示 密码错误,很是费解,然后使用scp工具登录测试下,可以登录,证明用户名和密码是没有问题的

4这里刚开始怀疑是windows协议传输因为本地安全将字符做了转化,考虑到之前使用samba是正常的,排除这个选项。于是查知是忘记了一件事,就是将用户的新访问用户方式添加到samba,smbpasswd -a lvyk ,然后再在windows访问就成功了

1、网络没有连通。

    分析及解决办法:启用ping服务,可通过ping命令测试,这个就不多讲了。

    2、samba服务没有成功启动。

    分析及解决办法:通过service smb restart重启测试,如果启动出错,根据错误提示分析解决或重新安装samba。

    3、你的用户名和密码真的错了。

    分析及解决办法:这个问题简单吧,还用说吗!

    4、限制访问配置问题。

    分析及解决办法:在配置文件sambaconf中启用了interfaces或hosts allow,但所限制的网段或IP正式你访问使用的机器,是否为此问题造成可通过在行hosts allow = 和 interfaces = 前加;注释掉这些设置进行测试。

    5、网络工作组设置问题。

    分析及解决办法:不在同一个网络工作组,查看sambaconf行workgroup = /你设置的网络工作组名/和你访问所使用的机器的网络工作组名一致,如不一致,可能会出现无法访问。

    6、win7系统访问问题。

    分析及解决办法:XP下可以正常访问,win7无法访问,进行如下设置:

    首先,单击[开始]——[运行] 输入 “secpolmsc”打开管理工具,展开“本地策略(Local Policies)”。

    然后,单击“安全选项(Security Options)”。 双击“网络安全:LAN Manager 身份验证级别(Network Security: LAN Manager authentication level)”

    最后,单击列表中:发送LM和NTLMv2,如果已协商,则使用NTLMv2协议(LM and NTLM – use NTLMV2 session security if negotiated)。

    7、虚拟用户映射问题。

    分析及解决办法:可能是用户虚拟用户映射问题,将sambaconf中行username map = /etc/samba/smbusers 用;注释掉进行测试,如果每个windows用户在samba服务器中有帐户这个可以不设。

    8、samba用户问题。

    分析及解决办法:samba用户没有创建或激活,可通过以下方法解决:

    添加用户:useradd 你的用户

    把用户添加到samba中:smbpasswd -a 你的用户

    激活用户:smbpasswd -e 你的用户。

1、首先需要登入安装了Linux系统的计算机,安装Samba。Fedora发行版一般使用yum工具安装Samba服务器,可以使用“rpm -q samba”查询Samba服务器是否已经安装,当然,也可以直接使用“yum install samba”安装Samba服务器。如果Samba已经安装,yum会给出提示,否则按照步骤,输入“y”就可以直接下载安装Samba服务器了。2、安装完成之后,需要查看一下Samba是否已经加入到自启动服务。使用“/sbin/chkconfig | grep smb”和“/sbin/chkconfig | grep nmb”命令可以查看smb和nmb是否加入到系统服务。(SMB是Samba共享服务,nmb是NetBIOS服务,为配合Windows使用,他们两个服务都要加入到系统服务中)。然后再使用“/sbin/service smb status”和“/sbin/service nmb status”查看服务是否已经启用。
3、接下来就要配置samba服务器了。编辑修改“/etc/samba/smbconf”,设置共享和认证参数。如图就是我在用的Samba用户共享典型配置文件。编辑修改完成之后,可以使用“testparm /etc/samba/smbconf”验证配置文件的有效性,以免因配置文件错误而导致Samba服务无法启动。
4、验证OK的话,接下来就是添加Samba共享用户了,使用“/usr/bin/smbpasswd -a <用户名称>”的方式添加Samba共享用户,并为每个用户设置Samba共享认证的密码。
5、到这里基本上Samba服务器配置就完成了,如果上述步骤中smb和nmb服务没有自动添加到系统服务中,可以使用“/sbin/chkconfig --level 2345 smb on”和“/sbin/chkconfig --level 2345 nmb on”将其加入到系统服务中,其中2345是Linux的运行级别,一般都不会超出这几个运行级别。然后我们就可以使用“/sbin/service smb restart”和“/sbin/service nmb restart”重启服务了。
6、重启完成之后,Windows就可以访问用户共享了。在Windows资源管理器输入“\\共享IP地址\共享用户”,就可以访问用户自己目录下的全部文件了。
7、为了测试共享权限,我们进入用户共享目录,尝试在Windows资源管理器中创建一个“test”目录。
8、回到Linux的用户目录,我们就可以看到,Windows和Linux查看到的用户共享目录是一致的。(你可能觉得看到的文件和目录说不一致,这是因为我的Windows设置了显示隐藏文件和文件夹的缘故。)


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

原文地址: https://www.outofmemory.cn/yw/13380373.html

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

发表评论

登录后才能评论

评论列表(0条)

保存