一般,在openwrt或者linux的nas中,都采用guest访问,不需要输入用户和密码。但win10以后,一般都不能直接访问无密码的共享文件夹,需要更改组策略的LANMAN,不太安全。
所以还是让盒子开启用户密码登录为好。
基础
目前一般都用samba4在linux中实现共享文件夹。
samba默认使用自己的密码管理,和linux本身密码管理分开,这样便于管理员更好管理系统权限。但samba用户必须是系统用户。
所以,思路是:
1.在系统中创建一个用户,设置密码(是系统密码,不是共享密码)。
2.在samba中把该用户加入,并设置共享密码。
3.配置samba共享文件夹,包括权限等。
操作注意事项
1.一般用groupadd和useradd增加组和用户,当然直接用useradd后自动分配一个组的。但openwrt没有这两个命令。可以直接编辑/etc/passwd文件,在最后增加一行:
newuser:x:2000:2000:New User:/home/newuser:/bin/ash
非系统用户的id应该是1000以上,所以用户和组id都用的是2000.
vi的操作请查网上。
2.用passwd命令给新用户设置密码:passwd newuser
3.用smbpasswd命令增加samba共享用户并设置密码:smbpasswd -a newuser
4.编辑samba配置文件。一般linux直接编辑/etc/samba/smb.conf就可以。
但openwrt的smb.conf生成靠两个文件:/etc/samba/smb.conf.template和/etc/config/samba4组合生成,
smb.conf.template是smb.conf的[global]部分,
samba4是luci图形界面配置的共享文件夹部分。
5.关键:其中smb.conf.template中,需要将[global]部分中
map to guest = Bad User改成:
map to guest = never
否则windows无法出现输入用户名和密码的界面,直接告诉你组不允许不安全用户,不允许访问。
6.samba4可以通过luci的图形界面调整。但也可以手动更改。
config sambashare
option auto '1'
option read_only 'no' //一定设置成no,否则就只读了。
option create_mask '0666' //这个设置文件没有执行权-rw-rw-rw-,都没有x。
option dir_mask '0777' //全部操作,目录能打开。
option device 'shared' //看到的共享名称
option inherit_owner 'yes' //新建文件拥有者都是sdb1的拥有者
option name 'myshare'
option path '/mnt/sda1/myshare' //共享的真实目录
option users 'newuser' //指定共享给谁
7.还一个很重要的事情:删除autosamba软件包,否则插入usb硬盘后,将会自动将自动挂载的硬盘进行无密码共享(有点拗口)。比如自动挂载会将usb硬盘/dev/sda1挂载到/mnt/sda1(这个automount还是挺好的),然后这个autosamba就会自动无密码共享/mnt/sda1,很烦人。
这个软件包的一个配置脚本是/etc/hotplug.d/block/20-smb。
8.重启samba,openwrt中用service samba4 restart或。
反正两种重启方式,一种是systemctl,一种是/etc/init.d/。
再不行就重启路由器了。