SAMBA

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SAMBA相关的知识,希望对你有一定的参考价值。

SAMBA:

启动服务:

     systemctl  start   smb

     service  smb  start

SAMBA 的功能:

共享文件和打印,实现在线编辑

实现登录SAMBA 用户的身份认证

可以进行NetBios 名称解析

外围设备共享

相关包:

Samba 提供smb 服务

Samba-client 客户端 软件

samba-common 通用软件

cifs-utils smb 客户端 工具

samba-winbind 和 和AD 相关

相关服务进程:

smbd 提供smb (cifs务 )服务 TCP:139,445

nmbd NetBIOS 名称解析 UDP:137,138

主配置文件:/etc/samba/smb.conf

帮助参看:man smb.conf

语法检查  例: testparm  -v   /etc/samba/smb.conf

宏定义:

%m 客户端主机的NetBIOS名      %M 客户端主机的FQDN

%H 当前用户家目录路径           %U当前用户用户名

%g 当前用户所属组       %h samba服务器的主机名

%L samba 服务器的NetBIOS名       %I 客户端主机的IP

%T 当前日期和时间         %S可登录的用户名

简单的samba命令:

添加samba 用户

smbpasswd -a <user>

pdbedit -a -u <user>

修改用户密码

smbpasswd <user>

删除 用户和密码 :

smbpasswd –x <user>

pdbedit –x –u <user>

查看samba 用户列表 :

/var/lib/samba/private/passdb.tdb

pdbedit –L –v

查看samba 服务器状态

smbstatus

简单的创建用户,并用windows连接samba:

  先启服务

  在centos6中创建用户这里创建了nologin类型的用户

    useradd  -s   /sbin/nologin  smb1

  用smbpasswd 命令添加为samba服务的用户,跟centos没有关联   :     smbpasswd -a  smb1  #并设置密码

  技术分享


这样就完了!!!!!!!完了!!!!!登陆就行了,可以用win键+R来运行这个,并输入\\加刚才开启服务的ip地址回车登录账号密码,好的成功!

技术分享

这时候有个问题,若服务器有两个samba账号但是第二次用windows登陆却不用输密码直接登录!怎么才能使用另外的账号登录呢,这就需要清除windows的缓存了

    net use   查看连接

    net  use  \\172.17.66.166\IPC$  /del  用该命令清除

之后再登陆一次可以再次输入账号密码!

技术分享

centos系统中连接命令需要安装samba-client这个包

连接命令:smbclient   //172.17.66.166/smb1  -U smb1

输入密码就行了

技术分享

·/etc/samba/smb.conf 设置:

hosts allow =   x.x.x.x   #允许哪些主机可以访问我

log file = /var/log/samba/log.%I  #%I表示来访者的IP地址若没有log level 这个等级设定则不记录日志,来访时只生成文件没内容。

技术分享

重新创建一个共享目录:

技术分享

共享目录名[smbshare1]搜索可看到,实际目录名/app/share1则看不到,两者毫不相关!

comment   #描述信息

read only = NO #默认只读,想要读写则添加此行(writable=yes功能跟read only = No一样)

·public = yes   #不要账号即能登陆,一般不用

valid users =  smb1  smb2   #只允许这两个用户可以登陆,也可以使用linux用户组,前提用户已经加入到samba账号里面用@或+加上组名

技术分享

invalid users   #跟上面意思相反

browsable = No   #不可查看(若知道名可以查看也可以登录,查看全部时查看不到,隐藏文件)

write list = smb1     #不设置写权限,则在此设置的用户具有写权限(例如1,2,3用户valid user =1 ,2则3不能登陆,write list = 1  则2可以登陆不能写,1能登陆能写)

testparm 命令来测试文件内容

mount 挂载

mount  -o username=smb1  //192.x.x.x/smb1 /mnt/smb1

·写到fstab内:账号密码可以写文件内fstab任何人可读不安全


技术分享

文件格式文件名随意指定,但是两边要对应账号密码存放文件权限可设置为400(仅自己可读)

多用户挂载:添加multiuser(在fstab文件内default列加上multiuser)选项多用户挂载

在上面的例子中1,2,3用户访问权限不一样的前提下

#在存放账号密码的文件内使用3用户登录(权限最小的),服务器客户端都要存在这三个系统账号,在客户端切换到1(su - 1),本身是用3挂载权限最小,但是执行此命令(切换用户在1上执行cifscreds  add  -u  1  192.168.x.x   )代表使用1登录samba,拿到读和写的权限。

用户不同查看到的文件夹不同: (相当于一个用户一个配置文件的感觉)

在全局[global]下添加:

    config  file  = /etc/samba/conf.d/%U( %U 跟用户同名的文件)

    vim   /etc/samba/conf.d/smb1

  技术分享  

想使用几个用户创建几个文件(跟用户对应),文件内定义不同的路径和权限,客户端登录则显示不同的内容拥有不同的权限。



本文出自 “mlon客” 博客,请务必保留此出处http://13154101.blog.51cto.com/13144101/1977205

以上是关于SAMBA的主要内容,如果未能解决你的问题,请参考以下文章

smb(samba)服务

常见方案--远程开发代码同步

samba 部署和优化

linux 安装 Samba服务

一文把samba相关的都说清楚

Linux-Samba或NFS实现文件共享