建好群晖nas后,在Windows上做映射很简单,但在Ubuntu上使用,还是耗费了一些时间。
尝试过如下三种方法:
- smb
- Ubuntu自带的网络共享-afp
- mount
最终选择的方法是mount到本地,读写及用Python代码等直接访问很方便。
之前一直用smb在Windows和Ubuntu之间共享数据,所以第一个尝试使用samba连接nas服务器。
结果是可以访问,可以读写,但自己写代码读取数据比较困难,应该是有方法的,但没深究。
环境安装参考:Ubuntu 18.04安装Samba服务器及配置
sudo apt-get upgrade sudo apt-get update sudo apt-get dist-upgrade
sudo apt-get install samba samba-common
设置共享文件夹略…
打开文件管理器,在【other locatios】中的【connect to server】中输入nas地址,弹出用户验证框输入用户名及密码即可。
打开Ubuntu文件管理器,在【other locatios】中的【Networks】列表中即可找到nas共享文件夹,点击在弹出的验证框中输入用户名及密码即可。
前边两种方法对于读写来说都很好用,但是我要写代码与nas做数据交互,都比较困难,所以考虑直接mount。但中途又遇到了一些问题,最耗时的就是mount完后,归属与root,在普通用户下只能读,不能写,找了好久才解决。
sudo apt install cifs-utils
将nas挂载到/mnt/nas下
cd /mnt/ sudo mkdir nas
sudo mount -t cifs -o uid=***,username=***,password=***,iocharset=utf8 nas地址 本地地址
各参数解析如下:
sudo vim /etc/fstab
添加一行信息
nas地址 本地挂载地址 cifs uid=***,username=***,password=***,iocharset=utf8 0 0
保存退出后,输入
sudo mount -a
可以看到,已经挂载成功。
一般不需要进行此项配置,在执行3.4后,重启后不自动挂载,可以执行此操作。
systemctl start remote-fs.target systemctl enable remote-fs.target
sudo vi /etc/sudoers
# # This file MUST be edited with the 'visudo' command as root. # # Please consider adding local content in /etc/sudoers.d/ instead of # directly modifying this file. # # See the man page for details on how to write a sudoers file. # Defaults env_reset Defaults mail_badpass Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin" # Host alias specification # User alias specification # Cmnd alias specification # User privilege specification root ALL=(ALL:ALL) ALL # add user [username] ALL=(ALL:ALL) ALL # Members of the admin group may gain root privileges %admin ALL=(ALL) ALL # Allow members of group sudo to execute any command %sudo ALL=(ALL:ALL) ALL # add user [username] ALL=(ALL:ALL) NOPASSWD:ALL # See sudoers(5) for more information on "#include" directives: #includedir /etc/sudoers.d
添加两处[# add user],[username]为当前Ubuntu用户名称。
cd && vi .bashrc
在最后一行加入下面命令
sudo mount -a
保存退出。