Centos 7 Samba服务器搭建与用户配置
注:本文配置关闭了防火墙和selinux
一、Samba简介
Samba是通过CIFS协议实现windows和linux之间的文件共享的软件,本文要实现:
- 所有人都能访问公共目录;
- 每个人能访问自己的家目录;
- 其他人不能访问自己的目录。
二、samba相关包
1、samba程序包
# 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 ==============================================================================================
2、samba相关文件与程序
#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}
三、samba服务配置
/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目录则被拒绝