树莓派设置samba服务支持多用户权限

less than 1 minute read

发布于:

树莓派可以利用samba做NAS,并且支持多用户,不同用户访问不同目录。

一、设置samba服务

  1. 挂载U盘或者移动硬盘

    注:不能挂载到/media/pi/下面,这样无法多用户访问,只有pi用户可以访问。

      sudo mkdir /mnt/seagate
      sudo mount -o umask=0,iocharset=utf8 /dev/sdb1 /mnt/seagate #-o umask=0代表所有用户都可读写
      sudo mkdir /mnt/seagate/sharetv
    
  2. 安装samba

    sudo apt-get update
    sudo apt-get install samba samba-common-bin
    
  3. 编辑配置文件

    sudo nano /etc/samba/smb.conf
    

    在文件末尾添加如下内容:

    [piNAS]
    comment = sambasharebypi
    path = /mnt/seagate
    valid users = pi
    writable = yes
    browseable = yes
    create mask = 0664
    directory mask = 0775
    
  4. 重启samba服务

    sudo systemctl restart smbd
    

二、多用户访问samba

  1. 多用户场景

    假设有两个用户:默认用户pi和用户tv。用户pi通过samba可以访问/mnt/seagate文件夹,用户tv只可以访问/mnt/seagate/sharetv文件夹。

  2. 添加树莓派系统账户

    sudo useradd -g root tv #添加系统用户tv到组root
    sudo passwd tv #给用户tv添加密码
    sudo smbpasswd -a tv #将系统用户tv添加为samba用户,需要输入密码两次。
    
  3. 编辑用户tv的samba配置文件

    sudo nano /etc/samba/tv.smb.conf
    

    添加如下内容:

    [TV]
    comment = tv
    path = /mnt/seagate/sharetv
    valid users = tv
    writable = yes
    browseable = yes
    create mask = 0664
    directory mask = 0775
    
  4. 编辑samba配置文件

    sudo nano /etc/samba/smb.conf
    

    在global块添加如下内容:其意思为以tv的身份访问Samba服务器,只能看到TV的内容,其他在smb.conf中定义的共享资源都无法看到。

    [global]
       
    ## Browsing/Identification ###
    #config file
    config file = /etc/samba/%U.smb.conf  #添加这句
    
  5. 重启samba服务同上。