Samba服务器搭建配置
本次环境:
服务端-centos6.8-192.168.2.200
客户端1-centos6.8-192.168.2.201
客户端2-Windows7-192.168.2.104
假设条件如下:
- 使用者认证层级设定 (security) 为: user
- 用户密码档案使用 TDB 数据库格式,默认档案在 /var/lib/samba/private/ 内;
- 密码必须要加密;
- 每个可使用 samba 的使用者均拥有自己的家目录;
- 设定三个用户,名称为 smb1, smb2, smb3 ,且均加入 users 为次要群组。此三个用户 Linux 密码为 1234, Samba 密码则为 4321;
- 分享 /home/project 这个目录,且资源名称取名为: project;
- 加入 users 这个群组的使用者可以使用 //IP/project 资源,且在该目录下 users 这个群组的使用者具有写入的权限。
所需要的软件与配置文件如下:
- samba: 这个软件主要提供了 SMB 服务器所需的各项服务程序 (smbd 及 nmbd)、 的文件档、以及其他与 SAMBA 相关的 logrotate 配置文件及开机默认选项档案等;
- samba-client: 这个软件则提供了当 Linux 做为 SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 文件格式的 mount.cifs、 取得类似网芳相关树形图的 smbtree 等等;
- samba-common: 这个软件提供的则是服务器与客户端都会使用到的数据,包括 SAMBA 的主要配置文件 (smb.conf)、语法检验指令 (testparm) 等等;
这三个软件你都得要安装才行喔!如果尚未安装的话,使用 yum 去装好它吧!安装完毕之后,你可以依序察看一下 Samba 的软件结构喔!与它相关的配置文件基本上有这些:
- /etc/samba/smb.conf: 这是 Samba 的主要配置文件,基本上,咱们的 Samba 就仅有这个配置文件而已,且这个配置文件本身就是很详细的说明文件了,请用 vim 去查阅它吧!主要的设定项目分为服务器的相关设定 (global),如工作组、NetBIOS 名称与密码等级等, 以及分享的目录等相关设定,如实际目录、分享资源名称与权限等等两大部分。
- /etc/samba/lmhosts: 早期的 NetBIOS name 需额外设定,因此需要这个 lmhosts 的 NetBIOS name 对应的 IP 檔。 事实上它有点像是 /etc/hosts 的功能!只不过这个 lmhosts 对应的主机名是 NetBIOS name 喔!不要跟 /etc/hosts 搞混了!目前 Samba 预设会去使用你的本机名称 (hostname) 作为你的 NetBIOS name,因此这个档案不设定也无所谓。
- /etc/sysconfig/samba: 提供启动 smbd, nmbd 时,你还想要加入的相关服务参数。
- /etc/samba/smbusers: 由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定
- /var/lib/samba/private/{passdb.tdb,secrets.tdb}: 管理 Samba 的用户账号/密码时,会用到的数据库档案;
- /usr/share/doc/samba-<版本>: 这个目录包含了 SAMBA 的所有相关的技术手册喔!也就是说,当你安装好了 SAMBA 之后,你的系统里面就已经含有相当丰富而完整的 SAMBA 使用手册了!值得高兴吧! ^_^,所以,赶紧自行参考喔!
至于常用的脚本文件案方面,若分为服务器与客户端功能,则主要有底下这几个数据:
- /usr/sbin/{smbd,nmbd}:服务器功能,就是最重要的权限管理 (smbd) 以及 NetBIOS name 查询 (nmbd) 两个重要的服务程序;
- /usr/bin/{tdbdump,tdbtool}:服务器功能,在 Samba 3.0 以后的版本中,用户的账号与密码参数已经转为使用数据库了!Samba 使用的数据库名称为 TDB (Trivial DataBase)。 既然是使用数据库,当然要使用数据库的控制指令来处理啰。tdbdump 可以察看数据库的内容,tdbtool 则可以进入数据库操作接口直接手动修改帐密参数。不过,你得要安装 tdb-tools 这个软件才行;
- /usr/bin/smbstatus:服务器功能,可以列出目前 Samba 的联机状况, 包括每一条 Samba 联机的 PID, 分享的资源,使用的用户来源等等,让你轻松管理 Samba 啦;
- /usr/bin/{smbpasswd,pdbedit}:服务器功能,在管理 Samba 的用户账号密码时, 早期是使用 smbpasswd 这个指令,不过因为后来使用 TDB 数据库了,因此建议使用新的 pdbedit 指令来管理用户数据;
- /usr/bin/testparm:服务器功能,这个指令主要在检验配置文件 smb.conf 的语法正确与否,当你编辑过 smb.conf 时,请务必使用这个指令来检查一次,避免因为打字错误引起的困扰啊!
- /sbin/mount.cifs:客户端功能,在 Windows 上面我们可以设定『网络驱动器机』来连接到自己的主机上面。在 Linux 上面,我们则是透过 mount (mount.cifs) 来将远程主机分享的档案与目录挂载到自己的 Linux 主机上面哪!
- /usr/bin/smbclient:客户端功能,当你的 Linux 主机想要藉由『网络上的芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用 smbclient 来查看啦!这个指令也可以使用在自己的 SAMBA 主机上面,用来查看是否设定成功哩!
- /usr/bin/nmblookup:客户端功能,有点类似 nslookup 啦!重点在查出 NetBIOS name 就是了。
- /usr/bin/smbtree:客户端功能,这玩意就有点像 Windows 系统的网络上的芳邻显示的结果,可以显示类似『靠近我的计算机』之类的数据, 能够查到工作组与计算机名称的树状目录分布图!
大致的软件结构就是这样,底下就准备来讲一个简单的案例吧!这样比较好介绍配置文件项目啦!
一、服务端的搭建配置:
1.安装所需软件
[root@lys1 ~]# yum -y install samba samba-client samba-common
已加载插件:fastestmirror
设置安装进程
Determining fastest mirrors
* base: mirrors.nwsuaf.edu.cn
* extras: mirrors.aliyun.com
* updates: mirrors.aliyun.com
base | 3.7 kB :
extras | 3.4 kB :
updates | 3.4 kB :
updates/primary_db | 1.4 MB :
解决依赖关系
--> 执行事务检查
---> Package samba.x86_64 :3.6.-.el6_8 will be 安装
....................
2、设定 smb.conf 配置文件与目录权限相关之设定
[root@lys1 ~]# vim /etc/samba/smb.conf
[global]
workgroup = vbirdhouse
netbios name = vbirdserver
server string = This is vbird's samba server
unix charset = utf8
display charset = utf8
dos charset = cp950
log file = /var/log/samba/log.%m
max log size =
load printers = no # 与密码有关的设定项目,包括密码档案所在格式喔!
security = user <==这行就是重点啦!改成 user 层级
passdb backend = tdbsam <==使用的是 TDB 数据库格式! # . 分享的资源设定方面:删除 temp 加入 homes 与 project
[homes] <==分享的资源名称
comment = Home Directories
browseable = no <==除了使用者自己外,不可被其他人浏览
writable = yes <==挂载后可擦写此分享
create mode = <==建立档案的权限为
directory mode = <==建立目录的权限为 [project] <==就是那三位使用者的共享资源
comment = smbuser's project
path = /home/project <==实际的 Linux 上面的目录位置
browseable = yes <==可被其他人所浏览到资源名称(非内容)
writable = yes <==可以被写入
write list = @users <==写入者有哪些人的意思
3 、每次改完 smb.conf 你都需要重新检查一下语法正确否!
[root@lys1 samba]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max () to minimum Windows limit ()
Processing section "[homes]"
Processing section "[project]"
Loaded services file OK.
Server role: ROLE_STANDALONE
Press enter to see a dump of your service definitions [global]
dos charset = cp950
unix charset = utf8
display charset = utf8
workgroup = VBIRDHOUSE
netbios name = VBIRDSERVER
server string = This is vbird's samba server
log file = /var/log/samba/log.%m
max log size =
client signing = required
load printers = No
idmap config * : backend = tdb [homes]
comment = Home Directories
read only = No
create mask =
directory mask =
browseable = No [project]
comment = smbuser's project
path = /home/project
write list = @users
read only = No
[root@lys1 samba]#
4、建立共享目录并设置权限
[root@lys1 samba]# mkdir /home/project
[root@lys1 samba]# chgrp users /home/project
[root@lys1 samba]# chmod /home/project
[root@lys1 samba]# ll -d /home/project
drwxrws---. root users 8月 : /home/project
[root@lys1 samba]#
5、设定可使用 Samba 的用户账号与密码
[root@lys1 samba]# useradd -G users smb1
[root@lys1 samba]# useradd -G users smb2
[root@lys1 samba]# useradd -G users smb3
[root@lys1 samba]# echo | passwd --stdin smb1
更改用户 smb1 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@lys1 samba]# echo | passwd --stdin smb2
更改用户 smb2 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@lys1 samba]# echo | passwd --stdin smb3
更改用户 smb3 的密码 。
passwd: 所有的身份验证令牌已经成功更新。
[root@lys1 samba]#
6、通过pdbedit命令把刚创建的3个账号添加成Samba使用者
pdbedit:
选项与参数:
-L :列出目前在数据库当中的账号与 UID 等相关信息;
-v :需要搭配 -L 来执行,可列出更多的讯息,包括家目录等数据;
-w :需要搭配 -L 来执行,使用旧版的 smbpasswd 格式来显示数据;
-a :新增一个可使用 Samba 的账号,后面的账号需要在 /etc/passwd 内存在者;
-r :修改一个账号的相关信息,需搭配很多特殊参数,请 man pdbedit;
-x :删除一个可使用 Samba 的账号,可先用 -L 找到账号后再删除;
-m :后面接的是机器的代码 (machine account),与 domain model 有关!
[root@lys1 samba]# pdbedit -a -u smb1
new password:
retype new password:
Unix username: smb1
NT username:
Account Flags: [U ]
User SID: S-------
Primary Group SID: S-------
Full Name:
Home Directory: \\vbirdserver\smb1
HomeDir Drive:
Logon Script:
Profile Path: \\vbirdserver\smb1\profile
Domain: VBIRDSERVER
Account desc:
Workstations:
Munged dial:
Logon time:
Logoff time: 三, 2月 :: CST
Kickoff time: 三, 2月 :: CST
Password last set: 六, 8月 :: CST
Password can change: 六, 8月 :: CST
Password must change: never
Last bad password :
Bad password count :
Logon hours : FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
[root@lys1 samba]# pdbedit -a -u smb2
[root@lys1 samba]# pdbedit -a -u smb3
查询下目前已存在的samba账号
[root@lys1 samba]# pdbedit -L
smb1::
smb3::
smb2::
[root@lys1 samba]#
7、开启Samba并进行自我测试
smb2::
[root@lys1 samba]# /etc/init.d/smb start
启动 SMB 服务: [确定]
[root@lys1 samba]# /etc/init.d/nmb start
启动 NMB 服务: [确定]
[root@lys1 samba]# smbclient -L //127.0.0.1 -U smb1
Enter smb1's password: <==输入 smb1 在 pdbedit 所建立的密码
Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.6.-.el6_8] Sharename Type Comment
--------- ---- -------
project Disk smbuser's project
IPC$ IPC IPC Service (This is vbird's samba server)
smb1 Disk Home Directories
Domain=[VBIRDHOUSE] OS=[Unix] Server=[Samba 3.6.-.el6_8] Server Comment
--------- -------
VBIRDSERVER This is vbird's samba server Workgroup Master
--------- -------
VBIRDHOUSE VBIRDSERVER
[root@lys1 samba]#
自我挂载测试
[root@lys1 /]# mount -t cifs //127.0.0.1/smb1 /mnt -o username=smb1,password=4321
[root@lys1 /]# ll -a /mnt/
ls: 正在读取目录/mnt/: 权限不够
总用量
[root@lys1 /]#
分析:应该是 SELinux 的问题吧!根据 /var/log/messages 的讯息,进行如下的动作就能够处理好这个程序!
setsebool setsid setsysfont
[root@lys1 /]# setsebool -P samba_enable_home_dirs=
[root@lys1 /]# ls -a /mnt
. .. .bash_logout .bash_profile .bashrc
[root@lys1 /]#
[root@lys1 /]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lys1-lv_root
18G 900M 16G % /
tmpfs 491M 491M % /dev/shm
/dev/sda1 477M 28M 425M % /boot
//127.0.0.1/smb1 18G 900M 16G 6% /mnt
[root@lys1 /]# umount /mnt
[root@lys1 /]#
二、客户端搭建使用
1、Windows7的使用:
双击网络,启动网络发现,会发现Samba服务器:VBIRDSERVER如下图:
双击VBIRDSERVER服务器会出现等了界面,输出在Samba上创建的其中一个账户如下图:
2、linux客户端的使用
先安装客户端软件
[root@lys2 ~]# yum -y install samba-client samba-common
挂载使用
[root@lys2 ~]# mount -t cifs //192.168.2.200/smb2 /mnt -o username=smb2,password=4321,codepage=cp950
[root@lys2 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_lys2-lv_root
18G 862M 16G % /
tmpfs 491M 491M % /dev/shm
/dev/sda1 477M 28M 425M % /boot
//192.168.2.200/smb2 18G 900M 16G 6% /mnt
客户端使用正常。
去服务器看下使用log是否生成:
[root@lys1 home]# ll /var/log/samba/
总用量
drwx------. root root 8月 : cores
-rw-r--r--. root root 8月 : log.127.0.0.1
-rw-r--r--. root root 8月 : log.192.168.2.104
-rw-r--r--. root root 8月 : log.192.168.2.201
-rw-r--r--. root root 8月 : log.liuyisai-pc
-rw-r--r--. root root 8月 : log.nmbd
-rw-r--r--. root root 8月 : log.smbd
-rw-r--r--. root root 8月 : log.vbirdserver
drwx------. root root 5月 : old
OK,实验成功!!!
Samba服务器搭建配置的更多相关文章
- Samba服务器搭建与配置
Samba服务简介Samba的起源:对于windows的网上邻居来讲,共享文件的方式用的是SMB和CIFS协议以及NETBIOS协议Linux/Unix之间用的是NFS协议. 但是Linux和Wi ...
- ubuntu samba服务器多用户配置【转】
转自:http://www.2cto.com/os/201204/127043.html ubuntu samba服务器多用户配置 在/home/下有多个用户目录A.B...,现通过samba共享 ...
- Linux下SVN服务器搭建配置
Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...
- linux中Samba服务器的配置
Samba简介 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件 ...
- Ubuntu 18.04安装Samba服务器及配置
Ubuntu 18.04安装Samba服务器及配置 局域网下使用samba服务在Linux系统与Windows系统直接共享文件是一项很方便的操作.以Ubuntu为例配置samba服务,Linux服务器 ...
- Ubuntu 16.04下Samba服务器搭建和配置(配截图)
一.相关介绍 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和 ...
- CentOS 6.5下samba服务器搭建与配置
转自:http://www.centoscn.com/CentosServer/ftp/2014/1023/3989.html 写在前面: 首先关闭防火墙:service iptables stop, ...
- ubuntu 16.04 Samba服务器搭建
搭建Samba服务器是为了实现Linux共享目录之后,在Windows可以直接访问该共享目录. 现在介绍如何在ubuntu 16.04系统中搭建Samba服务. 1.安装Samba服务 sudo ap ...
- ubuntu samba 服务器搭建
最近总是在搭建 samba 环境,写在笔记上记录下以备后用,长时间不操作了肯定会忘记. Linux 版本:Ubuntu 18.04 具体的操作命令: 1. 安装: sudo apt-get insta ...
随机推荐
- MyEclipse Spring 学习总结三 SpringMVC
MyEclipse Spring 学习总结三 SpringMVC 一.SpringMVC原理 1.Springmvc 框架介绍 1)Spring 框架停工了构建Web应用程序的全功能MVC模块.Spr ...
- 【SVN】自动备份SVN仓库
仓库的位置为:C:\xxx\SVNRepo\ MyCommonUtils MyStudyProject SVN仓库备份.bat '参考连接:http://www.uml.org.cn/pzgl/201 ...
- linux下安装jdk的几种方式
1.rpm方式安装: rpm -qa | grep jdk 查看是否安装了jdk,或者用java -version查看java版本 rpm -e --nodeps java-1.7.0-openjdk ...
- properties文件简介及其常用Java操作
一.properties文件简介 java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是"键=值&q ...
- java 进程启用远程查看
用jconsole 1.启动脚本增加: JAVA_OPTS="-Djava.net.preferIPv4Stack=true -Djava.rmi.server.hostname=192.1 ...
- Distributed Transaction Coordinator 无法启动
有时候我们需要进行COM应用程序的权限设置,控制面板-->管理工具-->组件服务-->然后依此展开:组件服务-->计算机-->我的电脑-->DCOM 配置,接下来找 ...
- Android如何使用NoHttp
NoHttp 源码及Demo托管在Github欢迎大家Star: https://github.com/yanzhenjie/NoHttp NoHttp是专门做Android网络请求与下载的框架. N ...
- C# 正则表达式及返回匹配的所有结果
C# 正则表达式是在 System.Text.RegularExpressions 空间定义的,其中的 IsMatch() 方法用于返回 bool 类型,表示要搜索的字符串与传入的正则表达式是否匹配 ...
- curl 发送get post请求
function getAction($url=''){ // curl 请求一共分四步,初始化,设置属性,执行并获取结果,释放句柄 // 一.初始化 $curl = curl_init(); // ...
- IT在线笔试总结(一)
综述:IT公司的技术类笔试,主要考察: (1)知识面的广度.主要考察一些业内通用性的知识,以及某一职务所必须具备的业务知识. (2)智力测试.主要考察记忆力,思维能力和学习新知识的能力. (3)技能测 ...