天天看点

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

修改用户密码

smbpasswd

删除 用户和密码

smbpasswd –x

pdbedit –x –u

查看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  #并设置密码

SAMBA

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

SAMBA

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

    net use  

查看连接

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

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

SAMBA

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

连接命令:smbclient  

//172.17.66.166/smb1  -u smb1

输入密码就行了

SAMBA

·/etc/samba/smb.conf

设置:

hosts allow =  

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

log file =

/var/log/samba/log.%i  #%i表示来访者的ip地址若没有log level

这个等级设定则不记录日志,来访时只生成文件没内容。

SAMBA

重新创建一个共享目录:

SAMBA

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

comment  

#描述信息

read only = no

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

= no一样)

·public = yes  

#不要账号即能登陆,一般不用

valid users =  smb1  smb2  

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

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任何人可读不安全

SAMBA

文件格式文件名随意指定,但是两边要对应账号密码存放文件权限可设置为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

SAMBA

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

继续阅读