在OpenSUSE和Ubuntu里面怎么配置一个smb服务器


类型:LinuxApp,创建时间:June 19, 2014, 5:54 p.m.

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/94/。

微软的smb服务与nfs一样,真是一个很好的发明。它们都能够方便地让客户端直接访问文件内容,而不需要把文件内容传回客户端。

因为做服务器的时候我默认使用linux,所以接下来我打算安装一个Samba服务,实现简单的文件共享,要求必须输入密码才能连接到这个服务器。不提供默认用户的使用。其它的如WINS、NETBIOS服务这些东西都不需要,因为我们只需要一个类似于NFS这样的文件系统。

首先当然是安装samba服务。

zypper install samba

接下来修改一个samba服务器的配置文件,把目录共享出来。按照samba书上面的做法,可以有两种方案来提供服务,一是明确定义要共享的目录,并配置好它的路径、权限等信息。另一种做法是配置homes目录,把所有用户的目录都共享出来。我选择了后者。无他,刚好需要而已。

openSUSE果然是个尽职的女仆,安装完samba以后这件事情基本就搞定了。只要我们把goldfish这个系统已有的帐号加入到它的帐号数据库里面。

useradd -m goldfish #添加一个UNIX用户,如果有不用加了。
smbpasswd -a goldfish #添加相同名称的samba用户
systemctl restart smb #重启samba服务

至此,我们可以访问这个共享了。

smbclient --user goldfish //hostname/homes/

在Ubuntu下面会比较麻烦一些,第一步自然是sudo apt-get install samba。接下来我们需要把/etc/samba/smb.conf这个配置文件里的[homes]这一节注释";"去掉。我是这样子配置的:

[global]
    security = user
[homes]
    comment = Home Directories
    browseable = no
    read only = no
    create mask = 0600
    directory mask = 0700
    valid users = goldfish

在这里我们选择security级别是user,表示针对每个用户进行验证,而非针对一个共享进行验证。

然后我们定义了homes这个共享。samba对这个目录进行特殊的控制。能够让我们以系统用户的身份登录读写服务器上的文件。修改完这个文件以后,我们可以使用testparam这条命令验证配置文件是否正确。接下来和OpenSUSE差不多:

sudo useradd -m goldfish #添加一个UNIX用户,如果有不用加了。
sudo smbpasswd -a goldfish
sudo service smbd restart

至此,我们可以使用之前添加的用户名、密码访问//hostname/homes/这个共享。

需要注意的是,如果是在vmware虚拟机里面做实验。如果给虚拟机配置NAT网络会出错,不能访问SMB服务器。把NAT类型的网络改成桥接网络就正常了。

标题无“转载”即原创文章,版权所有。转载请注明来源:http://hgoldfish.com/blogs/article/94/。


暂时还没有任何评论。


何不来发表一下您对本文的看法(使用Markdown语法,分段空两行):