Linux- 关于samba你应该懂的操作啊~

samba

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Linux- 关于samba你应该懂的操作啊~_第1张图片

服务器:系统(硬盘)的用途

网络文件系统
              sambac-cifs  -windows+svn linux unix
(
自动挂在卸载) nfs-nfs  IBM 403  yum clean all
 

yum search samb

Linux- 关于samba你应该懂的操作啊~_第2张图片
yum install samba-common.x86_64 samba.x86_64 samba-client.x86_64 
安装这三个

Linux- 关于samba你应该懂的操作啊~_第3张图片
systemctl start smb 
开启
netstat -anlpte | grep smb
两个接口
Linux- 关于samba你应该懂的操作啊~_第4张图片
netstat -anlpte | grep nmb
smbclient -L //172.25.254.182 匿名提示输入密码 没有密码就直接回车
Linux- 关于samba你应该懂的操作啊~_第5张图片
Enter root's password:
回车
Anonymous login successful(
匿名)
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]

    Sharename       Type     Comment
    ---------       ----     -------
    IPC$            IPC       IPC Service (Samba Server Version4.2.3)
Anonymous login successful
Domain=[MYGROUP] OS=[Windows 6.1] Server=[Samba 4.2.3]

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

    Workgroup            Master


 id student  (
必须是系统有的用户)
[root@server ~]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
smbpasswd -a student

Linux- 关于samba你应该懂的操作啊~_第6张图片
[root@desktop ~]# smbpasswd -a student 
加入用户
New SMB password:
Retype new SMB password:
Added user student.

smbclient  //172.25.254.182 -U student用户登陆没有-L

Linux- 关于samba你应该懂的操作啊~_第7张图片

getenforce
 getsebool -a | grep samba
[root@desktop ~]# systemctl stop iptables.service (测试的时候保证火墙是关闭的状态 selinux不是强制状态 或者也可以选择更改安全上下文 就不用更改selinux的状态)

82主机 进行挂载 mount -o username=student,password=123 //172.25.254.182/student /mnt/ (挂载到/mnt/下面共享自己目录

Linux- 关于samba你应该懂的操作啊~_第8张图片

更改workgroup的名字为annie vim /etc/samba/smb.conf
Linux- 关于samba你应该懂的操作啊~_第9张图片
重启服务进行测试查看 smbclient  -L  //172.25.254.182

Linux- 关于samba你应该懂的操作啊~_第10张图片

在配置文件中修改只给那个ip看 这里是只给172.25.254.81看

Linux- 关于samba你应该懂的操作啊~_第11张图片

然后我们用82 主机进行测试 会发现被禁止了


使用81主机进行测试 登录成功

Linux- 关于samba你应该懂的操作啊~_第12张图片

同样的我们也可以只对某一个ip进行禁止 原理同上 这里就不多加进行测试了


2 共享目录的基本设定

vim /etc/samba/smb.conf

320 ;       write list = +staff
321         [DATA] 共享目录名称
322         comment = weixin data 对共享目录的描述
323         path = /westos 共享目录的绝对路径
324 
systemctl restart smb.service 修改完进行重启使得修改的配置生效



测试进行查看  smbclient -L //172.25.254.182

Linux- 关于samba你应该懂的操作啊~_第13张图片

查看一下共享目录的东西

Linux- 关于samba你应该懂的操作啊~_第14张图片

[root@desktop ~]# mkdir /annie  建立目录

[root@desktop ~]# ls -ld /annie/
drwxr-xr-x. 2 root root 6 Dec  3 01:05/annie/
[root@desktop ~]# touch /annie/file{1..3}
[root@desktop ~]# ls /annie/
file1  file2  file3              
Linux- 关于samba你应该懂的操作啊~_第15张图片
如上图在共享目录下建立了三个文件 之后我们再用smb进行查看 会发现多了刚才建立的三个文件

Linux- 关于samba你应该懂的操作啊~_第16张图片
这里如果我们把selinux 改为强制状态 会发现访问不了 这时我们可以通过更改文件上下文的方式来使其可以正常访问 setenforce 1

Linux- 关于samba你应该懂的操作啊~_第17张图片
更改文件上下文的方式如下所示

Linux- 关于samba你应该懂的操作啊~_第18张图片

[root@desktop ~]# ls -Zd /annie/

drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /annie/
[root@desktop ~]# semanage fcontext -a -t samba_share_t '/annie(/.*)?'
[root@desktop ~]# ls -Zd /westos/
drwxr-xr-x. root root unconfined_u:object_r:default_t:s0 /annie/
[root@desktop ~]# restorecon -FvvR /annie/
restorecon reset /westos contextunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restorecon reset /westos/file1 contextunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restorecon reset /westos/file2 contextunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
restorecon reset /westos/file3 contextunconfined_u:object_r:default_t:s0->system_u:object_r:samba_share_t:s0
之后再用smb的方式进行访问试试 发现访问可以成功了
Linux- 关于samba你应该懂的操作啊~_第19张图片
我们把/DATA用普通用户的身份挂载到/mnt下 mount -o username=student,password=123 /mnt/ 

df查看挂载是否成功

Linux- 关于samba你应该懂的操作啊~_第20张图片
上面的是临时挂载 这里我们在进行一下永久挂载 vim /etc/fstab中写入

Linux- 关于samba你应该懂的操作啊~_第21张图片
之后mount -a 使得配置写入成功 df在进行查看挂载是否成功

Linux- 关于samba你应该懂的操作啊~_第22张图片

之后我们修改配置文件使得匿名用户可以实行挂载


Linux- 关于samba你应该懂的操作啊~_第23张图片

匿名用户这里用的guest(windows中的匿名用户也是这个叫法) 之后进行挂载测试 匿名用户 没有密码 挂载的时候直接回车

[root@foundation82 Desktop]# mount //172.25.254.182/DATA /mnt/ -ousername=guest,password=""  挂载
[root@foundation23 Desktop]# df
Filesystem            1K-blocks     Used Available Use% Mounted on
/dev/sda3             307974224 58992412248981812  20% /
devtmpfs                1868076        0  1868076   0% /dev
tmpfs                   1881152      484  1880668   1% /dev/shm
tmpfs                   1881152     9024  1872128   1% /run
tmpfs                   1881152        0  1881152   0% /sys/fs/cgroup
/dev/sda1                508588   149304   359284  30% /boot
/dev/loop0              3947824  3947824         0 100% /var/www/html/rhe17.2
tmpfs                    376232       28   376204   1% /run/user/1000
//172.25.254.123/DATA  10473900  3202684  7271216  31% /mnt

vim /etc/fstab    
永久挂载
UUID=4ffae361-4c26-4403-b4e3-dd4855630611 swap                    swap    defaults        0 0
//172.25.254.182/DATA  /mnt cifs  defaults,username=guest,password=""0  0 

Linux- 关于samba你应该懂的操作啊~_第24张图片
同样的匿名用户也可以用这个方法进行永久挂载

Linux- 关于samba你应该懂的操作啊~_第25张图片
之后mount -a 使得配置写入成功 df在进行查看挂载是否成功

Linux- 关于samba你应该懂的操作啊~_第26张图片

设定可写 

Linux- 关于samba你应该懂的操作啊~_第27张图片

之后我们挂载后切换到/mnt/下进行测试 发现还是无法建立和删除文件

Linux- 关于samba你应该懂的操作啊~_第28张图片

这时因为对于这个文件我们还没有权限 仅仅是服务支持 但是权限不支持  所以这里我们就要进行权限的给予

Linux- 关于samba你应该懂的操作啊~_第29张图片

之后再到挂载的目录下进行测试 发现文件的建立与删除都可以 则测试成功

Linux- 关于samba你应该懂的操作啊~_第30张图片

设定指定用户可写  我们也可以设定只有谁能写
write list = student #可写用户 
write list = +student #可写用户组 
write list = @student  如下图所示这里我们就设定的是只有student用户可写

Linux- 关于samba你应该懂的操作啊~_第31张图片

我们用匿名用户进行测试一下 切换到挂载目录下 发现果然不可写

[root@foundation82 Desktop]# mount //172.25.254.182/DATA /mnt/ -ousername=guest,password=""

[root@foundation82 Desktop]# cd /mnt
[root@foundation82 mnt]# touch file
touch: cannot touch ‘file’: Permission denied 
(不可写)

Linux- 关于samba你应该懂的操作啊~_第32张图片

studen用户登录发现还是正常可写 测试成功

Linux- 关于samba你应该懂的操作啊~_第33张图片

admin users = admin #共享的超级用户指定

 admin users = admin 赋予超户身份

Linux- 关于samba你应该懂的操作啊~_第34张图片

建立一个admin用户 并将其加入smb中

Linux- 关于samba你应该懂的操作啊~_第35张图片

之后用admin用户进行挂载测试 挂载目录/mnt下看看是否可以写 发现果然可写这里使用的就是超级用户的权利

Linux- 关于samba你应该懂的操作啊~_第36张图片

browseable=no 可浏览功能 valid users = +student只能student 的用户组才能浏览

之后进行测试 用annie用户进行测试 因为他属于student 的所有组(上面加过的) 所以可以进行登录查看

Linux- 关于samba你应该懂的操作啊~_第37张图片

用其他用户riven进行登录发现查看不了 内容被隐藏了



[root@server ~]# rpm -qa | grep samba
samba-client-libs-4.2.3-10.el7.x86_64
samba-client-4.2.3-10.el7.x86_64
samba-common-4.2.3-10.el7.noarch
samba-common-tools-4.2.3-10.el7.x86_64
samba-common-libs-4.2.3-10.el7.x86_64
samba-libs-4.2.3-10.el7.x86_64
samba-4.2.3-10.el7.x86_64



SMB多用户挂载
原因
[root@foundation82~]# mount //172.25.254.182/DATA /mnt/ -o username=student,password=123
[root@foundation82~]# cd /mnt
[root@foundation82 mnt]# touch lh
[root@foundation23 mnt]# su - kiosk 
能看到不安全 所以这里我们需要用到多用户挂载 使得只有smb服务中的用户才可以看到
Last login: Sun Dec  3 08:37:26 CST 2017on :0
[kiosk@foundation23 ~]$ ls /mnt
file  file1  file2 file3  l  lh o
Linux- 关于samba你应该懂的操作啊~_第38张图片
(客户机) 这里是在客户中集中进行操作的 !!!!!
[root@foundation82 ~]# yum install cifs-utils -y
Loaded plugins: langpacks, product-id, search-disabled-repos,subscription-
              : manager
This system is not registered to Red Hat Subscription Management. You can usesubscription-manager to register.
Package cifs-utils-6.2-7.el7.x86_64 already installed and latest version
Nothing to do
Linux- 关于samba你应该懂的操作啊~_第39张图片
[root@foundation23 ~]# vim /root/smbfile 
编辑文件
[root@foundation23 ~]# cat /root/smbfile 
里面写入smb用户

username=student
password=123


                                                    SMB
多用户认证
[root@foundation82 ~]# mount -o credentials=/root/smbfile,multiuser,sec=ntlmssp//172.25.254.182/DATA /mnt

[root@foundation82 ~]# df
Filesystem            1K-blocks     Used Available Use% Mounted on
/dev/sda3             307974224 58943520249030704  20% /
devtmpfs                1868076        0  1868076   0% /dev
tmpfs                   1881152      484  1880668   1% /dev/shm
tmpfs                   1881152     9024  1872128   1% /run
tmpfs                   1881152        0  1881152   0% /sys/fs/cgroup
/dev/sda1                508588   149304   359284  30% /boot
/dev/loop0              3947824  3947824         0 100% /var/www/html/rhe17.2
tmpfs                    376232       24   376208   1% /run/user/1000
//172.25.254.123/DATA  10473900  3202760  7271140  31% /mnt

Linux- 关于samba你应该懂的操作啊~_第40张图片
[root@foundation82 ~]# cd /mnt
[root@foundation82 mnt]# touch lala  
建立文件lalastudent
[root@foundation82 mnt]# su - kiosk 切换到kiosk用户 用ls 会发现 无法进行查看!!!!
Last login: Sun Dec  3 16:10:53 CST 2017on pts/0
[kiosk@foundation82 ~]$ ls /mnt
ls: cannot access /mnt: Permission denied
看不到
Linux- 关于samba你应该懂的操作啊~_第41张图片
[kiosk@foundation82 ~]$ cd /mnt
[kiosk@foundation82 mnt]$ ls
ls: reading directory .: Permission denied
[kiosk@foundation82 mnt]$ cifscreds add -u westos 172.25.254.123 
smb用户身份查看
Password:
[kiosk@foundation82 mnt]$ ls 发现可以查看成功了!!!!!
file  file1  file2 file3  l  lalala1 lalala3
[kiosk@foundation82 mnt]$ touch ni{1..3}  
建立文件(ni1 ni2 ni3)
Linux- 关于samba你应该懂的操作啊~_第42张图片
服务器端查看
[root@server ~]# cd /annie/ 切换到共享目录的绝对路径中进行查看
[root@server annie]# ls
file  file1 ile2  file3 l  lalala1 lalala3 ni1 ni2 ni3可以看到刚才客户端用annie用户登陆创建的三个文件
Linux- 关于samba你应该懂的操作啊~_第43张图片


                                                                                                           over~


 

你可能感兴趣的:(Linux- 关于samba你应该懂的操作啊~)