samba 服务实现在windows共享文件

摘要:
有四个安全级别:共享:用户可以在没有帐户和密码的情况下登录到samba服务器。用户:提供服务的samba服务器负责检查帐户和密码(默认)暗语Smbpasswd在/etc/samba中,您需要手动创建此文件。目录/etc/passwd | mksmbpasswd。sh˃/etc/samba/smbpasswd使用smbpass创建虚拟用户时,必须创建系统用户tdbsam:使用数据库文件创建用户数据库。

1. 什么是samba
Samba服务类似于windows上的共享功能,可以实现在Linux上共享文件,windows上访问,当然在Linux上也可以访问到。
是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。 

2. 安装samb 所需要的包

yum install -y samba samba-client

3 主要配置文件/etc/samba/smb.conf 其内容

vim /etc/samba/smb.conf

在全局配置[global],workgroup = MYGROUP 改为 wokgroup = WOKKGROUP 因为在windows下的默认工作组为WOKRGROUP

#netbios name = DEANHEHIEHEI    //后面就是你在windows网络邻居里显示的主机名

security = user #这里指定samba的安全等级。关于安全等级有四种:
               share:用户不需要账户及密码即可登录samba服务器
                user:由提供服务的samba服务器负责检查账户及密码(默认)
                server:检查账户及密码的工作由另一台windows或samba服务器负责
                domain:指定windows域控制服务器来验证用户的账户及密码。
passdb backend = tdbsam # passdb backend(用户后台),samba有三种用户后台:smbpasswd, tdbsam和ldapsam.

其中

(1)smbpasswd:

该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,需要手工创建该文件。
cat /etc/passwd | mksmbpasswd.sh >/etc/samba/smbpasswd

在用smbpass创建虚拟用户,必须创建系统用户

(2)tdbsam:

使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用

在用smbpass创建虚拟用户,必须创建系统用户

smbpasswd -a 创建Samba用户,#要创建的Samba用户必须先是系统用户。

也可使用pdbedit创建Samba账户

pdbedit参数很多,列出几个主要的:
pdbedit -a username:新建Samba账户。
pdbedit -x username:删除Samba账户。
pdbedit -L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit -Lv:列出Samba用户列表详细信息。
pdbedit -c “[D]” -u username:暂停该Samba用户账号。
pdbedit -c “[]” -u username:恢复该Samba用户账号。

 

(3)ldapsam:

基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置 “passdb backend = ldapsam:ldap://LDAP Server”

 

load printers 和 cups options 两个参数用来设置打印机相关# 一般可以注释掉

hosts allow = 127. 192.168.12. 192.168.13. 172.16.# 用来设置允许的主机,如果在前面加 ”;” 则表示允许所有主机
log file = /var/log/samba/%m.log #定义samba的日志,这里的%m是上面的netbios name
max log size = 50 # 指定日志的最大容量,单位是K

[homes] 该部分内容共享用户自己的家目录,也就是说,当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。
[printers] 该部分内容设置打印机共享

 

 

实验一:要求共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读

其相应的配置文件

[global]部分 MYGROUP 改为WORKGROUP
security = user  改为 security = share

[share]
comment = share all
path = /share
browseable = yes
public = yes
writable = no

再创建共享目录:mkdir /share  ; chmodt 777 /share

启动:/etc/init.d/smb start

测试:win机器浏览器输入 file://192.168.0.22/share
或者运行栏输入:
\192.168.0.22

 

实验二:共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写

[global]
workgroup = WORKGROUP
server string = Samba Server Version %v
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw

[share]
comment = share for users
path = /share
browseable = yes
writable = yes
public = no

再创建共享目录:mkdir /share  ; chmodt 777 /share

创建系统账号:
useradd user1
useradd user2
添加user1/user2为samba账户:
pdbedit -a user1
pdbedit -a user2
列出samba所有账号: pdbedit –L
重启服务 service smb restart
测试:浏览器输入
file://192.168.0.22/share

扩展:在linux 去共享samba服务的文件

(1)安装客户端软件 yum install -y samba-client
命令格式:smbclient //IP/共享名 -U 用户名
如:smbclient //127.0.0.1/share  如果是匿名访问可以省略掉-U

进入后 可以使用 ? 查看可以使用的命令

(2)安装文件系统 yum install –y cifs-utils

mount挂载samba目录:mount -t cifs //192.168.176.253/share  /mnt -o username=user1,password=123456

主机此时在在挂再的/mnt目录下创建文件,发现文件权限是samb的系统用户、用户组

 

samba 常见的errors: (1)共享目录没有创建

                               (2)在你们匿名共享时,配置文件public= yes 不能写成no

再者可以linux通过telnet 或者ssh远程登录samb服务端进判断


免责声明:文章转载自《samba 服务实现在windows共享文件》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Delphi下使用指针的简单总结(指针的赋值,数组和指针的转换,函数指针的使用)最大匹配、最小顶点覆盖、最大独立集、最小路径覆盖(转)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

mysqldump常用操作

1.导出整个数据库 mysqldump -u 用户名 -p 数据库名 > 导出的文件名 mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql 2.导出一个表 mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名mysqldump -u wcnc -p smgp_apps_wcnc...

【讲座】朱正江——基于LC-MS的非靶向代谢组学

本次课程主题为《基于LC-MS的非靶向代谢组学》,主要分为代谢组学简介、代谢组学技术简介、非靶向代谢组学方法和数据采集、非靶向代谢组学数据分析和代谢物结构鉴定几个方面。 一、代谢组简介 基因组学——Whatcanhappen;转录组学——Whatappearstobehappening;蛋白组学——Whatmakeithappen;代谢组学——What...

sqlserver 数据库区分大小写设置

SQL SERVER 2000/2005中默认不区分大小写,可以通过collate Chinese_PRC_CS_AS来要求区分大小写,可以通过collate Chinese_PRC_CI_AS恢复默认的不区分大小写 默认情况下,SQL Server不区分大小写,如果数据表TEST的TNAME列中有数据“abcd”和“Abcd”, 如果使用查询语句:sel...

HadoopDB:混合分布式系统

HadoopDB 是一个 Mapreduce 和传统关系型数据库的结合方案,以充分利用 RDBMS 的性能和 Hadoop 的容错、分布特性。2009 年被 Yale 大学教授 Abadi 提出,继而商业化为 Hadapt,据称从 VC 那儿拉到了 10M 刀投资。 本文是对 HadoopDB 论文的总结。其中不免掺杂些自己的不成熟想法,更详细的内容,还...

Linux 安装oracle10g 配置dataguard 介绍和步骤

        DataGuard是甲骨文推出的一种高可用性数据库方案,在Oracle 8i之前被称为Standby Database。从Oracle 9i开始,正式更名为Data Guard。它是在主节点与备用节点间通过日志同步来保证数据的同步,可以实现数据库快速切换与灾难性恢复。Data Guard只是在软件上对数据库进行设置,并不需要额外购买任何组件...

在SQLSERVER企业管理器中如何创建触发器

下面将分别介绍在MS SQLServer 中如何用SQL Server 管理工具Enterprise Manager 和Transaction_SQL 来创建触发器。在创建触发器以前必须考虑到以下几个方面: CREATE TRIGGER 语句必须是批处理的第一个语句; 表的所有者具有创建触发器的缺省权限,表的所有者不能把该权限传给其它用户; 触发器...