注:本文配置关闭了防火墙和selinux
Samba是通过CIFS协议实现windows和linux之间的文件共享的软件,本文要实现:
每个人能访问自己的家目录;
其他人不能访问自己的目录。
# yum install samba
==============================================================================================
Package Arch Version Repository Size
==============================================================================================
Installing:
samba x86_64 4.4.4-14.el7_3 updates 610 k
Installing for dependencies:
libldb x86_64 1.1.26-1.el7 base 125 k
libtalloc x86_64 2.1.6-1.el7 base 34 k
libtdb x86_64 1.3.8-1.el7_2 base 45 k
libtevent x86_64 0.9.28-1.el7 base 34 k
libwbclient x86_64 4.4.4-14.el7_3 updates 100 k
pytalloc x86_64 2.1.6-1.el7 base 15 k
samba-client-libs x86_64 4.4.4-14.el7_3 updates 4.6 M
samba-common noarch 4.4.4-14.el7_3 updates 191 k
samba-common-libs x86_64 4.4.4-14.el7_3 updates 161 k
samba-common-tools x86_64 4.4.4-14.el7_3 updates 451 k
samba-libs x86_64 4.4.4-14.el7_3 updates 260 k
==============================================================================================
#samba服务的主配置文件
/etc/samba/smb.conf
#NetBIOS Name与IP的对应关系,做用类似于/etc/hosts,一般无需配置
/etc/samba/lmhosts
#smbd, nmbd服务自定义参数配置文件
/etc/sysconfig/samba
# samba用户和密码数据库文件
/var/lib/samba/private/{passdb.tdb,secrets.tdb}
#Samba 3.0以后,默认使用tdb库(Trivial DataBase),这两个命令用于查看和操作tdb库,不过查看出的结果有点类似于16进制的数据,一般不使用,需安装 tdb-tools 包
/usr/bin/{tdbdump,tdbtool}
#smbpasswd命令用于创建samba用户和修改密码,类型于passwd命令的功能。Samba 3.0后使用pdb库,pdbedit命令为新版本中的samba用户信息管理命令
/usr/bin/{smbpasswd,pdbedit}
/etc/samba/smb.conf
[global]
#工作组
workgroup = WORKGROUP
#欢迎信息
server string = Samba Server Version %v
#netbios
netbios name = ShareSERVER
#日志文件位置
log file = /var/log/samba/log.%m
# maximum size of 50KB per log file, then rotate:
max log size = 50
#linux下使用的编码
unix charset = utf8
#验证方式,默认是user
security = user
#开启匿名访问
map to guest = Bad User
#指定用户名密码存储的数据格式
passdb backend = tdbsam
#关闭打印机
disable spoolss = yes
load printers = no
cups options = raw
[public]
#提示信息
comment = public share
#共享目录
path = /home/ftp/public
#开启公共访问
public = yes
#开启写入权限
writable = yes
#让所有人目录可见
browseable = yes
[xingzheng]
comment = xingzheng
path = /home/ftp/xingzheng
#writable = yes
browseable = yes
#允许访问的使用者
valid users = xingzheng
#允许写入的使用者
write list = xingzheng
printable = no
#默认权限设置
create mask = 0644
directory mask = 0755
[caiwu]
comment = caiwu
path = /home/ftp/caiwu
#writable = yes
browseable = yes
#允许访问的使用者
valid users = caiwu
#允许写入的使用者
write list = caiwu
printable = no
#默认权限设置
create mask = 0644
directory mask = 0755
###创建用户xingzheng和家目录,同时默认创建了用户组xingzheng
# useradd -d /home/ftp/xingzheng -m -s /sbin/nologin xingzheng
# useradd -d /home/ftp/caiwu -m -s /sbin/nologin caiwu
###创建smb用户,smb用户必须是系统已经存在的用户,执行命令后输入两次密码即创建成功
# pdbedit -a -u xingzheng
# pdbedit -a -u caiwu
###查看创建的用户
# pdbedit -L
xingzheng:1001:
caiwu:1002:
使用useradd创建用户xingzheng和caiwu时,其家目录以配好相应的权限了
##公共目录
# chown nobody:nobody public
# ls -l ftp/
drwx------ 2 caiwu caiwu 62 Aug 1 19:26 caiwu
drwxr-xr-x 2 nobody nobody 6 Aug 1 18:40 public
drwx------ 2 xingzheng xingzheng 62 Aug 2 10:18 xingzheng
用Windows资源管理器打开共享地址,可以看到三个共享目录,打开caiwu或xingzheng目录需要输入账户密码,无需账户密码就可以访问public
以caiwu账户可以登录使用caiwu目录,登录xingzheng目录则被拒绝