linux下smb文件共享服务器详解

1.smb服务器,netbios工作端口137/udp,138/udp,139/tcp,共享文件工作端口445/tcp

2.smb服务器主要是运行在linux与windows之间的文件共享服务,

   安全级别有user,share,server,domain四种

   user:相当于使用用户认证

   share:相当于匿名访问

   server:相当于在另一台服务器上用户认证

   domain:相当于使用windows AD域用户认证

3.smb认证用户有3种,分为本地系统,非本地服务器上的帐号和windows的AD域帐号

 注意:如果用户认证是本地系统,则必须是系统帐号,出于系统安全考虑,密码必须另创建

    而不是本地系统帐号的密码,使用smbpasswd命令创建smb用户密码

格式;smbpasswd [选项] 用户名

smbpasswd –a willow 將willow用户創建smb身份并設置密碼

smbpasswd  -d willow 將willow用戶smb身份禁用

smbpasswd  -e willow 將willow用戶smb身份启用

smbpasswd  -x willow 將willow用戶smb身份移除

testparm   測試smb配置文件是否OK 命令

4.目录文件:共享权限和文件系统权限的交集

5.smb主配置文件

vim /etc/samba/smb.conf

[共享目录名]

  comment   =  注释信息

  path     =  /path     #共享路径 

  browseable =  {yes|no}   #目录是否可浏览

  public    = {yes|no}   #是否允许匿名访问,功能与guest ok一样

  guest ok   =  {yes|no}  #是否允许匿名访问,功能与public一样

  read only  = {yes|no}   #是否可读或可写,功能与writable一样

  writable   =  {yes|no}  #是否可读或可写,功能与read only一样

  write list  = user1,user2...,@group,+group... # 允许可写权限的用户或组

  valid users  =  user1,user2...  #允许可写权限的用户

  invalid users =  user1,user2...   #不允许可写权限的用户

6.实验:linux下搭建samba服务器,ip地址为1.1.1.66,共享目录为/smb/test,共享名为Tools,

 仅让willow用户和willow用户组有写入权限

yum install -y samba samba-client samba-common

mkdir -pv /smb/test #创建共享目录

useradd willow    #创建本地系统用户willow

smbpasswd -a willow #新增willow用户的smb密码

vim /etc/samba/smb.conf

       [Tools]

        comment = Tools is testing

        path   = /smb/test

        public = yes

        write list = willow,@willow

service smb start

此时访问1.1.1.66smb服务器,虽然设置了willow用户有写入的共享权限,

但willow用户没有对/smb/test目录写入文件系统权限,我上面已经说了

最终权限 等于 共享权限与文件系统权限取交集,必须做以下这一步:

setfacl -m u:willow:rwx /smb/test

setfacl -m g:willow:rwx /smb/test

7.smbclient命令

如果查看smb服务共享目录:

smbclient -L smb服务器IP地址 -U smb用户名

如:smbclient -L 1.1.1.66 -U willow

如果想像ftp服务一样操作smb服务:

smbclient //smb服务器IP地址/目录共享名 -U smb用户名

如:smbclient //1.1.1.66/Tools -U willow

8.利用mount命令将smb共享目录挂载到本地/mnt目录

8.1.mount -t cifs -o username=用户名,password=密码 //smb服务器IP/共享名 /mnt

8.2.将mount smb共享写入fstab,便于开机自启动(如下挂载密码容易暴露)

vim /etc/fstab

//smb服务器IP/共享名 /mnt  cifs username=用户名,password=密码 0 0

8.3.将mount smb共享写入fstab,便于开机自启动(把帐号密码放在一个私密文件中,即安全)

vim /etc/samba/mount.passwd    #新增一个密码文件,增加如下两行

username=admin

password=redhat

chmod 700 /etc/samba/mount.passwd #让其他人没有读写权限

vim /etc/fstab

//smb服务器IP/共享名 /mnt  cifs credentials=/etc/samba/mount.passwd 0 0

9.swat服务:smb web管理工具,让用户可以通web页面的方式管理smb服务器

yum install -y samba-swat

由于swat是瞬时守护进程,由xinetd超级守护进程管理,必须先将xinetd服务启动

service xinetd start

chkconfig swat on 开启swat服务

手动修改swat服务配置文件

vim /etc/xinetd.d/swat  #以下红色部色作相应修改

service swat

{

        disable = no   #开启swat服务

        port            = 901

        socket_type     = stream

        wait            = no

        only_from       = 1.1.1.0/24  #此网段内可以使用swat服务通过web管理smb 

        user            = root

        server          = /usr/sbin/swat

        log_on_failure  += USERID

}

service xinetd restart

service smb restart

客户通过web登入smb服务器:第一次必须使用root帐号和密码登入,后续建立修改密码或创建帐号

http://1.1.1.66:901

最后管理smb的web页面如下:

wKioL1daw3XD3PGkAAMANtKPS5Q889.jpg-wh_50