背景:
家里有一台NAS,想创建几个目录,家里各个成员有各自的个人资料存放目录,同时也有一个共享目录。
网上搜了一堆关于Ubuntu搭建samba的教程,诚然指令是没问题的,但是有些用法并不适用于我的实际情况,因此现整理如下,以备参考;
实战:
创建用户
由于我本身不需要多用户登录NAS,因此其实并不需要在Ubuntu下创建实体用户,因此部分网上教程说的适用adduser其实并不适用;
创建一个用户,并不分配登录密码,也不创建home目录,因此此用户不能用于登录Ubuntu:
sudo useradd ryan
为新创建的用户设置samba密码:
sudo smbpasswd -a ryan
由于我需要一个共享目录,首先想到的就是使用用户组的方式,于是创建用户组并把新建用户添加进组:
sudo groupadd home
sudo usermod -G home -a ryan
同理可以创建多个用户;
然后我们创建需要共享的目录:
mkdir /D/smbshare/Ryan/
mkdir /D/smbshare/Public/
sudo chown ryan:ryan /D/smbshare/Ryan/
sudo chown root:home /D/smbshare/Public/
sudo chmod 770 /D/smbshare/Ryan/
sudo chmod 770 /D/smbshare/Public/
需要注意,此处创建目录的权限处于安全考虑修改为了770,个人网盘的owner与group修改为用户本身,公共目录可以修改owner为root,group为需要共享的用户所在的组;
此处最好可以适用su指令切换到对应用户,并本地验证该用户在该目录下是否有应有的权限。
非然后修改samba配置文件/etc/samba/smb.conf:
[Ryan]
comment = Samba Share Directory for Ryan
path = /D/smbshare/Ryan
browseable = yes
writable = yes
guest ok = no
read only = no
public = no
valid users = ryan
[Public]
comment = Samba Share Directory for Public Use
path = /D/smbshare/Public
browseable = yes
writable = yes
guest ok = no
read only = no
public = no
valid users = @home
然后重启smbd即可:
sudo /etc/init.d/smbd restart