1. Samba的安装
安装Ubuntu时,可能已经安装了samba。如果没有安装,则执行下面的命令:
sudo apt-get install samba
sudo apt-get install smbfs
如果需要使用samba客户端访问其它机器的共享目录,还需要安装smbclient:
sudo apt-get install smbclient
安装完毕后,会在/etc下生成一个samba目录,并在/etc/init.d下生产一个smbd文件(有些版本可能是samba文件)。
2. 建立共享目录
确定需要使用samba共享的目录,或者使用mkdir建立一个目录专门用于共享,如:
mkdir /home/jacky/photo
需要注意目录的所有者和权限。Linux是一个多用户系统,对用户和权限的管理是比较严格的。如果需要将一个文件或目录共享,必须考虑这个文件或目共享的对象,也即会有哪些用户会访问它,以此来设置它的权限。比如,共享一个任何人都可以访问的目录(以刚才建立的share目录为例),且任何人都可以对该目录下的东西进行读写操作,那么就可以设置为:
chmod –R 777 /home/jacky/photo
如果目录共享的对象仅为该目录的拥有者本人(还是以刚才建立的photo目录为例),其他任何人都不可访问,那么可以设置为:
chmod –R 700 /home/jacky/photo
还要注意一点的是,目录必须要有可执行(x)权限,否则进不去。
3. 设置无账号密码的共享目录
所谓无账号密码,也就任何人都可以登录访问,而且赋予每个登录的用户读写和执行权限。
进入/etc/samba目录,先备份smb.conf文件:
sudo cp smb.conf smb.conf.back
打开smb.conf:
sudo vim /etc/samba/smb.conf
找到security这个设置项,默认应该是为user,并被注释掉的,将其更改为:
security = share
下一步就是要设置具体的共享目录了,smb.conf中有一些例子和说明可参考。这里,我们在smb.conf的末尾增加下列语句:
[photo]
comment = share photo
path = /home/jacky/photo
read only = no
guest ok = yes
保存和关闭smb.conf文件,然后重启smba。在ubuntu中有三条命令可重启samba,分别是:
sudo restart smbd
sudo /etc/init.d/smbd restart
sudo service smbd restart
执行其一即可。
完毕后,即可通过其它机器访问ubuntu共享出来的目录了。
4. 设置有账号密码的共享目录
大多数时候,我们需要考虑共享的权限问题,也即要求输入正确的账号密码后才能登录。
首先,需要向samba增加可访问的用户,所增加的用户,必须是当前Linux系统已注册的用户。这里,要用到smbpasswd这条命令,具体用法可以help一下:
sudo smbpasswd –h
比如,增加jacky到samba的用户列表中,执行:
sudo smbpasswd –a jacky
samba会要求输入新的密码,所输入的密码可以与jacky的系统登录密码不一样。可以添加多个用户。有了用户资源后,就可以用户和共享目录捆绑起来了。
打开smb.conf文件:
sudo vim /etc/samba/smb.conf
找到security项,将其设置为user:
security = user
确定下面这项没有被注释:
passdb backend = tdbsam
还是以前面提到的/home/jacky/photo目录为例。在smb.conf末尾重新编写photo目录的参数,如下:
[photo]
comment = share photo
path = /home/jacky/photo
read only = no
valid users = jacky
保存和关闭smb.conf文件,然后重启smba。这时候再登录share目录,就需要输入账号密码了,也就是jacky和它对应的密码。也可以添加多个账号对同一目录的访问,如:
valid users = jacky tonny tom
前面也提到了,共享目录的权限必须设置正确,否则访问会出问题。
本文是以ubuntu 10.04为例子,其它Linux发行版本可以会有点差异。