愚人

mount挂载后本地用户无权限问题
概述:​ 最近用n1刷了个小钢炮,准备用作下载机和syncthing同步,但是限于 n1 只有 usb2.0...
扫描右侧二维码阅读全文
24
2019/02

mount挂载后本地用户无权限问题

概述:

​ 最近用n1刷了个小钢炮,准备用作下载机和syncthing同步,但是限于 n1 只有 usb2.0 口,准备从其他机器上本地共享一下硬盘,通过网线传输加速,本来以为是很简单一条命令的事情,但是遇到的各种问题愣是搞了两天才搞定。

​ n1本质是还是linux,固件是从一个很精简的 linux 底层 DIY 过来的,所以理应用 mount 挂载一下就行,问题就是 mount 挂载 samba 的 share 后,本地除了 root 用户是没有读写权限的,虽然能在某些程序下看到目录,但是无法上传或者修改文件,下面是一些解决办法。

mount命令:

mount -t type -o username=root,password=123456 device dir

主要用到两个参数

-t 指定挂载文件系统的类型,例如挂载 samba 时,可以指定为 cifs 类型 ;

-o 指定认证用户名以及密码,如果允许匿名访问可以不需要指定;

其他参数可以阅读 mount --help 的说明

以下方法由简到繁,安全性由低到高

方法一:客户端修改

mount在挂载时 -o 参数还可以指定哪些用户或用户组可以访问

例如:-o uid=1001,gid=1001

uid 就是 linux 里面一个用户的特定 id 是唯一的,uid 是一个用户组的特定 id 也是唯一的,-o 参数可以全部指定,也可以指定其中某一项,例如我需要 test group 这个组内的所有账户都可以访问挂载后的文件夹,那么 只需要 -o gid=test(id) 即可。

注意

这不是单纯的修改一下文件夹的权限就可以完成的,即使将挂载后的目录权限设置为777也是无法访问,必须用 mount 命令的 -o 参数指定。

如果本地用户很多,那可以将需要这个权限的用户放到一个 group 内指定一下就行,这事儿就算完了。

但是!!但是!!n1小钢炮这么一个DIY固件用的是 busybox 库内的命令,useradd 貌似是没用的?还是我姿势不对,我也懒得去仔细研究 busybox 是啥了,所以出现了下面这些办法。

方法二:服务端修改

1.在相对安全的内网环境下,服务端可以允许 share 目录匿名访问

如果在服务端配置了全匿名访问,那就当然没有用户权限限制了。

但是在我的本地情况下,我也不想全匿名开放,毕竟如果有客人进来要求连一下 wifi 那么所有文件都暴露无疑了(虽然我家并没有客人来)

2.完全按照 samba 的本意来

samba的出现就是讲究高安全性内网分享的,相对,配置也非常麻烦。

大致意思就是:samba 的访问权限是由客户端和服务端最高权限的交集决定的;

例如我需要本地的 admin 这个用户能访问挂载后的目录,那在本地需要将 admin 拉进 samba 的用户数据库内,在服务端也必须存在 admin 这个 samba 用户并配置允许访问,And,admin 这个用户在 linux 系统层面 uid 还必须相同(客户端uid=服务端uid)。(如果我没理解错就是这意思)

备注

samba的用户必须要在 linux 系统已经存在才能创建,创建一个 samba 用户实际上也是创建了一个 linux 用户,但是 samba 用户的密码是独立储存在 samba 数据库内的,和 linux 系统已经存在的用户密码不共用。

可参考:关于Linux上SAMBA服务的权限问题(普通挂载)-简书

方法三:所以我采用 nfs

大概了解了一下 nfs,据说传输效率要比 samba 高,关键这玩意配置简单,只需要安装好服务端,然后编辑

/etc/exports 配置一下就行,具体方法就自行查找文档吧。

一、我的openwrt 直接在软件中心安装nfs就行了(图形化的好像安装不上,所以只安装了一个服务端,用 ssh 连接上路由器配置一下就行了)

#/etc/exports 我的配置
/mnt/sda2 192.168.1.0/24(rw,no_all_squash,insecure,sync)

二、如何判断:路由器 nfs是否挂载成功,可以在N1的SSH中 输入命令:showmount -e 192.168.1.1 (192.168.1.1 是路由器 ip 地址)
返回命令如下:
Export list for 192.168.1.1:
/tmp/mnt/sda2/song *
/tmp/mnt/sda2/moive *
/tmp/mnt/sda1 *
即表示:成功。
三、n1小钢炮设置:在管理界面-system-Startup-Local Startup 中输入
mkdir /media/nfs1
mount -t nfs 192.168.1.1:/tmp/mnt/sda1 /media/nfs1
chmod 777 /media/nfs1

不过 samba 也是一神器,我用它分享了一个 media 目录给 TV 盒子,TV盒子自带的文件浏览器是原生支持 samba 的,所以省去了 盒子上安装 es文件浏览器 那个app(毕竟用遥控器是真难操作)(:再一次吹爆联通!

参见上一篇机顶盒贝尔S-010W-A破解

总结

绳命不息,折腾后不止,希望能继续保持这股热情劲吧。
20190525更新挂载具体步骤

Last modification:May 25th, 2019 at 10:05 pm

Leave a Comment