hosts allow = ip地址(可以上网段)
hosts deny = ip地址
如图:只允许本机和127.网段访问,和192.168.10.135访问
3.记录日志
%I是客户端的主机ip,这是samba服务自带的变量
log file = 日志文件路径
log level = number 2表示记录的日志更加详细
现在我在IP地址为192.168.10.135的主机来访问共享目录
然后查看日志
4.配置共享目录
每个共享目录应该有独立的[ ]部分
[共享名称] 远程网络看到的共享名称
comment 注释信息
path 所共享的目录路径
public 能否被guest访问的共享,默认no,和guest ok 类似 public = yes 允许匿名登录
browsable是否允许所有用户浏览此共享,默认为yes,no为隐藏 browsable = no 表示允许用户查看到共享目录
writable=yes 可以被所有用户读写,默认为no,访问的共享目录默认是不可写的
read only=no 和writable=yes等价,如与以上设置冲突,放在后面的设置生效,默认只读
注意:以上两种方式都可以控制账户对共享目录是否可写,但是如果共享目录自身的其他人上没有写权限,那么用户也是不能往共享目录里面写东西的
write list 三种形式:用户,@组名,+组名,用,分隔
如writable=no,列表中用户或组可读写,不在列表中用户只读
valid users 特定用户才能访问该共享,如为空,将允许所有用户,用户名之间用空格分隔
valid users后面也可以跟组,+组名或@组名表示组,不加+或者@,就会把其当做是用户
如图:
共享目录为/app/nfsdir1
write list = smb1 允许smb1用户可写
valid users = smb1 smb2允许smb1和smb2访问
browsable = smb3 不允许用户smb3查看到共享目录
我将用户smb1和smb2添加到admin组中,也可以这样写如图:
SMB客户端访问
UNC路径: Universal Naming Convention,通用命名规范(在windos里面访问共享目录)
格式:\\sambaserver\sharename
终端下使用smbclient登录服务器
smbclient -L instructor.example.com 查看共享目录
smbclient -L instructor.example.com -U wang
>cddirectory
>getfile1
> put file2
smbclient //instructor.example.com/shared -U wang%centos
可以使用-U选项来指定用户%密码,或通过设置和导出USER和PASSWD环境变量来指定
例如"smbclient //192.168.10.187/publicnfshare1 -U smb1%centos
挂载CIFS文件系统
手动挂载
mount -t cifs -o user=wang,password=magedu //server//shared /mnt/smb(可以省略-t cifs,默认是cifs)
开机自动挂载
•cat /etc/fstab
//server/homes /mnt cifs user=wang,passward=magedu 0 0
写到/etc/fstab里面,开机自动挂载,但是这样写不安全,因为/etc/fstab这个文件,其他普通用户也有权限查看,就能看见samba共享目录的账号和密码,可以用文件代替用户名和密码的输入,这样其他普通用户就看不了共享目录的账号和密码
//server/homes /mnt cifs credentials=http://www.likecs.com/etc/smb.txt 0 0
•cat /etc/smb.txt
username=wang
password=password
•chmod600 /etc/smb.txt 给这个文件也设置好权限,使其他人不能查看
多用户挂载
SAMBA共享默认只支持同时用一个用户挂载SMB共享
CentOS7中可启用多用户挂载功能
客户端挂载samba共享目录后,在客户端登录的不同用户访问同一个samba的挂载点,可获得不同权限
实验:实现多用户挂载实验环境:两台机器:A:192.168.10.187 samba服务器 B:192.168.10.200 客户端
(1)准备samba账号(A机器samba服务器端)
useradd -s /sbin/nologin smb1
useradd -s /sbin/nologin smb2
useradd -s /sbin/nologin smb3
groupadd admin
gpasswd -a smb1 admin
smbpasswd -a smb1
smbpasswd -a smb2
smbpasswd -a smb3
(2)配置共享目录(A机器smba服务器端)
mkdir /app/nfsdir1
chmod 777 /app/nfsdir1
vim /etc/samba/smb.conf
共享目录为/app/nfsdir1
允许smb1用户可写
允许访问共享目录的用户有admin组中的用户和用户smb2和用户smb3