Samba

来源:互联网 发布:c语言指针难点应用 编辑:程序博客网 时间:2024/06/09 20:17

                                   Samba
1. Samba基本概念
samba -> 多系统 cifs/smb
nfs linux -> windows
ftp get/put website
http b/s
c/s
net bios 用来做windows整个网段主机名与ip地址的解析
与文件共享有关
nmb -> netbios地址解析
lmhosts 专门针对samba的解析 ==/etc/hosts
协议 -> 经过的设备 -> 抓包,

2. samba的安装与配置
[root@localhost ~]# yum install samba samba-common samba-client –y   ##安装相关服务
[root@localhost ~]# systemctl start smb nmb
[root@localhost ~]# systemctl enable smb.service nmb                  ##开启服务

3. 添加samba用户   (samba用户必须为本地用户)

[root@localhost ~]# id student                                        ##查看用户 student 是否存在
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@localhost ~]# smbpasswd -a student                              ##建立samba用户
New SMB password:                                                     ##输入密码
Retype new SMB password:                                             ##确认密码
Added user student.                                                  ##用户student建立成功
[root@localhost ~]# pdbedit -L                                       ##查看samba用户信息
student:1000:Student User
[root@localhost ~]# pdbedit -x student                                ##查看samba用户 student的信息
[root@localhost ~]# setsebool -P samba_enable_home_dirs on            ##在selinux中设定smb用户可以访问自己的家目录          

Usage:  setsebool [ -NPV ] boolean value| bool1=val1 bool2=val2...

[root@localhost ~]# pdbedit -L
student:1000:Student User
[root@localhost ~]# setsebool -P enable samba_home_dirs on

[root@localhost ~]# smbclient //172.25.254.179/student -U student
Enter student's password:
session setup failed: NT_STATUS_LOGON_FAILURE
[root@localhost ~]# setsebool -P samba_enable_home_dirs on
[root@localhost ~]# smbclient //172.25.254.179/student -U 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. 28550blocks available
smb: \>


4.文件共享

(1)用户自建立的目录共享

@@实验配置
[root@localhost ~]# vim /etc/samba/smb.conf                     ##编辑samba的主配置文件

        workgroup = WESTOS                                      ##工作域名为WESTOS

        [PIUPIU]                                               ##共享的名称
        comment = local directory                               ##对共享目录的描述
        path = /smbshare                                        ##共享目录的绝对路径
[root@localhost ~]# systemctl restart smb.service               ##重启samba服务
[root@localhost ~]# semanage fcontext -a -t samba_share_t'/smbshare(/.*)?'   ##当目录为用户自建立目录
[root@localhost ~]# restorecon -RvvF /smbshare                                ##更改刷新目录/smbshare安全上下文
restorecon reset /smbshare contextunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restorecon reset /smbshare/westosxxx contextunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0

@@实验测试
[kiosk@foundation3 Desktop]$ smbclient //172.25.254.179/PIUPIU -U student
Enter student's password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0 Sat Jun  3 14:25:19 2017
  ..                                  D        0 Sat Jun  3 14:24:56 2017
  westosxxx                           N        0 Sat Jun  3 14:25:19 2017

        10473900 blocks of size 1024.7309124 blocks available
smb: \>


(2)系统建立的目录共享

@@实验配置
[root@localhost mnt]# setsebool -P samba_enable_home_dirs 0
[root@localhost mnt]# setsebool -P samba_export_all_ro on                 ##开启只读共享
[root@localhost mnt]# vim /etc/samba/smb.conf                             ##编辑samba主配置文件

        workgroup = WESTOS                                                ##工作域名为WESTOS

        [PIUPIU]                                                         ##共享的名称
        comment = local directory                                         ##对共享目录的描述
        path = /smbshare                                                  ##共享目录的绝对路径
[root@localhost mnt]# systemctl restart smb.service                       ##重启服务
[root@localhost mnt]# setsebool -P use_samba_home_dirs on                 ##在selinux中设定smb用户可以访问自己的家目录
[root@localhost mnt]# systemctl restart smb.service                       ##重启服务
[root@localhost mnt]# getsebool -a | grep samba
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> on
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> on
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@localhost mnt]#

@@实验测试
[kiosk@foundation3 Desktop]$ smbclient //172.25.254.179/PIUPIU -U student
Enter student's password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0 Sat Jun  3 14:38:50 2017
  ..                                  D        0 Sat Jun  3 14:24:56 2017
  file1                               N        0 Sat Jun  3 14:38:50 2017
  file2                               N        0 Sat Jun  3 14:38:50 2017
  file3                               N        0 Sat Jun  3 14:38:50 2017
  file4                               N        0 Sat Jun  3 14:38:50 2017
  file5                               N        0 Sat Jun  3 14:38:50 2017
  file6                               N        0 Sat Jun  3 14:38:50 2017
  file7                               N        0  SatJun  3 14:38:50 2017
  file8                               N        0 Sat Jun  3 14:38:50 2017
  file9                               N        0 Sat Jun  3 14:38:50 2017
  file10                              N        0 Sat Jun  3 14:38:50 2017

        10473900 blocks of size 1024.7308840 blocks available
smb: \>


5.samba的配置参数

(1)匿名用户访问

[root@localhost ~]# vim /etc/samba/smb.conf
125         map to guest = bad user                                ##将所有samba不能识别的用户都映射为guest用户 无需帐户和密码访问samba
321         [PIUPIU]
322         comment = localdirectory
323         path = /mnt
324         guest ok = yes                                        ##设置guest有权限                 
[root@localhost ~]# systemctl restart smb.service                 ##重启服务

测试:
[kiosk@foundation3 Desktop]$ smbclient //172.25.254.103/PIUPIU
Enter kiosk's password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0 Sat Jun  3 14:38:50 2017
  ..                                  D        0 Sat Jun  3 14:24:56 2017
  file1                               N        0 Sat Jun  3 14:38:50 2017
  file2                               N        0 Sat Jun  3 14:38:50 2017
  file3                               N        0 Sat Jun  3 14:38:50 2017
  file4                               N        0 Sat Jun  3 14:38:50 2017
  file5                               N        0 Sat Jun  3 14:38:50 2017
  file6                               N        0 Sat Jun  3 14:38:50 2017
  file7                               N        0 Sat Jun  3 14:38:50 2017
  file8                               N        0 Sat Jun  3 14:38:50 2017
  file9                               N        0 Sat Jun  3 14:38:50 2017
  file10                              N        0 Sat Jun  3 14:38:50 2017

        10473900 blocks of size 1024.7308640 blocks available
smb: \>


(2)访问控制

[root@localhost ~]# vim /etc/samba/smb.conf
        [PIUPIU]
        comment = local directory
        path = /mnt
        guest ok = yes
        hosts deny = 172.25.254.78                              ##拒绝172.25.254.78 主机访问
测试(在172.25.254.78主机上)
[kiosk@foundation78 Desktop]$ smbclient //172.25.254.179/PIUPIU -Ustudent
Enter student's password:
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
tree connect failed: NT_STATUS_ACCESS_DENIED
[kiosk@foundation78 Desktop]$





(3)读写控制

[root@localhost ~]# vim /etc/samba/smb.conf
       [PIUPIU]
        comment = local directory
        path = /mnt
        writable = yes
        writable list = student
[root@localhost ~]# systemctl restart smb.service

测试:

[root@foundation78 mnt]# umount /mnt/
umount: /mnt/: not mounted
[root@foundation78 mnt]# mount -o username=student,password=redhat//172.25.254.179/PIUPIU /mnt/
[root@foundation78 mnt]# cd /mnt/
[root@foundation3 mnt]# ls
file1  file10  file2 file3  file4  file5 file6  file7  file8 file9
[root@foundation78 mnt]# rm -fr *
[root@foundation78 mnt]# ls
[root@foundation78 mnt]# touch file
[root@foundation78 mnt]# cd
[root@foundation78 ~]# umount /mnt/



 

原创粉丝点击