samba基本使用

程序环境:
服务端程序包:samba 与Windows机器交互的服务器和客户端软件。
配置文件:/etc/samba/smb.conf 由samba-common包提供
主程序:
        nmbd: NetBIOS名称服务器
        smbd:SMB/CIFS服务器
单元:
        smb.service
        nmb.service

监听的端口:
        137/udp 138/udp
        139/tcp 445/tcp

准备三台计算机:

proxy:192.168.10.107 192.168.200.2(samba服务器端)

web02:192.168.200.200 (客户端)

windows 10:192.168.10.106(客户端)

安装软件:yum install samba 
检查软件:rpm -q samba

软件安装后在/etc/samba目录下产生3个文件:lmhosts  smb.conf  smb.conf.example

# cp smb.conf{,.bak}

# mv smb.conf.example smb.conf

主配置文件:/etc/samba/smb.conf,有以下描述:

需要修改的主配置文件配置段:
    workgroup = SAMBA  # workgroup = windows NT域名或工作组名,例如:SAMBA


    server string = Samba Server Version %v # server string = 相当于Windows NT描述段


    netbios name = Proxy # netbios name = 用于指定一个不绑定到这台主机名的服务器名,最多15个字符。


    interfaces = lo eth0 eth1 # interfaces = 用于配置Samba监听多个网络接口。如果你有多个网卡,你可以使用"interfaces ="选项来配置Samba监听那些网卡中的哪些。 不要漏掉本地接口(lo)。
    hosts allow = 127. 192.168.10. 192.168.200.  # hosts allow = 允许连接的主机。也可以对每台机器使用这个选项。

共享文件系统配置:[SHARED_NAME]
有三类:
 [homes]:为每个samba用户定义其是否能通过samba服务访问自己的家目录
 [printers]:定义打印服务
 [shared_fs]:定义共享的文件系统

常用指令:
 comment:注释信息
 path:当前共享所映射的文件系统路径
 browsable:是否可浏览,指是否可被用户查看
 guest ok:是否是否允许来宾账号访问
 public:是否公开所有用户
 writable:是否可写
 read only: 是否为只读
 write list:拥有写权限的用户列表
        用户名
        @组名
        +组名

samba用户管理:
 smbpasswd
  smbpasswd [options] USERNAME
   -a:添加
   -x:删除
   -d:禁用
   -e:启用
 pdbedit
   -L:列出samba服务中的所有用户
   -a,--create:添加用户为samba用户
   -u,--user=USER:要管理的用户
   -x,--delete:删除用户
   -t,--password-from-stdin:从标注输出接收字符串作为用户密码

要查看服务器端的共享:
   smbclient -L SMB_SERVER [-U USERNAME]
交互式文件访问:
   smbclient //SMB_SERVER/SHARE_NAME -U USERNAME
 

测试参数是否正确:testparm

在服务器端添加samba账号并且添加这个用户且设置访问samba的密码后激活:
useradd smbuser1
smbpasswd -a smbuser1
smbpasswd -e smbuser1
启动软件:systemctl start smb


客户端:
安装cifs-utils软件,支持cifs文件系统和samba-client

客户端程序:
        smbclient:交互式命令行客户端
        mount.cifs:挂载cifs文件系统的专用命令

在客户端web02上安装samba客户端软件:

yum install samba-client

yum install cifs-utils

在服务器端添加samba账号并且添加这个用户且设置访问samba的密码后激活:
useradd smbuser1
smbpasswd -a smbuser1
smbpasswd -e smbuser1
在客户端web02: smbclient -L 192.168.200.2 -U smbuser1并输入设置的密码,可以看到Samba服务器端导出的内容:

在客户端使用web02上,用smbclient测试服务器的上传和下载服务:

smbclient //192.168.200.2/homes -U smbuser1

 ls显示服务器目录下的内容,!ls显示本地路径下的内容,get从服务器下载文件到当前路径,put从当前路径上传文件到服务器。

在web02客户端,挂载samba服务器共享内容:

临时:

mount -t cifs -o user=smbuser,pass=xxxxx //192.168.200.2/homes /mnt/smb

注意:

df -h 查看挂载情况

ls /mnt/smb 查看服务器共享的内容

永久:

在fstab中写入以下内容挂载samba服务器共享内容:
//192.168.200.2/homes /mnt/smb cifs defaults,_netdev,user=smbuser1,pass=xxxxxx 0 0

在windows客户端,通过映射网络驱动器中,填入服务地址:

再填入用户名和密码:

可以在客户端显示服务器共享的内容:

 注意:一定要关闭服务器端的防火墙,或者用策略放行指定端口,否则客户端会报权限错误。

要共享samba服务器上指定目录:

在samba服务器上添加一个路径:mkdir -pv /data/samba/files

同时更改这个目录的读写权限,指定这个目录可以被smbuser1用户读写执行: setfacl -m  u:smbuser1:rwx /data/samba/files/ (通过更改此目录的所有者为smbuser1也可以)

在配置文件/etc/samba/smb.conf中Share Definitions下添加[myfiles]的内容:

path指定服务器上共享的路径

gest_ok指定来宾账号可见

writable指定这个目录是否可写

重启服务器:systemctl restart smb

在客户端,通过smbclient -L 192.168.200.2 -U smbuser1可见查看到服务器上导出的共享目录:

 在客户端,通过smbclient //192.168.200.2/myfiles -U smbuser1连接服务器端:

ls:查看共享目录中的内容

lcd /etc/samba:切换到客户端的本地目录

!ls:查看本地目录中的内容

put smb.conf:把本地目录中的smb.conf文件上传服务器

把目录共享给用户组:

添加用户smbsuer2,添加用户组smbgrp,设置用户组权限

添加用户smbuser3,但不把这个用户添加到用户组smbgrp中:

更改/etc/samba/smb.conf配置文件:

 重启samba服务器,systemctl restart smb

在客户端用smbuser1,smbuser2和smbuser3用户测试服务器的上传,smbuser1和smbuser2在组smbgpr中,拥有上传权限,而smbuser3不在smbgrp用户组中,只有读权限:

在服务器端输入:smbstatus查看共享情况:

在客户端进行临时挂载:

先创建两个文件夹:/mnt/samba和/mnt/smb

mount -t cifs //192.168.200.2/myfiles /mnt/samba -o username=smbuser1,password=xrdxrd,dir_mode=0777,file_mode=0777

mount -t cifs //192.168.200.2/myfiles /mnt/samba -o username=smbuser1,password=xrdxrd

挂载后使用df -h查看挂载情况,把samba服务器的共享目录分布挂载在/mnt/samba下和/mnt/smb下,root用户拥有读写权限,想要更改/mnt/smb的所有者,文件权限的尝试都失败了。如果想要除root外的用户对此目录有写权限,挂载时候带上选项,dir_mode=0777,file_mode=0777

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值