openwrt下安装samba完美解决

基本步骤为安装samba-server 和配置2个步骤。

0x01

安装samba服务端

opkg install samba36-server

只要顺利一般这一行命令就安装完毕,如果找不到该包,需要先update一下

  1. opkg update
  2. opkg install samba36-server

这个命令安装的是samba的3.6版本,如果将来版本升级可能会找不到该包,则先查看opkg软件源是哪个版本

  1. opkg update
  2. opkg list | grep samba

0x02

配置文件为/etc/samba/smb.conf.template

有文章说配置的是/etc/samba/smb.conf 但是在openwrt下,samba服务重启,该文件就被重置了。

vi /etc/samba/smb.conf.template

首先注释掉[global]下的invalid users = root 这行,如果不注释掉则拒绝root用户登录。

#invalid users = root

接着就是增加共享目录,例子如下:

[etc]

path = /etc

valid users = root

guest ok = no

admin users = root

#意思是建立一个名叫做“etc”的共享目录,目录的位置是/etc ,允许root用户登录,拒绝游客。

配置完后,root用户还是没法登录,应该说samba会用系统的登录名,但是不会用系统的密码做验证,所以需要为samba设置一下密码

smbpasswd -a root

根据该命令的提示,输入root的验证密码,之后共享则使用该密码登录。

最后重启一下samba

/etc/init.d/samba restart

0x03

把以上操作做成shell脚本:

  1. opkg update
  2. package=`opkg list | grep samba36-server | awk '{print $1}'`
  3. opkg install $package
  4. sed -i '/invalid users/s/invalid/#invalid/g' /etc/samba/smb.conf.template
  5. (cat <<EOF
  6. [etc]
  7. path = /etc
  8. valid users = root
  9. guest ok = no
  10. admin users = root
  11. [tmp]
  12. path = /tmp
  13. valid users = root
  14. guest ok = no
  15. admin users = root
  16. [usr]
  17. path = /usr
  18. valid users = root
  19. guest ok = no
  20. admin users = root
  21. [var]
  22. path = /var
  23. valid users = root
  24. guest ok = no
  25. admin users = root
  26. [www]
  27. path = /www
  28. valid users = root
  29. guest ok = no
  30. admin users = root
  31. EOF
  32. ) >>/etc/samba/smb.conf.template
  33. smbpasswd -a root
  34. /etc/init.d/samba restart