一、Samba用户管理

1、新建系统测试账号

$sudo useradd test  //新建一个名为test的账号
$sudo passwd test   //为test账号设置密码

2.新增samba账号 

$sudo smbpasswd -a test //以系统账号test为基础建立samba用户test

3.设置smb.conf 配置文件 

在smb.conf文件末尾添加如下:     

[test] 
comment= this is test's share 
path = /home/test 
public = yes writeable = yes 
valid users = test

4.权限设置 

通过设置test及其目录的访问权限,可达到对不同目录的不同的访问权限。 

5.修改samba用户的密码 

$sudo smbpasswd 用户名

6.禁用samba用户 

$sudo smbpasswd -d 用户名

7.启用samba用户 

$sudo smbpasswd -e 用户名

8.删除samba用户 

$sudo smbpasswd -x 用户名


二、Samba配置文件参数


1、[global] 
Global Setting 与配置特定的共享相对,全局设置用于配置整体 SAMBA 环境。全局设置列出在段标题[global]下。 
该节中的参数适用于整个 Samba 服务器,或者是其他节的默认值。 
guest account=username 浏览共享资源时,允许指定可用的有效客户帐户。该帐户必须是有效的帐户名,并且只能拥有最小限度的系统权利。通常为ftp 的这种设置将允许访问共享资源。 

2、workgroup=Workgroup 允许指定该系统应该加入的工作组名。Workgroup 与域很相似,因为它们都代表了一个 NetBIOS 系统的套件合。Workgroup 与域不同的地方在于,没有套件中的帐户管理——所有的登录名和口令都由每个单独的系统管理。 

3、Home Directories 
当用户得到 SAMBA 的认证后,有一个选项允许用户访问作为共享 SAMBA 主目录。目录的位置可以从 /etc/smbpasswd 文件只查询到,该文件被用于在全系统范围内定义登录名和口令。主目录设置与 smb.conf 被一起列在段标题[homes]下。(?) 
Other Shares 你可以把文件系统的任何部分设置为共享。创建共享时,以附上了方括号的共享名作为共享部分的开始,例如 [public]。在共享名之后,每行用列出的一个命令,你指定任何你想应用于该共享部分的参数。 

4、Share Setting 以下是一个可用于处理共享资源的某些命令的简短列表: 
browseable=yes/no 它指出共享对于正在浏览的客户是否可见,或者共享通过使用UNC(通用命名约定)才能访问。例如要访问共享名 public ,而其浏览功能已经被关闭(no),则必须通过输入 UNC\\server\pubic 来访问它。它不会出现在浏览列表中(即在浏览器中不可见)。 
creat mode=number 在SAMBA 共享条件下创建文件时,允许分配给这些文件以缺省许可这个字段的数值使用和 chmod 命令一样的数字格式。和 create mask 相反。

only guest=yes 指定用户对该共享资源的访问只能是客户级的。如果文件许可被正确地设置,则其作用是用户只能看到目录下的文件,但不能进行读写操作。 path=share directory path 定义了一个目录,当用户要访问一个已发布了的共享名字时,就可以访问上述被定义的目录。例如,如果创建了一个名为 public 的共享资源,并且指定 path 等于 /usr/expense/template,则对共享的 public 的访问将直接进入 template 目录,系统将不允许进入该目录的上一级目录结构,而只能进入下一级。

public= yes/no 定义一个共享是否对公共访问开放。当设置为 yes 时,在系统上没有帐户的用户将基于所定义的客户帐户的属性来接收访问。 
valid users=username 指定只有具有特定的登录名的用户才能访问共享。可以指定用空格分开的多个登录名。( all 表示所有)

writable=yes/no 定义了一个共享能否使用读/写许可来访问,或一个文件系统能否替代地被认为只读。定义用户接受到访问级的是这个设定和分配给用户 UNIX 帐户一些许可的组合,不管其中哪一个较低。例如,如果用户访问标记为可写的共享,但其 UNIX 帐户有只读许可,那么该用户只能得到该共享的只读访问权。


5、[home] 
如果配置文件中包含该节,那么服务器就可以动态地为用户提供连接到其私人目录的共享. 
如果用户要求连接一个配置文件中不存在的共享,服务器就假设用户提供的共享名是一个帐号,然后在本地的密码文件中查找该帐号.如果该帐号存在,并且用户提 供了正确的口令,那么服务器就拷贝[在home]节来建立一个新的共享,同时作出如下修改: 
1> 将共享名改为帐号名. 
2> 如果在[home]节中没有指定要共享的目录,那么就使用该帐号的私人目录. 
3> 如果要在[home]节中指定 path 参数,那么宏 %S 是非常有用的,它代表当前共享的名称.例如: path=/data/%S 
这种方法允许为 PC 用户和 Linux 用户提供不同的私人目录. 
由此可见,使用 [home] 节可以简单而快速地允许大量用户存取各自的私人目录.如果用户请求的共享名就是 homes ,服务器同样会为其动态地建立共享,唯一的不同是新共享的名称仍然是 homes.


6、[printers] 
该节有点类似于 [homes] 节,只不过是针对打印机的.如果配置文件中包含 [homes] , 
用户就可以连接到本地 printcap 文件中定义的任何一台打印机.如果用户请求连接一个配置文件中不存在的共享,若 [homes] 节存在,那么服务器会像上节所述那样处理该请求;否则服务器将请求连接的共享名视为一个打印机名,并且在 printcap 文件中查找是否存在可以匹配的打印机,如果存在,就拷贝 [printers] 节以建立新的共享. 
注意: [printers] 节必须是可打印的,否则服务器将拒绝装载配置文件,例如: 

[printers] 
path = /home/samba/print/public 
writeable = no 
guest ok = yes 
printable = yes