1. Samba服务器
1.1 创建samba用户
1 2 3
|
$ sudo smbpasswd -a smbuser
|
1.2. 重启samba服务
1 2
| $ sudo systemctl restart smbd # 提供文件和打印服务、授权与被授权服务 $ sudo systemctl restart nmbd # 提供名字解析、浏览服务
|
1.3. 客户端访问测试
1
| $ smbclient -L //localhose/share
|
1.4 远程挂载共享目录
1 2 3 4
| $ sudo mount.cifs //server-ip/sharename ./mnt/filename -o username=XXX,password=XXX,vers=1.0
$ sudo umount /mnt/filename # 取消挂载 $ sudo tail -f /var/log/kern.log # 查看错误日志
|
2. ‘smb.conf’配置文件
2.1 共享文件夹举例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| [home]
[share] path=/home/share browseable = yes writable = yes|no comment = smb share test allow hosts = host(subnet) deny hosts = host(subnet) available = yes|no public = yes|no user = user, @group valid user = user, @group invalid user = user, @group read list = user, @group write list = user, @group admin list = user, @group hide dot files = yes|no create mode = 0755 directory mode = 0755 sync always = yes|no short preserve case = yes|no preserve case = yes|no case sensitive = yes|no mangle case = yes|no default case = upper|lower force user = testuser wide links = yes|no max connections = 100 delete readonly
|
%S = 当前服务名(如果有的话)
%P = 当前服务的根目录(如果有的话)
%u = 当前服务的用户名(如果有的话)
%g = 当前用户说在的主工作组
%U = 当前对话的用户名
%G = 当前对话的用户的主工作组
%H = 当前服务的用户的Home目录
%v = Samba服务的版本号。
%h = 运行Samba服务机器的主机名
%m = 客户机的NETBIOS名称
%L = 服务器的NETBIOS名称
%M = 客户机的主机名
%N = NIS服务器名
%p = NIS服务的Home目录
%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 当前服务进程的ID
%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)
%I = 客户机的IP
%T = 当前日期和时间
hosts allow = 网络或者主机
3. 针对指定有权限的可用可见目录
引用子配置文件,在引用子配置文件有二种方法:
- 在[global]标签下加入参数:config file=/etc/samba/smb.conf.%U
- 在[include]标签下加入参数:include=/etc/samba/smb.conf.%U
他们的区别是:使用config file时,当以aa身份访问samba服务器,只能看到aa,其他在smb.conf中定义的共享资源都无法看到;使用include时,当以aa身份访问samba服务器,除了可以看到aa,其它在sam.conf中定义的共享也可以看到。