首页 > 代码库 > 3. 用Ubuntu Server架设基于独立硬盘的Windows文件共享和FTP服务器(samba共享)

3. 用Ubuntu Server架设基于独立硬盘的Windows文件共享和FTP服务器(samba共享)

创建samba文件共享其实也不难,要点就是创建好Linux账户(要和samba账户对应),设置好共享文件夹权限。尤其是权限部分,比较没有Windows那么直观,理解以后并不难,但这里不打算复杂深入的讲解。


我的设置目的基本就一个要求,让ftp这个组的所有成员用户可以在storage这个共享文件夹里拥有读写权限,并且希望所有在storage下创建的新文件夹都继承storage的权限设定。


组:ftp

成员:xin、gong


系统安装时创建的用户为xin,gong用户还不存在,ftp组也还未创建,所以我们先进行成员添加及组的添加。

sudo useradd gong
sudo passwd gong

以上指令可以创建用户gong并设置密码,然后我们创建ftp组

sudo groupadd ftp

再将用户xin、gong加入到ftp组中(在Linux下是第二个组secondary group,不更改用户默认组)

sudo usermod -a -G ftp xin
sudo usermod -a -G ftp gong

通过id xin这个指令可以查看是否添加组成功。

有了用户,有了组,现在要给/storage这个文件夹设置相应的权限,并为samba设置相应的用户

去根目录下执行ls -l,可以看到:
drwxr-xr-x    3    root    root    4096    Sep    4    12:20    storage

这说明storage这个文件夹当前所有人为root,所有组为root。所有人我不需要更改,我需要把组改为ftp,并让所有ftp组的人都具备读写权利。

sudo chown :ftp /storage
sudo chmod 775 /storage (如果不想其他账户看到,用770的权限也可以)

执行ls -l查看结果:
drwxrwxr-x    3    root    ftp    4096    Sep    4    12:20    storage

添加samba用户:
sudo smbpasswd -a xin
sudo smbpasswd -a gong

执行上述指令时,每添加一用户就会自动要求为该用户设置samba密码。这个密码与登录Ubuntu系统的密码可以不同,它是Windows访问共享文件夹时需要的账户和密码。为了方便,通常你可以设置一个匹配Windows账户的samba用户和密码,这样Windows打开共享文件夹时就不需要输入口令了。


另外,samba添加的用户一定要存在,就是必须先用useradd添加一个对应的Linux登录账户,否则会出错。


到这一步,其实还差点。之前说过了,要让storage共享文件夹下创建的新文件夹集成母文件夹权限,不然就会出现xin创建的文件gong不能访问(当然你需要这样的效果也可以)。要实现这个目的,需要再执行一行指令:

sudo chmod g+s /storage

到这一步就完成了权限的配置了。最后再照着下面的指令更改/etc/samba/smb.conf的内容:

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak (先备份一下配置文件)

sudo nano /etc/samba/smb.conf

用编辑器打开smb.conf后,默认设置什么都不用改,直接跳到最末端,新建以下内容:

[storage]
comment = Ubuntu File Server    (对共享文件夹的描述)
path = /storage    (共享文件夹路径)
available = yes    (是否可用)
valid users = @ftp    (@ftp指ftp这个组,如果是用户则不需@,多个用户用空格隔开)
read only = no    (是否只读)
browsable = yes    (是否可见,no的话打开共享路径是看不到文件夹的,但能直接通过路径访问)
writable = yes    (是否可写)

保存退出后,重启服务:
sudo restart smbd

现在去Windows下->运行->\\192.168.1.XX(Ubuntu的IP地址)

应该能看到storage的文件夹,进入后尝试创建新文件,如果一切正常,那么共享就完成了。


本文出自 “www.DIYPCs.com” 博客,请务必保留此出处http://cnbeta.blog.51cto.com/1234897/1548971

3. 用Ubuntu Server架设基于独立硬盘的Windows文件共享和FTP服务器(samba共享)