SAMBA 这个文件系统是架构在 NetBIOS (Network Basic Input/Output System, NetBIOS) 这个通讯协议上面所开发出来的
在同一个群组当中,NetBIOS Name 必需要是独一无二的喔!跟 Hostname 是不一样的概念
联机模式:
peer/peer (对等模式) 及 domain model (主控模式)
后者,所有的账号与密码都放置在一部主控计算机 (Primary Domain Controller, PDC) 上面,
配置文件:
? /etc/samba/smb.conf: 这是 Samba 的主要配置文件
? /etc/samba/lmhosts: 早期的 NetBIOS name 需额外设定
? /etc/sysconfig/samba: 提供启动 smbd, nmbd 时,你还想要加入的相关服务参数
? /var/lib/samba/private/{passdb.tdb,secrets.tdb}: 管理 Samba 的用户账号/密码时,会用到的数据库档案
? /etc/samba/smbusers: 由于 Windows 与 Linux 在管理员与访客的账号名称不一致,例如: administrator (windows) 及 root(linux), 为了对应这两者之间的账号关系,可使用这个档案来设定
samba可以与nis或ldap协作(未实践)
###password server = IP
1、创建测试用户组
groupadd ctest
usermod -G ctest u10
usermod -G ctest u11
2、创建测试目录,并设定权限
mkdir smbproject
chgrp ctest smbproject/
chmod 2770 smbproject/
3、创建samba 用户
pdbedit -L
pdbedit -a -u u10
pdbedit -a -u u11
pdbedit -a -u zz
====================
1. 服务器配置:设定 smb.conf 配置文件
备注:Samba 4.1.1 不认识 security = share, must be set to domain or ads.
[global]
hosts allow = 127. 192.168.122.
workgroup = zcgGROUP
server string = Samba Server zcg, Version %v
[project]
comment = smbuser's project
path = /home/smbproject
browseable = yes
writable = yes
write list = @ctest
2. 用 testparm 查阅 smb.conf 的语法设定正确性
3. 服务器端的服务启动
service smb start
service nmb start
4. 客户端验证
smbclient -L [//主机或IP] [-U 使用者账号]
smbclient -L //127.0.0.1
smbclient -L //127.0.0.1 -U u10
mount -t cifs //127.0.0.1/u10 /mnt -o username=u10
mount -t cifs //127.0.0.1/project /mnt -o username=u11
挂载之后,创建文件,检查其权限,文件的属主为挂载时命令行指定的用户
-rw-r--r--. 1 u11 ctest 0 Nov 25 15:42 2
-rw-r--r--. 1 u10 ctest 0 Nov 25 15:42 r
mount -t cifs //127.0.0.1/project /mnt -o username=zz
Password for zz@//127.0.0.1/project: **
mount error(13): Permission denied
因为用户 zz 不属于 ctest 组,而 /home/smbproject 目录的权限是2770,组为ctest,所以用户 zz 没有权限
chmod o+x smbproject/
chmod o+r smbproject/
重新以zz用户挂载,成功 --但是在/mnt目录下没有权限创建文件
5. 查看服务状态,smbstatus
6. 设定成为打印机服务器 (CUPS 系统) --未实践