为了方便的共享树莓派上下载的资源,在树莓派上配置 Samba 服务是很好的选择。
安装 samba:
sudo apt-get update sudo apt-get install samba调整设置:
sudo vim /etc/samba/smb.conf [global] workgroup = WORKGROUP security = user unix password sync = no socket options = TCP_NODELAY [homes] comment = Home Directories browseable = no read only = no create mask = 0600 directory mask = 0700 valid users = %S [media] comment = Raspberry Pi SMB path = /media/PI browseable = yes writeable = yes create mask = 0600 directory mask = 0700 guest ok = yesglobal 域下的 socket options 设置为 TCP_NODELAY 可以得到更好的性能。 homes 域泛解析所有的用户目录,当有连接请求时,所有的域名称都会被检索,如果有和用户名相同的域名称,那么该域下的设置将替代 homes 域被解析,如果没有,那么 homes 域的设置将单独被解析。 homes 域未设定 path 时默认为用户的 home 目录, browseable = no 表示 homes 作为共享目录名是被隐藏的,而无论 browseable 设置为 yes 还是 no ,每个用户的用户名都是作为共享目录名存在的。
samba 的用户权限要过两关,首先是满足 samba 的设置设定的权限,其次是遵循 Linux 文件系统的权限。 media 域设置了包括 guest 用户在内的所有用户都有读写权限,但是实际上只有满足 /media/PI 文件系统权限设定的用户才有真正的写权限,这么设置最终造成: /media/PI 文件系统设定的属主、组等有相应权限,比如写,其余用户只有读权限。
为 samba 共享设置密码:
sudo smbpasswd -a pi另外,也可以设置 samba 以 xinetd 的方式按需启动,节省资源:
sudo vim /etc/xinetd.d/netbios-ssn service netbios-ssn { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/smbd instances = 5 } sudo vim /etc/xinetd.d/netbios-ns service netbios-ns { disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/nmbd instances = 1 }移除 samba 按 init 的方式启动:
sudo update-rc.d samba remove