------------samba--------------

--smb(Server Message Block))--IBM注册

提供了四种服务

1.用户验证和授权

2.文件和打印机共享

3.域名解析

4.浏览

*****************************************************************************

配置好之后,如果客户端访问不了smb服务器,把防火墙禁用了,就可以了。

*****************************************************************************

--------------------安装-----------------

yum  -y install   samba  (samba-client和samba-common默认已经安装)

(查看文件是安装哪个包时产生的 rpm -qf  /etc/samba/smb.conf)

samba服务器随着服务器的启动而自启动需要下列命令

systemctl enable smb

systemctl start smb

主配置文件 /etc/samba/smb.conf

/etc/samba/lmhosts --名称解析

首先创建一个共享文件夹 jinni

chmod  -R  777   jinni

------------ smb.conf----------------------               

注:smb受selinux管制!!!如果上传的文件看不到,有可能是selinux挡住了,关闭即可。

vim  /etc/sysconfig/selinux(配置文件修改权限)需重启系统

1.警告模式    setenforce 0  (permissive)        2.强制模式   setenforce 1  (enforcing)     3.关闭模式   disabled

getenforce selinux 查看selinux状态

setsebool -P samba_enable_home_dirs=1(如果关掉selinux就不用此命令了)

chcon -t samba_share_t    /jinni(修改共享目录selinux类型属性)

securetty = user/share

---认证级别--一共五个!

share:         不需要做身份验证

user:          该服务需要做身份验证,认证来自于本机

domain/server: 来自于网络中的另一台计算机

ads:           认证来自微软的活动目录

-为smb添加用户(用户必须是本地帐户)

smbpasswd -a 用户名 #添加一个samba用户

smbpasswd -d 用户名 #禁用一个samba用户

smbpasswd -e 用户名 #恢复一个samba用户

smbpasswd -x 用户名 #删除一个samba用户

   useradd user1/user2

   smbpasswd -a user1

   smbpasswd -a user2

修改smb用户密码

smbpasswd  smbname


查看samba服务器中已拥有哪些用户

pdbedit -L

user1----smb用户密码--

smbclient -L //192.168.1.1 --使用匿名身份浏览

smbclient -L //192.168.1.1 -U user1 --(用户访问)

smbclient     //192.168.1.1/RHCE  --访问

如果想要查询samba服务器中现有哪些用户,可以使用net命令

net rpc user -S iscas

net rpc user -w workgroup

***************************************************************

配置文件  vim  smb.conf

  [haha]   --共享的名称

   path = /jinni(需要共享的目录的路径)

   comment = 注释

   browseable = yes   --所有用户都可以浏览

   browseable = no    --所有用户都不可以浏览

   public = no            --匿名不允许访问,smb用户允许访问。 用来指定该共享是否允许guest账户访问。

   public = yes           --匿名和smb用户都允许访问

   writable = yes        --所有用户都可以写

   writable = no          --所有用户都不可以写

   write list = user1     --允许写入该共享的用户,如果某个用户同时位于"read list"和"write list"配置中,以后者为准。

   read list = user2

   hosts allow = 192.168.1.253/255.255.255.0     (允许某个域访问)

   hosts deny  = 192.168.1.0/255.255.255.0     (拒绝某个域访问)

   valid users = harry, user4, user5(允许访问该共享的用户,如果此配置为空,则任何用户均可访问samba服务器)

   invalid users = user1, user2(禁止访问该共享的用户

   admin list = jinguanhua    用来指定该共享的管理员(对该共享具有完全控制权限)

     (writeable与read only 配置变量的意义完全相反)

   read only = no  设定该共享服务是否为只读

为了便于不同的windows用户,以同一用户身份与权限访问共享资源时,需要增加“username map”配置变量,定义一个用户名映射文件。

     username map = /etc/samba/smbusers

还需要修改配置变量中定义的/etc/samba/smbusers文件,其中包含必要的用户名映射关系。

例如:

为了使windows2000系统中的administrator与windowsXP系统中的admin用户能够以jinni用户的身份访问samba服务器,可在smbusers文件中增加下列映射关系:

     jinni = administrator     admin

如果一个账号需要有其他同级文件夹的权限,除了修改write list,valid users,还需要配置文件夹权限。

设置用户yunwei有访问文件夹jinni和jinni下的子目录的rx权限

setfacl -R -m u:yunwei:rx jinni

挂载

mount -t cifs //IP/RHCE      /yinhe  -o  username=smbuser1%123(把共享文件夹RHCE挂载到本地文件夹yinhe)

开机启动 vim /etc/fstab

//IP/RHCE     /yinhe     cifs   defaults,username=smbuser1%123   0 0

testparm /etc/samba/smb.cono station1.example.com 192.168.1.1

----测试某一台计算机是否有权限访问

*************************************************************

当在命令提示窗口输入net use命令时,会显示本机缓存的共享登录信息,如果你想切换用户访问其他文件夹,则可以删除那条缓存的记录即可。

net use * /delete 

net use caiwu /delete

访问Samba共享的文件很慢很慢的问题

是因为network 和 hosts文件中的主机名不一样, 将hosts文件中的主机名改成和network中的主机名一样即可。

vim  /etc/sysconfig/network               vim  /etc/hosts


在公司经常有员工误删除文件或者文件夹的情况。如何恢复被删除的共享文件或者文件夹???

可以通过smb.conf配置文件,给每个共享文件夹添加回收站配置!

vim  /etc/samba/smb.conf

recycle:repository = /home/caiwu/.deleted

recycle:keeptree = Yes #指定是否按删除时的目录结构存放

recycle:versions = Yes #指定是否区覆盖同名的文件,yes是不覆盖

recycle:maxsixe = 0 #指定回收站目录的大小,0是不限制

recycle:exclude = *.tmp|*.mp3 #不放入回收站的文件类型

recycle:noversions = *.doc #指定覆盖同名文件的文件类型

#####recycle:repository = /home/caiwu/.deleted/%U #指定该共享文件夹的回收站目录 %U是按登录的用户名分开存放#####

#####禁止上传的文件veto files = /*.mp3/*.mp4/*.rmvb/*.wma/*.exe/*.bat/*.dll/*.avi/*.rar#######

注意事项:

1.回收站文件夹的用户和用户组设置, 权限设置要和共享文件夹的设置是一样的, 如果不一致被删除的文件是无法保存到回收站文件夹

2.如果maxsize设置为0, 那么回收站的文件需要管理员手工去删除. 当然, 可以将删除文件的任务交给计划任务去完成,如:

vim /etc/crontab

30 8 * * * root find /samba/deleted/ -mtime +30 -exec rm -rf {} \;

上面的设置就是每天8:30 删除回收站内大于30天的文件

3.每个共享文件夹要单独设置一个回收站文件, 避免同名文件覆盖,同时也方便管理和查找.