Samba服务器搭建了下的步骤如下:

它是实现Linux和Windows之间的文件共享;smbd负责服务器共享文件,客户端权限认证

1.服务安装

yum  –y  install  samba

2.主配置文件是/etc/samba/sam.conf(testparm测试samba配置语法 有没有问题)

 interfaces = lo eth0 192.168.1.177/24 192.168.2.178/24 给哪个网段提供samba服务,注释掉就是给所有用户提供访问

hosts allow = 127. 192.168.1. 192.168.2. 允许哪个网段访问服务器

log file = /var/log/samba/%m.log 每个客户端的日志,%m对应客户端的ip

security = user安全级别实名用户登录,服务器端要有对应账户,share是匿名用户登录

passdb backend = tdbsam 账户和密码存放的数据库

 

[homes]

        comment = Home Directories

        browseable = no

        writable = yes

;       valid users = %S    #登录上来的用户名,登录上来就共享用户的家目录

;       valid users = MYDOMAIN\%S

[test]

                   comment = 共享目录的注释

                   path = /tmp    #指定共享路径

                   writable = yes  #允许客户端写权限,能不能写还要看目录的权限

 

path = /public          #共享的文件系统上的目录

comment = test        #对这个共享的描述

public = yes/no       #是否允许匿名访问

guest ok = yes/no        #同上是否允许匿名访问

writable = yes/no        #是否允许访问(匿名和实名)者可写。当值为no时,匿名用户不能写,可写的用户可以用write list定义

write list = username     #+groupname或@groupname承上,上面如果拒绝写,该字段定义可写的用户和用户组

browseable = yes/no       #共享名称是否可以被浏览到

read only = yes/no        #是否可读

read list = username       #+groupname或@groupname

valid users = 允许访问该共享的用户

invalid users = 不允许访问该共享的用户或者组

 

重启服务/etc/init.d/smb  restart (service  smb  restart)

查看服务有没有开启:netstat  -tlunp

 

PS:登陆需要前先添加samba账户(和系统密码不同)

         要添加的samba账户必须要存在与/etc/passwd文件中

         命令:pdbedit  -L          查看数据库中账户信息(查看添加到samba的用户列表)

         pdbedit

         -a      添加用户

         -r      修改用户信息

         -x     删除账户

         -u username    指定要操作的用户名

         例:pdbedit –a  -u  tom

修改samba账号密码

         smbpasswd username

 

?共享资源只对某个用户可见

环境设置:

1、当前的安全级别即 security字段定义为user

2、将browseable = yes 改为no,意思不让所有人看到这个共享资源名称

处理过程:

1、首先在配置文件中找到那个特殊的共享资源

2、然后编辑配置文件,在全局添加:

config file = /etc/samba/smb.conf.%U  -->保存退出,给某个用户单独设置一个配置文件

保存配置文件并退出

3、为该特殊用户添加相应的配置文件

cd /etc/samba

cp smb.conf smb.conf.tom

4、编辑该配置文件

vim smb.conf.tom

browseable = no 改为yes

5、客户端验证即可

smb.conf内常见变量功能

%S 取代当前共享的名称

%u 代表用户名称

%U 代表当前登陆用户的用户名称

 

 

**让用户修改samba密码的同时修改用户自己的用户密码,只需要一个密码

全局配置下面加下面三行

[global]

        unix password sync = yes

        passwd program = /usr/bin/passwd %u

        pam password change = yes

只能用户自己修改,root修改的密码不行

环境:     系统和samba都拥有Centos这个账户

          Centos的系统密码是123;它的samba账户的密码是1234

实验目的:验证用户修改自己的samba账户密码的同时修改其系统的账户密码

实验过程:将上述三项加入到samba配置文件的global设置中

         重启samba服务

         从终端su到centos用户家目录(模拟centos登陆到系统)

         执行命令smbpasswd【回车】

         输入之前该账户的samba密码,即1234

         输入两次该账户的新密码

         系统提示修改密码成功----此密码即为该用户的samba和系统登陆密码       

3.      windows登录samba服务器

\\192.168.1.254 前面是反斜杠

重新登录的话需要前清缓存:cmd下输入:net  use  *  /del清楚远程连接的缓存

稍微等一会再重新登录

 

4.      linux登录samba服务器

yum search samba查询包

先安装rpm –ivh  samba-client和samba-common这两个包

UNIX-like客户端查看共享

smbclient -L serverip/hostname [-U username%passwd]( –u指定用户登录)

挂载到本地:mount //192.168.1.254/test  /mnt

例:smbclient –L  //192.168.1.254

mount //192.168.1.254/test  /mnt

unix-like客户端访问共享之mount.cifs

[root@localhost ~]# mount //192.168.1.92/tom  /mnt -o username=tom

Password:

实名用户查看共享资源:

smbclient –L  //192.168.1.254  -U tom%1    %后面跟的是用户的密码,最好不加密码,直接跟用户名