TranslateProject/published/201408/20140808 How to set up a Samba file server to use with Windows clients.md
2014-09-02 20:57:38 +08:00

7.0 KiB
Raw Blame History

怎样设置Samba文件服务器以使用Windows客户端

根据Samba项目网站所述Samba是一个开源/自由软件套件提供了到SMB/CIFS客户端的无缝文件和打印服务。不同于其它SMB/CIFS网络协议部署如HP-UX的LM服务器OS/2的LAN服务器或者VisionFSSamba及其源代码是可以自由获取的终端用户无需付费允许在Linux/Unixt服务器和Windows/Unix/Linux客户端之间互操作。

出于这些理由Samba在不同操作系统除了Linux共存的网络中首选的文件服务器解决方案——最常见的结构是多个微软Windows客户端访问安装有Samba的Linux服务器该情形也是本文将要解决的问题。

请注意另外一方面如果我们的网络仅仅是由基于Unix的客户端如LinuxAIX或者Solaris等等组成我们可以考虑使用NFS尽管在此种情况下Samba仍然是可选方案它可以提供更快的速度。

在Debian和CentOS中安装Samba

在我们开始安装之前我们可以使用操作系统中的包管理系统查询Samba的信息

在Debian上

# aptitude show samba

在CentOS上

# yum info samba

在下面的屏幕截图中我们可以看到aptitude show samba的输出yum info samba会产生类似的结果

现在让我们来安装Samba吧下面的截图来自Debian 7[Wheezy]服务器上的安装):

在Debian上

# aptitude install samba

在CentOS上

# yum install samba

添加用户到Samba

对于4.x之前的版本需要建立一个本地Unix帐号以便将其添加到Samba

# adduser <username> 

接下来我们需要添加用户到Samba使用带有-a选项的smbpasswd命令来完成该命令指出后面的用户名将被添加到本地smbpasswd文件中。我们将被提示输入密码该密码无需和本地Unix帐号的密码相同

# smbpassword -a <username> 

最后我们将赋予用户xmodulo到我们系统上某个目录的访问权限该目录将被用于作为此用户的Samba共享如有需要也可以共享给其它用户。要完成该工作请使用文本编辑器如Vim打开/etc/samba/smb.conf文件导航到文件末然后创建一个带有描述名称的区块使用方括号将其括起来如[xmodulo]

# SAMBA SHARE
[xmodulo]
path = /home/xmodulo
available = yes
valid users = xmodulo
read only = no
browseable = yes
public = yes
writeable = yes

我们现在必须重启Samba—以防万一—使用testparm命令来检查smb.conf文件的语法错误

# service samba restart
# testparm 

如果有错误在testparm结束后会报告。

在Windows 7计算机上将Samba共享映射为一个网络驱动器

在计算机上右击,然后选择“映射网络驱动器”:

输入安装了Samba的机器的IP地址后跟共享名就是smb.conf文件中方括号括起来的那个名称然后确保选中了“使用不同的凭据连接”

输入先前用‘smbpasswd -a’设置的用户名和密码:

进入计算机,然后检查网络驱动器是否被正确添加:

作为测试让我们从Samba的手册页创建一个pdf文件然后保存到/home/xmodulo目录

接下来我们可以验证该文件是否可以从Windows读取

然后检查我们是否能够用默认的pdf阅读器打开它

最后让我们看看我们是否能在Windows中刚刚映射的驱动器上保存文件。我们将打开change.log文件该文件列出了Notepad++的功能:

然后试着将它作为普通文本文件(.txt扩展名保存到Z:\然后让我们看看该文件是否能在Linux中看到

启用磁盘配额

作为第一步,我们需要验证当前内核是否已经编译为支持配额:

# cat /boot/config-$(uname -r) | grep 

每个文件系统最多有5种类型能够强制使用的配额限制用户软限制用户硬限制组软限制组硬限制以及宽限期限。

我们现在将为/home文件系统启用磁盘配额在/etc/fstab文件对应的/home文件系统行现存的默认选项后添加usrquota和grpquto挂载选项然后重新挂载文件系统以令修改生效

接下来,我们需要在**/home目录创建两个文件以用于作为用户和组配额的数据库文件:aquota.useraquota.group**。然后,我们将生成启用配额后每个文件系统的当前磁盘使用表:

# quotacheck -cug /home
# quotacheck -avugm 

尽管已经为/home文件系统启用磁盘配额我们还没有给任何用户或组设置权限。检查现有用户/组的配额信息:

# quota -u <username>
# quota -g <groupname> 

在这最后几步中使用quotatool命令来为每个用户和/或组来分配磁盘配额注意该任务也可以使用edquota来完成但是quotatool更为直接更不易犯错

要为用户xmodulo设置软限制为4MB硬限制为5MBxmodulo组为10MB/15MB

# quotatool -u xmodulo -bq 4M -l '5 Mb' /home
# quotatool -g xmodulo -bq 10M -l '15 Mb' /home 

我们可以在Windows 7中看到结果4.00MB中有3.98MB空闲):


via: http://xmodulo.com/2014/08/samba-file-server-windows-clients.html

作者:Gabriel Cánepa 译者:GOLinux 校对:Caroline

本文由 LCTT 原创翻译,Linux中国 荣誉推出