Centos搭建Samba

1.简介

SMB(Server Messages Block,服务器消息块),是在Linux和UNIX系统上实现信息服务块SMB协议的一个免费软件,由服务端程序构成,在同一个局域网内客户机可以通过该协议可以访问服务器上的共享文件系统,打印机等其他资源,samba最大的功能就是能实现Linux和Windows系统之间的文件共享和打印共享

2.为什么要用SMB

早期网络中都是通过FTP的来对文件进行传输,而FTP只能对文件进行传输不能对文件里的内容直接进行修改,而无法实现文件系统挂载,从而为了解决这些问题所有使用了Samba服务,

3.登录模式

share 匿名模式

user 本地用户验证(默认是本地用户登录,而这个本地用户不是主机里面创建的用户,而是samba通过本地用户生成的一个Samba专用用户,数据库文件passdb.tdb)

pdbedit + 选项 + 用户

-a 用户名

建立 Samba 账户

-x 用户名

删除 Samba 账户

-L

列出账户列表

-Lv

列出账户详细信息的列表

smbpasswd + 选项 + 用户

-a

向smbpasswd文件中添加用户

-c

指定samba的配置文件

-x

从smbpasswd文件中删除用户

-d

在smbpasswd文件中禁用指定的用户

-e

在smbpasswd文件中激活指定的用户

-n

将指定的用户的密码置空

用户别名 (类似虚拟用户)

1)启用别名

vim /etc/samba/smb.conf

username map = /etc/samba/smbuser

2)添加别名

touch /etc/samba/smbuser

echo "Chinaskills" = Ch >> /etc/samba/smbuser

3)测试

smbclient + -u + 别名 + //服务器IP地址/共享名

4.检测命令

testparm(test parameter)

功能说明:测试 Samba 的设置是否正确无误。

语 法:testparm [-s][配置文件][<主机名称>地址>]

补充说明:执行 testparm 指令可以简单测试 Samba 的配置文件,假如测试结果

无误,Samba 常驻服务就能正确载入该设置值,但并不保证其后的操作如预期般

一切正常。

参 数:

-s 不显示提示符号等待用户按下 Enter 键,就直接列出 Samba 服务定义信息。

5.客户端连接命令

linux:

smbclient(samba client)

功能说明:可存取 SMB/CIFS 服务器的用户端程序

语 法:smbclient [-u][用户名][-L][//服务器IP地址] //查看服务器共享

smbclient [-u][用户名][//服务器IP地址/共享名] //登录服务器共享

Windows:

\\服务器IP\共享名

net user * /del //清空登录缓存

6.SELlinux

布尔变量

解释

samba_create_home_dirs

允许Samba独立创建家目录

samba_domain_controller

允许Samba作为域控制器,并赋予useradd,groupadd,passwd等命令的权限

samba_enable_home_dirs

允许共享用户家目录

samba_export_all_ro

允许共享目录或文件只读信息

samba_export_all_rw

允许共享目录或文件读写信息

samba_run_unconfined

允许执行非限定脚本

samba_share_nfs

允许共享nfs卷

smbd_anon_write

setsebool -P samba_enable_home_dires 1

setsebool -P samba_export_all_rw 1

7.iptables

[root@localhost ~]# iptables -I INPUT -p tcp --dport 139 -j ACCEPT

[root@localhost ~]# iptables -I INPUT -p tcp --dport 445 -j ACCEPT

[root@localhost ~]# iptables -I INPUT -p udp --dport 137:138 -j ACCEPT

iptables -A FORWARD -p tcp -s 172.16.0.0/24 -d 192.168.100.200 -m miltiport --dport 137,138,139,445 -j ACCEPT

8.挂载

linux:

临时:

mount -t cifs -o username="用户",password="密码" //服务器IP地址/f服务器共享目录 /本地挂载目录

永久: /etc/fstab

//服务器ip地址/服务器共享目录 /本地挂载目录 cifs defaults,username="用户",password=密码 0 0

windows:

我的电脑>计算机>此电脑>右键映射网络驱动器,热后输入挂载地址的目录就好了

9.实验

• 安装与配置Samba共享服务;

• 创建目录为/share/public的共享目录;

• 共享名为public;

• 仅支持匿名用户的只读访问(请在该目录内存放一个文件名为file.txt,文件内容为“Test File”以便于测试);

• 创建目录为/share/files的共享目录;

• 共享名为files;

• 创建zhangsan,wangwu两个用户,密码均为Skills39,并且都能从client客户端登录访问到该共享目录并上传文件;

• zhangsan用户可以查看和删除所有人的文件;

• wangwu用户只能查看和删除自己的文件,不能查看和删除别人的文件。

yum -y install samba-*
[root@localhost ~]# mkdir /share/public -p
[root@localhost ~]# touch /share/public/file.txt
[root@localhost ~]# echo "Test File" > /share/public/file.txt
[root@localhost ~]# mkdir /share/files 
[root@localhost ~]# chmod 777 /share/files
[root@localhost ~]# useradd -s /sbin/nologin zhangsan
[root@localhost ~]# useradd -s /sbin/nologin wangwu
[root@localhost ~]# echo "Skills39" | passwd --stdin zhangsan
[root@localhost ~]# ehco "Skills39" | passwd --stdin wangwu
[root@localhost ~]# pdbedit -a -u zhangsan
[root@localhost ~]# pdbedit -a -u wangwu
[root@localhost ~]# pdbedit -L
zhangsan:1005:
wangwu:1006:
[root@localhost ~]# iptables -I INPUT -p tcp --dport 139 -j ACCEPT 
[root@localhost ~]# iptables -I INPUT -p tcp --dport 445 -j ACCEPT 
[root@localhost ~]# iptables -I INPUT -p udp --dport 137:138 -j ACCEPT
[root@localhost ~]# cd /etc/samba
[root@localhost samba]# vim /smb.conf
[public]
        comment = Anonymous
        path = /share/public
        public = yes
        writable = no
        guest ok = yes
        browseable = yes
[files]
        comment = Users
        path = /share/files
        pubilc = no
        broweable = yes
        writable = no
        admin users = zhangsan
        valid users = zhangsan,wangwu
        write list = zhangsan

测试:

[root@localhost ~]# touch aaa bbb ccc
[root@localhost ~]# echo aaa > aaa
[root@localhost ~]# echo bbb > bbb
[root@localhost ~]# echo ccc > ccc
[root@localhost ~]# smbclient -U zhangsan //192.168.100.100/files
Enter zhangsan's password:
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.10.16]
smb: > put aaa
putting file aaa as \aaa (0.8 kb/s) (average 0.8 kb/s)
smb: > ls
.                                   D        0  Wed Aug 17 12:25:29 2022
..                                  D        0  Wed Aug 17 11:10:33 2022
aaa                                 A        4  Wed Aug 17 12:25:29 2022
            18307072 blocks of size 1024. 11965924 blocks available
smb: >^C
PS:这里使用zhangsan用户发现可以进行写权限,那我们在试试wangwu用户是否能写
[root@localhost ~]# smbclient -U wangwu //192.168.100.100/files
Enter wangwu's password: 
Domain=[SAMBA] OS=[Windows 6.1] Server=[Samba 4.10.16]
smb: \> put bbb
NT_STATUS_ACCESS_DENIED opening remote file \bbb
smb: \> ls
  .                                   D        0  Wed Aug 17 12:25:29 2022
  ..                                  D        0  Wed Aug 17 11:10:33 2022
  aaa                                 A        4  Wed Aug 17 12:25:29 2022

        18307072 blocks of size 1024. 11966144 blocks available
smb: \> 
可以查看不能写入
[root@localhost ~]# cat /etc/fstab | grep 192.168.100.100
//192.168.100.100/public    /public    cifs    defaults,username=zhangsan,password=Skills39 0 0
[root@localhost ~]# mkdir /publi
[root@localhost ~]# mount -a
[root@localhost ~]# df -h
Filesystem                Size  Used Avail Use% Mounted on
/dev/mapper/centos-root    18G  1.6G   16G   9% /
devtmpfs                  479M     0  479M   0% /dev
tmpfs                     489M   12K  489M   1% /dev/shm
tmpfs                     489M  6.8M  483M   2% /run
tmpfs                     489M     0  489M   0% /sys/fs/cgroup
/dev/sda1                 497M  125M  373M  25% /boot
tmpfs                      98M     0   98M   0% /run/user/0
/dev/sr0                  4.1G  4.1G     0 100% /media/cdrom
//192.168.100.100/public   18G  6.1G   12G  35% /public
[root@localhost ~]# cd /public/
[root@localhost public]# ls
file.txt
[root@localhost public]# touch 123.txt
touch: cannot touch ‘123.txt’: Permission denied
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值