6、Samba 文件共享服务

1.Samba 服务基础

SMB(Server Message Block),服务消息块

CIFS(Common Internet File System),通用互联网文件系统

Samba 项目:http://www.samba.org

1.1.Samba 服务器的主要程序

smbd:提供对服务器中文件、打印资源的共享访问(TCP 139、445)

nmbd:提供基于 NetBIOS 主机名称的解析(UDP 137、138)

1.2.Samba 的配置目录及文件

/etc/samba/

/etc/samba/smb.conf

配置文件检查工具:testparm

1.3.主配置文件 smb.conf

smb.conf 文件的配置内容

[global]:全局设置,对所有共享目录生效
[homes]:用户目录共享设置
[printers]:打印机共享设置
[myshare]:自定义名称的共享目录设置

辅助配置内容

注释行:以 # 号开头
配置样例行:以 ; 号开头
结合 grep 命令可以提取有效配置行
  grep -v "^#" smb.conf |grep -v "^;" |grep -v ^$(查有效信息)

常见全局配置项含义

workgroup:所在工作组名称
server string:服务器描述信息
security:安全级别
  user:通过用户验证访问
  server:通过另外一台服务器帮你进行验证(独立主机)
  domain:域,可以将验证分配给其他服务器进行验证(域控) log file:日志文件位置,%m 变量表示客户机地址 passwd backend:设置共享账户文件的类型

常见共享目录配置项的含义

comment:对共享目录的注释、说明信息
path:共享目录在服务器中对应的实际路径(需要)
browseable:该共享目录在"网上邻居"中是否可见
guestok:是否允许所有人访问吗,等效于 public(需要)
writable:是否可写,与 readonly 的作用相反(需要)

1.4.用户访问 Samba

建立 Samba 用户数据库文件:默认数据库文件位于 /var/lib/samba/private/passdb.tbd

设置用户访问授权

新建共享目录与共享用户
修改 smb.conf 配置文件,添加名为 tools 的共享目录
重新加载 smb.conf 文件,或重启 smb 服务

确定用户访问权限

设置目录权限
设置上传文件和目录的默认权限

2.小实验-1

centos(SAMBA:192.168.3.1)-Windows(192.168.3.2)

cd /run/media/root/Centos\ 7\ x86_64/Packages/
rpm -ivh samba-4.2.3-10.el7.x86_64.rpm

建立 Samba 用户数据库文件
useradd zhangsan
pdbedit -a -u zhangsan #这里设置密码
systemctl start smb
systemctl start nmb
此时Windows访问:\\192.168.3.1 能够使用
Windows 访问 samba 共享后,清楚登录信息:net use * /del /y

设置共享目录用户访问授权:chmod 777 /share
设置上传文件和目录的默认权限:/etc/samba/smb.conf
  directory mask = 0755(默认权限)
  create mask = 0644(默认权限)
  配置权限
  valid users = zhangsan,@zhangsan #配置可读用户
  write list = admin #配置可写用户
service smb reload #重启 smb.conf 文件

共享账号映射(别名)
文件:/etc/samba/smbusers
  zhangsan = zs
启用映射账号:/etc/samba/smb.conf
[global]
  username map = /etc/samba/smbusers
service smb reload #重启服务

访问地址限制:一般用在全局配置 [global] 部分(/etc/samba/smb.conf)
hosts allow 配置项:仅允许
hosts deny 配置项:仅拒绝
示例:
[global]
  hosts allow = 192.168.4. 173.17.(网段地址:173.17. 或 173.17.0.0/255.255.0.0,单个地址用空格隔开)
service smb reload #重启服务

linux 访问共享文件夹
smbclient:查看及登录使用共享
smbclient -U zhangsan -L IP #查看共享了哪些目录
smbclient -U zhangsan //IP/tools #进入共享目录
登入后相关命令:
lcd:切换本地目录
cd:切换 smb 目录
mget:一次下载多个文件
mput:一次上传多个文件
将共享目录挂载到本地的一个目录下,就可以使用 cp 拷贝了
mkdir /media/smbdir
mount -o username=zhangsan //IP/tools /media/smbdir

3.实验-2

要求:

创建共享目录:share 和 manager

创建访问用户:admin zhangsan jingli1 jingli2

创建访问组:manager

权限需求1:share 可以被所有人访问下载,但是只有 admin 可以上传

权限需求2:manager 目录只有属于 manager 组的用户和 admin 可以访问下载,其他人无权限访问,而 admin 除了下载还有上传权限

    share目录 manager目录
管理员 admin 读写 读写
经理组 manager组 只读 只读
其他人 zhangsan 只读

 

实现:

systemctl start smb
systemctl start nmb

共享名和共享目录名不一定要一致
mkdir /share /manager

useradd admin
useradd zhangsan
useradd jingli1
useradd jingli2

pdbedit -a -u admin
pdbedit -a -u zhangsan
pdbedit -a -u jingli1
pdbedit -a -u jingli2

groupadd -g 1500 manager
gpasswd -M jingli1,jingli2 manager

chmod 777 /share/ /manager/
vim /etc/samba/smb.conf(末尾添加)
  [share1]
  path = /share #共享目录路径
  public = yes
  read only = yes #设置只读
  write list = admin #设置只有 admin 可写(多个用户逗号隔开)
systemctl restart smb
systemctl restart nmb

vim /etc/samba/smb.conf
  [manager1]
  path = /manager
  public = no
  read noly = yes
  valid users = admin,@manager #定义可读用户,组名前加@
  write list = admin
systemctl restart smb
systemctl restart nmb

 

posted @ 2024-04-11 15:05  落落的学习  阅读(332)  评论(0编辑  收藏  举报