samba服务 使用

SAMBA服务

访问安装
http://www.samba.org/    #模拟window共享

[root@vm ~]# yum -y install samba
[root@vm ~]# systemctl start smb
[root@vm ~]# ss -antlp| grep smb
LISTEN     0      50           *:445   *:*   users:(("smbd",pid=20155,fd=36))
LISTEN     0      50           *:139   *:*   users:(("smbd",pid=20155,fd=37))

# windows 访问  linux上的samba
win+r  \\10.1.0.11

#  linux  访问 linux上的samba
[root@client ~]# yum -y install samba-client
[root@client ~]# smbclient  -L 10.1.0.11
Enter SAMBA\root's password:


#  linux  访问window上的samba,windows要先开启samba
win  net user test  123  /add 

[root@client ~]# smbclient  -L 10.1.0.1 -U test%123
[root@client ~]# smbclient  -L //10.1.0.1/share -U test%123
smb: \> ls
smb: \>  put files  # 上传
samba 配置
# samba 配置
全局设置:
    [global]	服务器通用或全局设置的部分特定共享设置:
    [homes]		用户的家目录共享
    [printers]	定义打印机资源和服务
    [sharename]	自定义的共享目录配置
其中:#和:开头的语句为注释,大小写不敏感

samba配置中的宏定义:
    %m 客户端主机的NetBIOS名
    %M 客户端主机的FQDN
    %H 当前用户家目录路径
    %U 当前用户的用户名
    %g 当前用户所属组
    %h samba服务器的主机名
    %L samba服务器的NetBIOS名
    %I 客户端主机的IP
    %T 当前日期和时间
    %S 可登录的用户名


[root@vm ~]# rpm -ql samba-common|grep conf
/etc/samba/smb.conf
/etc/samba/smb.conf.example

[root@vm ~]# cat /etc/samba/smb.conf
# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.

[global]
        workgroup = SAMBA # window里的工作组
        # netbios name = linux39  #此设置可以不用IP访问samba   需要启动 nmb服务才可以生效
        # hosts allow = 127.  10.1.0.  # 127的IP   10.1.0.网段的IP可访问
        # log file=/var/log/samba/log.%I   #日志文件名,调用samba宏
        # log_level=2  # 日志级别
        security = user

        passdb backend = tdbsam

        printing = cups
        printcap name = cups
        load printers = yes
        cups options = raw

# 设置家目录共享
[homes]
        comment = Home Directories
        valid users = %S, %D%w%S
        browseable = No
        read only = No
        inherit acls = Yes

[printers]
        comment = All Printers
        path = /var/tmp
        printable = Yes
        create mask = 0600
        browseable = No

[print$]
        comment = Printer Drivers
        path = /var/lib/samba/drivers
        write list = @printadmin root
        force group = @printadmin
        create mask = 0664
        directory mask = 0775

管理SAMBA用户
实现samba用户说明
	包:samba-common-tools
	工具:smbpasswd pdbedit
	用户数据库:/var/lib/samba/private/passdb.tdb
	
说明:samba用户须是Linux用户,建议使用/sbin/nologin

#添加samba用户: 
    smbpasswd -a  <user>
    pdbedit -a -u <user> 
    
#修改用户密码:
    smbpasswd  <user>
    
# 删除用户和密码:
smbpasswd -x <user>
pdbedit -x -u<user>

# 查看samba用户列表: 
pdbedit -L -V

# linux用户    
[root@vm ~]# useradd -s /sbin/nologin  smb1

# 添加为samba账号
[root@vm ~]# smbpasswd -a  smb1    # -a  增加用户   -x  删除
New SMB password:
Retype new SMB password:
Added user smb1.
[root@vm ~]# smbpasswd   smb1  # 修改smb1密码
[root@vm ~]# pdbedit -L
smb1:2001:

[root@vm ~]# pdbedit -Lv    # 查看详细的信息
---------------
Unix username:        smb1
NT username:
Account Flags:        [U          ]
User SID:             S-1-5-21-2709267256-3865259140-523429974-1000
Primary Group SID:    S-1-5-21-2709267256-3865259140-523429974-513
...

[root@vm ~]# smbstatus  # 查看状态
Samba version 4.10.16
...
Service      pid     Machine       Connected at

[root@client ~]# smbclient -L 10.1.0.11 -U smb1%byd
[root@client ~]#  smbclient //10.1.0.11/smb1  -U smb1%byd
Try "help" to get a list of possible commands.
smb: \>

\\10.1.0.11\smb1
配置特定目录共享
每个共享目录应该有独立的[ ]部分
[共享名称] 远程网络看到的共享名称
comment	注释信息 
path	所共享的目录路径
public	能否被guest访问的共享,默认no,和guestok类似 
browsable	是否允许所有用户浏览此共享,默认为yes,no为隐藏 
writable=yes	可以被所有用户读写,默认为no
writable=yes	等价readonly=no,二选一
write list用户,@组名,+组名,用,分隔,如writable=no,列表中用户或组可读写,不在列表中用户只读 valid users特定用户才能访问该共享,如为空,将允许所有用户,用户名之间用空格分隔
vim /etc/samba/smb.conf
[share]
path=/app/dir
valid users=admins,@docker
write list=@docker
#writeable = no 
browseable = no

groupadd docker 
usermod -G docker smb1
groupmems -l -g docker
利用SAMBA实现指定目录共享
#在samba服务器上安装samba包 
yum -y install samba
#创建samba用户和组 
groupadd -r admins
useradd -s /sbin/nologin -G admins smb1 
smbpasswd -a smb1
useradd -s /sbin/nologin smb2
smbpasswd -a smb2
#创建samba共享目录,
mkdir /testdir/smbshare
chgrp admins /testdir/smbshare 
chmod 2775 /testdir/smbshare

#samba服务器配置
vim/etc/samba/smb.conf
...
[share]
path =/testdir/smbshare 
write 1ist = @admins

systemctl enable --now smb nmb



挂载smb
#用smb1 用户挂载smb共享到本机并访问 
mkdir/mnt/smb1
mount -o username=smb1,password=smb  //smbserver/share  /mnt/smb1 
echo"Hello smb1 ">/mnt/smb1 /file.txt


#fstab 挂载
yum -y install cifs-utils
vim /etc/fstab
//10.1.0.11/share  /mnt/  cifs  cred=/etc/user.txt 0 0 

cat /etc/user.txt 
username=smb1  #或user=smb1
password=password  #或pass=password
chmod 600 /etc/user.txt


#  挂载问题不能开机
Linux16  行尾   rw init=/sysroot  bin/sh
vi /sysroot/etc/fstab
不同samba用户访问相同的samba共享

实现不同samba用户访问相同的samba共享,实现不同的配置

useradd -s /sbin/nologin -r smb1 
useradd -s /sbin/nologin -r smb2 
useradd -s /sbin/nologin -r smb3
smbpasswd -a smb1 
smbpasswd -a smb2 
smbpasswd -a smb3

#修改samba配置文件
vim /etc/samba/smb.conf
#在workgroup下加一行
config file=/etc/samba/conf.d/%U  # 说明:%U表示用户名   每个用户有自己的配置
[share]
Path=/data/dir 
Read only= NO 
Guest ok = yes
write list=@wheel

#针对smb1和smb2用户创建单独的配置文件
vim /etc/samba/conf.d/smb1
[share]
Path=/data/dir1
Read only=No
Create mask=0644 #说明:默认为744

vim /etc/samba/conf.d/smb2
[share]
path=/data/dir2
systemctl restart smb nmb

#用户smb1,smb2,smb3访问share共享目录,看到目录是不同目录
smbc1ient //sambaserver/share -U smb1%smb1
smbclient //sambaserver/share -U smb2%smb2 
smbc1ient //sambaserver/share -U smb3%smb3
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值