树莓派教程:配置 Samba 局域网共享

/

为了方便的共享树莓派上下载的资源,在树莓派上配置 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 = yes

global 域下的 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

Comments