Samba服务

Samba服务是基于类UNIX系统的SMB/CIFS协议工具,可以支持Linux与Windows系统之间文件共享。

服务端程序:

  • testparm      检查smb.conf配置是否正确
  • smbd           Smb服务daemon
  • nmbd           NetBIOS名称服务daemon
  • smbpasswd   配置账号密码

客户端程序

  • smbmount   挂载远程共享目录
  • smbclient    命令行访问工具,类似于FTP客户端

其他工具:smbstatus, smbumount, smbprint, smbprint.sysv, smbrun

NetBIOS   Windows网络主机名称,最长为16个字符。是主机加入Widnows工作组使用的网络名。

安装

yum install samba.x86_64

最简配置

1.编辑配置文件:#/etc/samba/smb.conf

[global]
workgroup = WORKGROUP
server string = "MySamba"
netbios name = "MySamba Server ip"
security = share

[public1]
path = /home/mysamba  #不要将mysamba目录设置到/home下某个子用户目录中,否则无法访问
public = yes
writable = yes

2.设置共享目录的权限

chmod 777 /home/mysamba -R

3.重启samba服务,让修改后的配置文件生效

/etc/init.d/smb restart  # start stop restart

其它启动方式

/usr/sbin/smbd -D
/usr/sbin/nmbd -D

smbd [-D|--daemon] [-F|--foreground] [-S|--log-stdout] [-i|--interactive] [-V] [-b|--build-options]
[-d <debug level>] [-l|--log-basename <log directory>] [-p <port number(s)>] [-P <profiling level>]
[-s <configuration file>] [--no-process-group]

nmbd [-D|--daemon] [-F|--foreground] [-S|--log-stdout] [-i|--interactive] [-V] [-d <debug level>]
[-H|--hosts <lmhosts file>] [-l <log directory>] [-p|--port <port number>] [-s <configuration file>]
[--no-process-group]

4.访问

Windows系统直接在文件浏览器中输入:  \192.168.1.88   就能看到名为public1的共享目录。

linux系统在文件浏览器中输入:   smb://192.168.1.88

配置文件详解

/etc/samba/smb.conf

查看帮助:man smb.conf 或 文件内部注释

[global]    #全局参数,整个系统的规则与公共变量
netbios name = pc-name     #Windows网上邻居中显示的机器名
workgroup = 所属NT域名或工作组名称
server string =  主机描述信息
hosts allow = 192.168.1.  192.169.3.     #允许哪些机器可以访问samba服务器
guest account = nobody   
invalid users = root  
valid users = aaa bbb security
= user #定义访问权限,从低到高依次为:share, user(连接需要账号) ,server. encrypt passwords = true #是否需要加密密码,Windows默认加密,Linux默认非加密,user安全级别为加密,share级别可不加密。 smb passwd file = /etc/samba/smbpasswd interfaces = 192.168.1.50/24 #配置smb服务所使用的网卡IP和子网掩码,如有多个网卡需要全部列出 name resolve order = host dns bcast #从机器netbios名称到IP地址的解析顺序,默认顺序为host lmhosts wins bcast。如果局域网有dns,
#可以设置为hsot dns bcast wins support
= no public = yes #在网上邻居中是否可见 browseable = yes #在网上邻居中是否可见 printing = bsd #指定Linux使用哪个打印机守护进程(bsd, sysv, hpux, aix, qnx ,plp),同时向samba说明命令lpr和lpq的省确值 printcap name = /etc/printcap #打印机配置文件位置 load printers = no #是否加载printcap定义的所有打印机供浏览 log file = /var/log/samba/log.%m #定义日志文件 max log size = 1000 #日志文件最大值(KB) username map =/etc/samba/smbuser #客户机和服务器之间进行用户映射的信息,将window和linux用户映射为同一个账号。

#编码的配置
display charet = UTF-8
unix charset = UTF-8
dos charset = cp936

#其他
guset account = guestname
null password = yes


[ShareName] #共享资源配置,控制每个用户目录的共享权限。节点名字就是其他机器可以看到的“目录”名,可以自己定义
comment = 共享资源的描述
path = /home/samba
public = yes
browseable = yes #是否在网上邻居中出现
writable = no
create mask = 0700 #写文件时的属性
directory mask = 0700 #创建目录时的属性
printable = no
hosts allow = 10.1.1.3 10.1.2.
security = user
valid users = aaa bbb

/etc/passwd

samba账号配置,因为包含密码信息,所以拥有者需要为root,并且权限为600。

其中的账号必须是系统中已经存在的账号,但是samba登录密码和本机登录密码可以不一样。samba密码只能用于samba访问。

#username = samba_passwd

账号管理可以直接配置该文件,也可用smbpasswd命令配置。

smbpasswd -a username     #添加账号,username必须是系统中存在的账号(如果没有需要用useradd命令新建用户)
smbpasswd -x username     #删除账号

/etc/samba/smbuser

客户机和服务器用户映射

#linuxUser = user list
root = admin administrator  #将Windows管理员账号映射为root用户

smbfs

可以通过mount和smbfs挂载远程的共享文件夹。(安装smbfs: yum install smbfs)

mount -t smbfs -o  username=administrator,password=123456 //10.1.1.88/public1  /mnt/tmp 
或
smbmount //
10.1.2.88/public1 /mnt/tmp -o username=administrator

smbclient

smb客户端工具,命令行访问samba。

smbclient -L 10.1.1.88    #列出某个机器的共享文件夹(可跳过密码)
smbclient -c "ls"  //IP/share  -U username     #列出某个共享文件夹的内容
smbclient -c "ls"  //IP/share  -U username%passwd   #同上,不需要输入密码
smbclient //IP/share  -U username[%passwd]     #登录samba服务器的共享目录,登陆后进入smb:>环境,
                            #可用ls, cd ,put ,get, help等命令。q或Ctrl+d退出。

图形配置工具

  • system-config-samba 
  • 系统-系统管理-Samba

    

参考文档

http://blog.chinaunix.net/uid-9525959-id-2001825.html

原文地址:https://www.cnblogs.com/pixy/p/4911689.html