Samba配置
最近在Fedora 18上用samba做NAS学习,做了点笔记:(此samba版本为 4.0.6)
samba 配置步骤:
1.修改Selinux ; setenforece 0;
2. smb.conf 全局与指定共享 设置;
3.本地资源权限配置; chmod xxx /共享目录 ; (最终samba共享权限由samba配置权限与linux权限共同决定)
4.检查smb.conf 配置; testparm ;
5.重启samba 服务; systemctl restart smb.service;
以下为几种配置模式:
[homes]
comment = Home Directories
browseable = no
writable = yes
valid users = %S
create mode = 0777
directory mode = 0777
每个用户可以访问自己的宿主目录,并且只有该用户能访问宿主目录,并具有完全的权限,而其他人不能看到你的宿主目录。
[share]
comment = public1
path = /home/samba/public1
public = no
valid users = @group1,@group2,cc ( 如果没有此行,其它人也可以读 )
write list = cc
read list = @goup1,@group2
printable = no
browseable = no
建立一个public1的文件夹,希望group1组和group2组的人有读权限,cc有读写的权限。而且不显示(外人看不到)。
[exchage]
comment = Exchange File Directory
path = /home/samba/exchange
public = yes
writable = yes
chmod 1777 /home/samba/exchange
#建立一个文件交换目录exchange,所有人都能读写,但每个人不能删除别人的文件。
[public]
comment = Read Only Public
path = /home/samba/public
public = yes
read only = yes
建议一个公共的只读文件夹public,所有人只读这个文件夹的内容。
chcon -R -t samba_share_t /directory //改变目录的安全上下文
注意:(这是个人测试的情况,不敢确定对其它环境有效)
1.选 项优先级:
invalid users (valid users) -->writable -->write list -->read list (read only)
public --> guest ok
当readonly、read list、writable及write users在对某一共享资源的设置发生冲突时,使用以下规则。
(1) readonly、writeable发生冲突时,在后面的参数优先。如下面例子中所有用户对smbtest不可写。
- [smbtest]
- comment = This is smb test
- path = /test
- readonly = yes
- writeable = no
(2)readonly、write list发生冲突时,除write list指定用户可写外,其他用户只读。如下面例子中tonyzhang可写,其他用户只读。
- [smbtest]
- comment = This is smb test
- path = /test
- readonly = yes
- write list = tonyzhang
(3)read list、writable发生冲突时,除read list指定用户只读外,其他用户可写。如下面例子中tonyzhang只读,其他用户可写。
- [smbtest]
- comment = This is smb test
- path = /test
- writable = yes
- read list = tonyzhang
(4)read list、write list发生冲突时,write list优先。如下面例子中tonyzhang可写。
- [smbtest]
- comment = This is smb test
- path = /test
- write list = yes
- read list = tonyzhang
(5)writeable = no时,write list的配置无效。如下面例子中tonyzhang及tomyang不可写。
- [smbtest]
- comment = This is smb test
- path = /test
- writeable = no
- write list = tonyzhang tomyang
(6)同时配置writeable=yes、write list时writeable=yes无效。如下面例子中只有tonyzhang及tomyang可写。
- [smbtest]
- comment = This is smb test
- path = /test
- writeable = yes
- write list = tonyzhang tomyang
2. 有read list /write list 时一定要有valid users /invalid users,否则其他人(不在read list /write list 中)也可以读(此时public 无效)。
public = No
valid users = @smbusr,@caiwu
read only = No /Yes (只有smbusr,caiwu组的人能写/读)
write list = @smbusr
read list = @caiwu
public = No (此时只有smbuse组的人可写,caiwu组的人可读,其他用户也可读,故要屏蔽其他用户,需要加上valid users /invalid users)
Samba预设变量
变量名 | 作 用 | 变量名 | 作 用 |
%S | 当前服务名(如果存在) | %L | Samba服务器的 NetBIOS名 |
%P | 当前服务的根目录 (如果存在) | %N | NIS服务器主机名 |
%u | 当前服务的用户名 (如果存在) | %p | NIS服务器家目录 |
%g | 当前用户的初始组 | %R | 采用协议等级 |
%U | 当前连接的用户名 | %d | Samba服务的进程ID |
%G | 当前连接用户的初始组 | %a | 访问Samba服务器的 客户端系统 |
%D | 当前用户所属域或工作组名称 | %I | 访问Samba服务器的 客户端IP地址 |
%H | 当前服务用户的家目录 | %M | 访问Samba服务器的 客户端主机名 |
%v | Samba服务器的版本 | %m | 访问Samba服务器的 客户端NetBIOS名 |
%h | Samba服务器的主机名 | %T | Samba服务器日期及时间 |
当在btrfs 文件系下做samba 共享时:要确定 chmod xxxx 目录; 权限配置
以下是一个BTRFS的一些操作:
Btrfs
#mkfs.btrfs /dev/sda5
#mkdir /btrfsdisk
#mount – t btrfs /dev/sda5 /btrfsdisk
#btrfs-convert /dev/sdb2 //Ext3/4 ->Btrfs
#btrfsctl – r -300M /btrfsdisk //文件系统动态 缩小/扩大
#mkfs.btrfs –d raid1 /dev/sda6 /dev/sda7 //将数据配置为raid1
#mkfs.btrfs –m raid1 /dev/sda6 /dev/sda7 //将元数据配置为raid1
#mount – t btrfs /dev/sda6 /btrfsdisk
#btrfs-vol – a /dev/sda8 /btrfsdisk //为文件系统添加新的磁盘设备
#mount – t btrfs – o SSD /dev/sda5 /btrfsdisk //打开btrfs针对ssd的优化
#mount – t btrfs – o compress /dev/sda5 /btrfsdisk //打开压缩功能
#btrfsctl – c /btrfsdisk //同步文件系统 (立即执行IO)
#btrfs-debug-tree /dev/sda5 //Debug 显示btrfs元数据