Samba服务器的配置文件是 /etc/samba/smb.conf,该文件几乎包含 Samba 程序运行时所需的所有配置信息;在 smb.conf 文件中,以分节形式分别配置不同的选项,除 [gloabal] 全局节之外,其他每一节都可以看作是一个共享资源
全局选项
smb.conf 文件中,[gloabal] 节用来设置全局参数,该节设置的参数直接影响整个 Samba 系统
-
基本选项
NetBIOS name:设置 Samba 服务器的 NetBIOS 名,该参数也可不设置 Workgroup:设置当前 Samba 服务器要加入的工作组,若 security 选项设置为 domain,则 Workgroup 可设置为域名 Server string:设置本机描述,默认为 Samba Server
-
安全选项
security:设置 Samba 服务器基本安全级,包括 share、user、server、domain 4个值,控制访问samba共享资源时 的认证方式不同。user(默认值)时,要求提供用户名和密码验证; share时,不需要任何认证,不安全;server与user安全级类似;domain时,网络中得存在一台 NT PDC,验证账号密码 encrypt passwords:设置是否对密码加密,建议设置yes username map:值为文件名,指向的文件包含来自客户机的用户名和linux系统用户之间的映射 guest account:设置匿名账户(guest)的用户名 host allow:允许哪些主机访问 hosts deny:与hostsallow相反,设置哪些主机不允许访问
-
打印设置选项
共享选项
除 [gloabal] 节之外,其他各节都分别设置不同的共享目录
[linux]:客户端可发现的samba共享资源名称
comment:对共享目录的注释说明
writeable:用户对共享目录是否可写
browseable:设置用户是否能浏览到该共享目录,值为no时,目录隐藏,但直接输入共享目录名称,也能访问
valid users:可以访问共享目录的用户列表
invalid users:禁止访问共享目录的用户列表
create mode :在共享目录中创建文件时,对文件设置权限的属性(0644)
directory mode:在共享目录中创建发目录时设置的队友(0775)
readonly:共享目录是否对为只读方式
public:设置共享目录是否允许匿名访问
guset ok:与public相同
path ://设置共享对应linux文件系统的哪一个目录
writeable :yes时,表示该目录允许写操作
write list:具有写权限的用户列表,无论writeable 和 read list 设置什么,该参数中的用户都具有写权限
特殊设置选项
smb.conf文件中,有两个特殊节: [home]和[printers],这两节是针对在 Samba 服务器中拥有账号的用户(user)进行的
-
设置用户 home 目录选项
在 Samba 服务器中拥有账号的用户,可使用账号登录到 Samba 服务器,可以对应看到用户自己的 Home 目录,[home] 节常用如下选项设置[home] # home节 comment = Home Directories # 对 Home 目录注释说明 writable = yes # 用户对 Home 目录是否可写,通常设置为yes browseable = no # 设置其他用户是否可浏览到该 Home 目录(设置为no,目录隐藏) valid users = %s # 可访问 Home 目录的用户 create mode = 0664 # Home 目录中创建文件时设置的权限属性 directory mode = 0775 # 在 Home 目录下创建目录时设置的权限属性 read only = no # 设置是否为只读模式
-
设置共享打印机
在 [printers] 节定义共享打印机选项,使 Linux 可以通过 Samba 向网络中其他计算机提供打印服务[printers] # 共享打印机节 comment = All Printers # 打印机注释说明 path = /var/spool/samba # 设置打印机spool目录 browseable = no # 其他用户不可浏览到打印机 guest ok = no # guest用户不可以使用打印机 writable = no # 该选项必须是no printable = yes # 打印机是否允许使用,yes才能使用网络打印
添加 Samba 用户
security 选项为 user时,访问 Samba 共享资源必须使用用户名和密码登陆,这里的用户名必须是 Linux 系统中存在的用户名(/etc/password中登记的),而密码不一定是登陆 Shell 时的密码,可使用 Samba 提供的程序 smbpasswd 单独创建
提示: 通常为了系统安全,使用useradd创建不能登陆shell的用户,并且不适用passwd命令为其设置密码
#使用 smbpasswd 创建登陆 Samba 服务器的密码,保存在 Samba 密码文件中(/etc/samba/smbpasswd)
smbpasswd [选项] [用户名]
-a(添加用户)
-d(禁止用户)
-e(允许用户)
-x(删除用户)
[root@shareserver ~] # smbpasswd -a student # 添加 student 用户可以登录 Samba(student用户服务端存在)
NEW SMB password:
Retype new SMB password:
Added user student.
[root@shareserver ~] # pdbedit -L # 查看 Samba 可登录用户列表
student:1000:student # 添加成功