1、安装samba服务
切换到root用户(非root用户用sudo)
apt install samba
2、配置文件
cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
vi /etc/samba/smb.conf
在文件最后添加以下内容
[devdata]
comment = dev data
path = /data
browseable = true
read only = no
guest ok = yes
writeable = yes
public = yes
available = yes
create mode = 0644
force create mode = 0644
directory mode = 0755
force directory mode = 0755
samba的全局配置文件,在此不再赘述,网上很多,部分配置项,下文会备注一些
然后重启服务
samba restart
3、匿名登录
到这里,基本上就可以打开共享目录了
windows下,直接打开
linux下面,使用mount.cifs
sudo mount.cifs '//10.2.4.123/devdata' /data
其中/data为挂载本地的目录
4、添加用户鉴权
修改samba配置文件,加上valid users配置,多个用户,使用逗号(,)隔开
[devdata]
comment = dev data
path = /data
browseable = true
read only = no
guest ok = yes
writeable = yes
public = yes
available = yes
valid users = ubuntu
create mode = 0644
force create mode = 0644
directory mode = 0755
force directory mode = 0755
为ubuntu用户设置samba密码
smbpasswd -a ubuntu
重启服务
samba restart
重新打开,windows提示需要输入密码,输入刚刚设置的密码即可
linux下:
sudo mount.cifs -o username='ubuntu',password='123456' '//192.168.1.5/devdata' /data
这里需要注意几点:
- samba设置的用户密码,必须在系统下存在对应的用户,否则会提示:Failed to add entry for user xxx,但是设置的密码跟系统用户无关
- 打开的共享目录能否在目录下面创建文件,取决于登录用户在文件夹的权限如何
- 如果需要多用户可读写同一个文件夹,可把多用户放在同一个系统用户组,文件夹授权用户组可读写权限。
5、samba部分配置项
共享资源访问控制参数
browseable #指定共享的路径是否可浏览(默认可以) browseable = no
available #指定共享的资源是否可用 available = no
read only #指定共享的路径是否只读 read only = yes
writable #指定共享的路径是否可写 writable = yes
read list #设置只读访问用户列表 read list = tom,@stuff
write list #设置读写访问用户列表 write list = tom,@stuff
public #指定是否可以允许guest帐号访问 public = yes
guest accout #指定一般性客户的帐号 guest accout = nobody
guest ok #指定是否可以允许guest帐号访问 guest ok = yes
guest only #指定是否只允许guest帐号访问 guest only = yes
valid users #指定允许使用服务的用户列表 valid users = tom,@stuff
invalid users #指定禁止使用服务的用户列表 invalid users = tom,@stuff
wide links #设置是否允许共享外连接 wide links = no
veto files #参数阻止客户端上传含有特定关键字的文件或目录到Samba服务器共享资源
create mask = 0664
directory mask = 0775