samba配置详解与常用命令格式

samba配置详解与常用命令格式

Samba的配置文件为/etc/samba/smb.conf,通过修改这个配置文件来完成我们的各种需求。打开这个配置文件,你会发现很多内容都用”#”或者”;”注视掉了。先看一下未被注释掉的部分:

[global]
        workgroup = MYGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw
[homes]
        comment = Home Directories
        browseable = no
        writable = yes
[printers]
        comment = All Printers
        path = /var/spool/samba
        browseable = no
        guest ok = no
        writable = no
        printable = yes

主要有以上三个部分:[global], [homes], [printers]。

(1)[global] 定义全局的配置

(2)[homes] 该部分内容共享用户自己的家目录
当用户登录到samba服务器上时实际上是进入到了该用户的家目录,用户登陆后,共享名不是homes而是用户自己的标识符,对于单纯的文件共享的环境来说,这部分可以注视掉。

(3)[printers] 该部分内容设置打印机共享

其中:

”workgroup”用来定义工作组,一般情况下,需要我们把这里的”MYGROUP”改成”WORKGROUP”(windows默认的工作组名字)。

security = user #这里指定samba的安全等级。关于安全等级有四种:

    > share:用户不需要账户及密码即可登录samba服务器

    > user:由提供服务的samba服务器负责检查账户及密码(默认)
 
    > server:检查账户及密码的工作由另一台windows或samba服务器负责
 
    > domain:指定windows域控制服务器来验证用户的账户及密码。

load printers 和 cups options 两个参数用来设置打印机相关。

passdb backend = tdbsam  # passdb backend (用户后台),samba有三种用户后台:smbpasswd,tdbsam和ldapsam.

1.smbpasswd
该方式是使用smb工具smbpasswd给系统用户(真实用户或者虚拟用户)设置一个Samba 密码,客户端就用此密码访问Samba资源。smbpasswd在/etc/samba中,有时需要手工创建该文件。
2.tdbsam
使用数据库文件创建用户数据库。数据库文件叫passdb.tdb,在/etc/samba中。passdb.tdb用户数据库可使用smbpasswd –a创建Samba用户,要创建的Samba用户必须先是系统用户。也可使用pdbedit创建Samba账户。pdbedit参数很多,列出几个主要的:
pdbedit –a username:新建Samba账户。
pdbedit –x username:删除Samba账户。
pdbedit –L:列出Samba用户列表,读取passdb.tdb数据库文件。
pdbedit –Lv:列出Samba用户列表详细信息。
pdbedit –c “[D]” –u username:暂停该Samba用户账号。
pdbedit –c “[]” –u username:恢复该Samba用户账号。
3.ldapsam
基于LDAP账户管理方式验证用户。首先要建立LDAP服务,设置“passdb backend = ldapsam:ldap://LDAP Server”

[myshare]常用参数  其中[]里面的MyShare指定共享名,一般就是网络邻居里面可以看见的文件夹的名字。
    comment = My share
    path = /samba                                //共享路径
    browseable = Yes                            //可以被浏览,就是在网络邻居中能看到共享名
    read only = No                             //可读写
    guest ok = Yes                            //允许匿名访问,这个也需要设置,否则匿名无法访问 
    valid users = samba                      //有效的用户和组
    invalid users = xll                     //无效用户和组    
    read list = samba                      //只读用户和组(如果read only = No,只读用户需要在此设置)
    write list = samba                    //可读写用户和组(如果read only = Yes,可读写用户需要在此设置)
    allow hosts = 192.168.100.236        //允许访问主机列表,支持通配符
    deny hosts = 192.168.100.0/24       //禁止访问主机列表,支持通配符

实战:

  1. 共享一个目录,任何人都可以访问,即不用输入密码即可访问,要求只读。
[global]部分

把”MY GROUP”改成”WORKGROUP”

把”security = user” 修改为 “security = share”

然后在文件的最末尾处加入以下内容:

[share]
        comment = share all
        path = /samba
        browseable = yes
        public = yes
        writable = no
mkdir /samba

chmod 777 /samba

sudo /etc/init.d/samba restart  #重启samba服务
  1. 共享一个目录,使用用户名和密码登录后才可以访问,要求可以读写。
[global] 部分内容如下:

[global]
        workgroup = WORKGROUP
        server string = Samba Server Version %v
        security = user
        passdb backend = tdbsam
        load printers = yes
        cups options = raw

然后加入以下内容:

[myshare]
        comment = share for users
        path = /samba        
        browseable = yes    
        writable = yes
        public = no
mkdir /samba

chmod 777 /samba
添加用户 因为在[globa]中”passdb backend = tdbsam”,所以要使用”pdbedit” 来增加用户,注意添加的用户必须在系统中存在。

useradd  user1 user2

pdbedit -a user1  # 添加user1账号,并定义其密码

pdbedit -a user2

pdbedit -L # 列出所有的账号

sudo /etc/init.d/samba restart #重启samba服务
如果在[globa]中用”passdb backend = smbpasswd

sudo smbpasswd -a <username>  # 把用户加入Samba中

当然, < username > 是否需要写取决于是否处于root权限下
把用户加入Samba中

你可能感兴趣的:(★,Linux运维)