首页 > 代码库 > smaba服务

smaba服务










重置虚拟机:
IP----172.25.254.137
hostname:samba.example.com
指定yum source

samba服务:
windows作为客户端访问linux的共享文件


windows共享出去了文件,即为server端
linux如何查看windows的共享文件:
安装yum install samba-client -y
查看server端共享了什么:smbcliet -L //server端IP -U usersname
挂载后使用:mount //server端IP/共享文件 /挂载目录 username=guest




linux共享出去了文件,即为server端(windows做为客户端访问linux的共享文件):
yum samba samba-common sam-cient -y    ##安装相关软件包##
systemctl start smb    ##开启smb服务##
netstat -antple | grep smb    ##查看smb的端口##
systemctl stop firewalld    ##关闭火墙##
setsebool -P samba_enble_home_dirs on        ##修改selinux属性,打开samba访问节目录的权限##


samba用户和系统用户不是同一个,samba用户必须添加,而且要添加的用户在系统中也必须真实存在。所谓的samba用户都是指服务端的。
smbpasswd -a student    ##添加samba用户##
pdbedit L    ##列出samba用户##
pdbedit -x student    ##删除samba用户##


linux也可以测试:
首先需要安装smb-client软件包
smbclient -L //172.25.254.137 -U student    ##查看那student用户有什么##
smbclient //172.25.254.137/student -U student    ##登陆并进入student用户家目录##


实际操作:
[root@samba ~]# systemctl start smb    ##开启smb服务##
[root@samba ~]# systemctl stop firewalld.service    ##关闭火墙##
[root@samba ~]# setsebool -P samba_enable_home_dirs on        ##修改selinux属性##
[root@samba ~]# smbpasswd -a student    ##建立samba用户student##
New SMB password:    ##输入密码##
Retype new SMB password:    ##确认密码##
Added user student.
[root@samba ~]# pdbedit -L    ##列出samba用户##
student:1000:Student User
[root@samba ~]# smbclient -L //172.25.254.137 -U student    ##查看student用户的共享文件有什么##
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

        Sharename       Type      Comment
        ---------       ----      -------
        IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
        student         Disk      Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
[root@samba ~]# smbclient //172.25.254.137/student -U student    ##登陆进入student用户家目录##
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls    ##列出当前目录##
  .                                   D        0  Thu Jul 10 19:06:52 2014
  ..                                  D        0  Thu Jul 10 18:19:09 2014
  .bash_logout                        H       18  Wed Jan 29 07:45:18 2014
  .bash_profile                       H      193  Wed Jan 29 07:45:18 2014
  .bashrc                             H      231  Wed Jan 29 07:45:18 2014
  .ssh                               DH        0  Thu Jul 10 18:19:10 2014
  .config                            DH        0  Thu Jul 10 19:06:53 2014

                40913 blocks of size 262144. 28512 blocks available
smb: \> quit    ##退出(exit或者Ctrl+D也可以退出)##
[root@samba ~]#
补充命令:
getsebool -a | grep samba    ##查看samba服务相关的selinux属性##





工作组的修改:vim /etc/samba/amb.conf
 89         workgroup = westos
效果如下:Domain=[WESTOS]即为参数修改处
[root@samba ~]# smbclient -L //172.25.254.137 -U student
Enter student‘s password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

    Sharename       Type      Comment
    ---------       ----      -------
    westos          Disk      local directory westos
    linux           Disk      local directory linux
    IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
    student         Disk      Home Directories
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

    Server               Comment
    ---------            -------

    Workgroup            Master
    ---------            -------
[root@samba ~]#


samba共享目录:
假设要共享目录/westos(/westos目录要先存在)
vim /etc/samba/smb.cnf        ##修改samba服务的配置文件##
    [共享名称]
    comment = 共享说明
    path = 共享目录路径
例如:
    [westos]
    comment = local directory westos
    path = /westos
systemctl restart smab        ##重启samba服务##



修改selinux:

只针对单一目录:
semanage fcontext -a -t samba_share_t ‘/westos(/.*)?‘      #修个目录安全上下文#
restorecon -FvvR /westos/    #刷新该目录的selinux属性#

针对所有目录:
setsebool -P samba export all rw on    ##开放读写权限##
setsebool -P samba export all ro on    ##开启只读权限##
共享系统建立目录修改selinux属性,该操作针对所有目录,一旦开放selinux不保护目录访问




课堂实践:
[root@samba ~]# mkdir /westos
[root@samba ~]# mkdir /linux
[root@samba ~]# vim /etc/samba/smb.conf
[root@samba ~]# tail -n 3 /etc/samba/smb.conf
    [westos]
    comment = local directory westos
    path = /westos
[root@samba ~]# systemctl restart smb.service
[root@samba ~]# semanage fcontext -a -t samba_share_t ‘/westos(/.*)?‘
[root@samba ~]# restorecon -FvvR /westos/
restorecon reset /westos context unconfined_u:object_r:default_t:s0->system_u:object_r:default_t:s0
[root@samba ~]# smbclient //172.25.254.137/westos -U student
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Fri Mar 17 22:17:15 2017
  ..                                  D        0  Fri Mar 17 22:17:19 2017

        40913 blocks of size 262144. 28482 blocks available
smb: \> quit
[root@samba ~]# !vim
vim /etc/samba/smb.conf
[root@samba ~]# tail -n 3 /etc/samba/smb.conf
    [linux]
    comment = local directory linux
    path = /linux
[root@samba ~]# setsebool -P samba_export_all_ro on
[root@samba ~]# smbclient //172.25.254.137/linux -U student
Enter student‘s password:
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Fri Mar 17 22:17:19 2017
  ..                                  D        0  Fri Mar 17 22:17:19 2017

        40913 blocks of size 262144. 28512 blocks available
smb: \> quit
[root@samba ~]#





samba的匿名访问
修改samba的配置文件
guest ok = yes
(不知道怎么写的时候men 5 文件名)
重启服务
测试访问共享
结果:能访问,mount挂载不能
问题解决:
修改配置文件:map to guest = bad user     ##把所有的匿名用户映射为guest用户

总结:samba匿名用户访问需要修改配置文件

125    map to guest = bad user

321    [westos]
322    comment = locla directory westos
323    path = /westos
324    guest ok = yes

注:配置文件修改后一定要重启服务










管理参数:配置文件中,修改哪个共享目录的管>理参数就在那个目录下添加参数
writable = yes         ##用户可以使用samba这个程序执行写的动作(解决服务本身拒绝的问题)##
chmod 777 /westos    ##修改共享目录权限(解决文件系统本身拒绝的问题)##
注意:服务允许不代表文件系统也允许

writable = yes        ##任意用户可写##
write list = lee    ##指定lee用户可写##
write list = @lee    ##指定lee用户组可写(@和+效果一样)##
注:指定某个用户或某个用户组可写时需要注释掉任意用户可写

valid users = lee    ##指定lee用户可登陆##
valid users = @lee    ##指定lee用户组可写(@和+效果一样)##
browseable = no        ##隐藏共享目录(但是用户可以进入)##
admin users = lee    ##用户lee对westos有绝对的控制权,对共享目录来说lee用户相当于root用户##







samba认证:(samba认证主要在客户机操作)
yum install cifs-utils -y     ##安装软件包
不需要开启服务
vim /root/passwdfile
    username=smb用户
    password=smb用户密码
mount //server端IP/共享目录 /挂载点 -0 credentials=/root/smbpasswdfile,multiuser,sec=ntlmssp        ##挂载使用认证文件:multiuser表示多用户认证,sec=ntlmssp表示认证方式##

su - lee    ##lee与samba用户同名##
ls /mnt    
cifscreds add server端IP    ##lee用户认证samba共享系统##
ls /mnt查看成功

su - test    ##test与samba用户不同名##
ls /mnt
cifscreds add server端IP    ##test用户认证samba共享系统##



cifscreds add IP     去这个IP上做认证(输入密码)
cifscreds clearall    清除所有认证
cifscreds

客户端认证时用户身份和samba用户身份一致且输入samba用户密码正确,



samba多用户认证的作用:
防止匿名用户查看
以各自的samba用户身份建立文件


smaba服务