Samba-上课内容

简介:

CIFS通常用于Windows之间的共享,Windows、Linux之间共享。

NFS通常用于Unix、Linux之间数据共享


SMB提供CIFS文件系统

文件共享使用端口:tcp139,445(服务名:smb)

名称解析使用端口:udp137,138(服务名:nmb)



smbclient -L //172.17.8.74 -U administrator     #查看SMB共享

如果不指定用户名,就是匿名登录,Linux支持匿名登录,Windows不支持匿名。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@rh1 ~] # smbclient -L //172.17.8.74 -U administrator
Enter administrator's password: 
Domain=[WIN-3F7Q3K0ONCA] OS=[Windows Server 2008 R2 Datacenter 7600] Server=[Windows Server 2008 R2 Datacenter 6.1]
 
     Sharename       Type      Comment
     ---------       ----      -------
     ADMIN$          Disk      远程管理
     C$              Disk      默认共享
     D$              Disk      默认共享
     IPC$            IPC       远程 IPC
     oms             Disk      
     暂存          Disk      
Connection to 172.17.8.74 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
NetBIOS over TCP disabled -- no workgroup available


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

1
2
3
4
5
6
7
8
9
10
11
12
13
         workgroup = MYGROUP
         server string = Samba Server Version % v    #Samba版本,此处建议修改,避免露出。
         
;       netbios name = MYSERVER
#此处的名字是在网上邻居里面看到的名字,如果用;注释了,默认使用计算机名。
 
;       interfaces = lo eth0 192.168.12.2 /24  192.168.13.2 /24
#代表Samba监听在哪些接口上,;注释之后默认监听所有。
 
;       hosts allow = 127. 192.168.12. 192.168.13.
#代表允许哪些主机访问,;注释之后默认允许所有
 
;       max protocol = SMB2     #协议版本

用户认证相关

1
2
         security = user
         passdb backend = tdbsam    #密码存放方式

user:代表访问需要身份验证

share:代表不需要身份验证,相当于Windows的guest账号

用户需要从本地用户中添加,如何把本地用户添加到Samba:

1
2
3
4
5
6
[root@rh1 ~] # id user1
uid=1001(user1) gid=1001(user1)  groups =1001(user1)
[root@rh1 ~] # smbpasswd -a user1
New SMB password:
Retype new SMB password:
Added user user1.

查看Samba用户有哪些:

1
2
[root@rh1 ~] # pdbedit -L
user1:1001:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[mytmp]      #共享名
#       comment = All Printers           #添加注释
         path =  /data/tmp                  #共享文件路径
         writable = no                    
         #此项默认为no,不添加默认为no
         write list = user1
         #表示只有添加了的用户才有写的权限。
         valid  users  = user1
         #有效的用户,表示只有添加了的用户才有权限访问此共享。
         browseable =  yes         #是否可以看到此共享。
         #此项默认为yes,不添加默认为yes
         hosts deny = 10.42.1.26
         hosts allow = 10.42.1.26
         #当二者添加的IP冲突,allow优先!
         public =  yes        #是否允许匿名登录,不写默认为no
         #public允许的时候,valid user需要注释掉,匿名才能访问。
1
2
3
4
         hosts deny = 10.42.1.0 /24
         hosts allow = 10.42.1.26
         #此网段仅26号可以访问。但是其它网段默认都allow!!
         #Samba的规则是尽可能允许!


testparm   语法检测命令

用Linux挂载

客户端需要安装cifs-utils这个包,否则挂载会报错,注意!

1
[root@rh2 ~] # mount -t cifs //10.42.1.27/mytmp /data/ -o username=user1

setsebool -P samba_enable_home_dirs 1

chcon -t samba_share_t /data/tmp/ -R

登录到共享目录,如果不指定用户名,则为匿名登录

1
2
3
4
5
6
7
8
9
10
11
12
[root@rh2 ~] # smbclient //10.42.1.27/mytmp
Enter root's password: 
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \>  ls
   .                                   D        0  Tue Oct 13 16:19:28 2015
   ..                                  D        0  Mon Oct 12 17:56:14 2015
   inter.txt                           N        0  Mon Oct 12 17:56:27 2015
   11                                  N        0  Tue Oct 13 16:19:28 2015
   新建文本文档.txt              A        0  Tue Oct 13 14:27:27 2015
 
         58929 blocks of size 1048576. 51134 blocks available


添加子配置文件,在全局设置部分里面添加

1
2
3
4
         workgroup = MYGROUP
         server string = Samba Server Version % v
         config  file  /etc/samba/ %U.conf        
         #添加此行,并在samba目录中为单独用户名添加配置文件。


添加到fstable文件,开机挂载

UUID=1d3ca96b-b587-4c99-8237-06f5c315a252 swap                    swap    defaults        0 0

//10.42.1.27/mytmp                        /data                   cifs    defaults,credentials=/etc/samba/cred.txt        0 0

创建/etc/samba/cred.txt这个文件,添加用户名,密码

username=user1

password=redhat



目前客户端只有root才能在挂载的cifs目录下进行写操作。其它的用户没有权限,如何添加:

在客户端fstable文件中添加挂载选项 

1
defaults,credentials= /etc/samba/cred .txt,multiuser,sec=ntlmssp

然后su到一个非root用户,运行命令

1
[chomperwu@rh2 data]$ cifscreds add -u user1 10.42.1.27

输入服务端user1用户的密码就ok了

如果要清除这个用户的权限,运行命令

1
[chomperwu@rh2 data]$ cifscreds clearall

但是运行之后,权限并没有被清除,还是可以写???




本文转自 chomperwu 51CTO博客,原文链接:http://blog.51cto.com/chomper/1702621,如需转载请自行联系原作者
相关文章
|
11月前
|
网络协议 安全 Linux
小白带你学习文件共享服务器FTP和SAMBA的学习(二十二)
小白带你学习文件共享服务器FTP和SAMBA的学习(二十二)
174 0
|
6月前
|
算法 C++ 容器
开心档之 C++ 模板
开心档之 C++ 模板
|
6月前
|
算法 C++ 容器
开心档之C++ 模板
开心档之C++ 模板
|
网络安全 数据安全/隐私保护