双十一买的 DX4600 Pro,玩了两个星期,系统基本被我摸明白了,非常逆天

177 天前
 chowdpa02k413

这世上基本很难再找到负责 UGNAS 这么低能的产品经理了,从系统底层到套件处处透露着反人类的设定

我真心推荐感兴趣想买的用户尽量降低自己的需求,像我这样做纯仓储+网络协议访问+Jellyfin+自动追番的人都踩了一堆坑

但是真心说实话,如果只想买个本地的百度网盘,那还是很合适的,国产 APP 的手机套件不说别的,随便把几个老牌厂商体验吊起来打

我打算围绕这台东西写两篇文章,一篇深入分析系统,另一篇通过我踩坑的经验教人部署一点东西,目前不知道投哪里比较好,官方论坛什么用都没有,考虑去 smzdm 、酷安、知乎、v2 这些地方投

另外,这牌子买的水文真的太多了,全都是什么上手轻度使用,挂个硬盘开个 app 就直接好好好,就连竞品对比文都是坑,我写的东西全是自己摸索出来的,在公网上搜都搜不到,简单放点预览


(非常重要)权限模式与用户隔离

UGOS 的权限模式非常的奇葩,我在一个正常的 Linux 系统上从来没有见过这样的用法,并且这个系统软件的很多功能缺陷都是由权限模式导致的。

我把 UGOS 面向用户的服务套件叫做nas_server,暂且把它当作一个 service 级别的东西,那么我们有以下几个结论:

  1. 套件的所有用户事务(登录、权限管理、软件数据隔离、存储区区分等)全部交由 nas_server 托管,与 Linux 系统的 user-group 机制脱钩

  2. nas_server 自始至终在 UGOS 中以 root 身份运行

  3. 每个登录到绿联私有云 APP 、并且连接到某台 NAS 上面的用户,会被 nas_server 单独分配一个用户 uid 数字,nas_server 依据此数字来管理用户对应的物理存储、维护用户私有数据,并且这个 uid 对用户不可见

    (注意,这里说的 uid 和 Linux user 的 userid 没有任何关系,我们后续会将这个 id 称为 ug_uid )

  4. nas_server 在文件管理时,只负责目录级别的可见性,不会负责 rwx 权限。严格来说,整个系统都没有对 rwx 做任何管理,默认都是 777 。

    目录级别的可见性,指的是它只会把你用户在/mnt/dm-0 存储空间中对应的文件夹单独展示出来,而不管文件夹中是否有任何权限不对、owner 不匹配的内容

  5. nas_server 对文件的错误权限有恢复机制,当用户尝试通过套件访问存储空间里不属于它/权限不足的文件时,文件的权限会被强行修改为 root 777

    测试样例:root 登录 ssh 创建一个文本文件,将其 owner 修改为某个别的用户,权限修改为 755 ,移动到某个共享成员的存储空间内。成员通过套件内置的金山 WPS 打开文本后在 ssh 窗口 ls -l ,会发现文件被重置为 root 777

(重要)为什么只有管理员能开 SMB ?

这个问题是从我邀请家庭成员进入 nas 后探索目录时发现的。一开始我以为 nas_server 管理/mnt/dm-0 是简单地把所有文件都设为 root777 ,却惊奇地发现好像其他成员的文件夹 owner 并不一样,他们与文件夹同名,对应一串长长的数字,具体而言是 ug_uid+0000 。凭借着我对 Linux 浅薄的经验,去/etc/passwd ,以及其他地方找了很久都没有找到 username ,经过了大量的实验和思考之后我认识到了一件事情:

只有管理员开设的“网络服务”中的“账户”在 Linux 下是真实存在的,其它用户在 Linux 系统中不存在!

当你开通网络服务的账户后,你自己的 ug_uid 才在 Linux 系统下有真正的实体 user 对应,uid 和其他用户一样,都是 ug_uid+0000 ,而包括 SMB 在内的大量功能,需要依赖 Linux 的实体用户运行。因此,只有管理员能够开设 SMB ,并且出于隐私原因 SMB 也只能提供管理员的私人空间和公共空间。

所有想要折腾绿联 NAS 的人都必须记住这个结论,这个结论可以解释后面非常多不合理的地方。

nas_server 会自动将其它用户创建的文件 owner 设置成一个没有实体用户对应的 ug_uid+0000,以区分存储区 owner ,因为 Linux 系统是可以强制用 id 数字指派文件 owner 的。然而对文件指派 owner 似乎没有任何用处,可能是给内部其它服务进行区分,因为上面提到了,“文件管理”APP 只根据目录提供内容,根本不管 owner 是谁,错了就重置成 root 777 。

这套容错机制可以保证用户通过套件使用绿联私有云的时候不会出现奇怪的权限问题,但是对于 SMB 等严格遵守 Linux 用户权限规范的服务来说并非如此。举个例子,我现在使用 root 在自己的存储空间里创建了一个文本并填充了内容,将其权限改写成 755 ,通过 SMB 访问文件,修改并保存,会发现没有保存权限,记事本弹出“另存为”窗口。

这种情况会更多出现在某些 docker 镜像中,他们支持通过 PGID 和 PUID 环境变量指定 bind volume 产生文件的用户映射,并且假设默认的 permission mask 是 022 的话,产生的数据和配置文件通过“网络账户”登录的 SMB 访问是没有修改权限( 755 )的。

很显然,这套权限模式经不起系统级的全面开放访问,所以聪明的绿联产品经理想出了一个解决方案,那就是:

禁止非管理员使用 docker 和 smb 就好了,再在 docker 镜像管理页面里加上一条免责声明,出了问题不怪我哦。

7550 次点击
所在节点    NAS
51 条回复
tedding
177 天前
这不就是大部分的产品经理的现状吗?脑袋和屁股结合想出来的产品解决方案...最后用户反馈产品不好用,会被归咎于开发没有很好的实现他的需求,导致只能部分妥协而造成产品不好用
jasonyang9
177 天前
感谢踩坑😂感谢分享👍
arthurfyc97
177 天前
我也买了一个这玩意,软件确实是弱智。。
bestkayle
177 天前
软件的用户 id 为什么要跟系统的用户 id 有关联?
syubo2810
177 天前
我也是这玩意,除了做工满意,其他都不太满意,早知道刷群晖了,现在资料 docker 都搞上去了都不好弄了
bestkayle
177 天前
不止极空间做的咋样。
Masoud2023
177 天前
这东西不都是买来刷别的系统的吗,都研究到这一步了,为什么不直接装个别的系统?

没记错的话 4600 也有黑裙玩吧?
UncleCat01
177 天前
装 TrueNAS unraid 之类的吧
Masoud2023
177 天前
不是我非抬杠,这系统确实听很多人说问题很大
chowdpa02k413
177 天前
@bestkayle

这套东西导致了什么问题,导致比如说百度网盘插件只有管理员能用,因为这类工具本身限制在一个系统里面运行多个实例
那怎么解决呢?虚拟机或者容器化方案呗,问题就来了
现在绿联根本没把虚拟机做出来
那容器化呢?比如说每个用户建一个 docker ,然后隐藏
docker 是不支持隐藏 container 的
但是 docker 支持每个用户运行一个 dockerd
理论上来说 把系统的一些容器挂在 root ,就拿这个百度网盘举例
然后其它的用户有自己的 docked 他们看不到 root 的容器 是很好的方案
但是非管理员的用户在 Linux 不真实存在,并且现在套件里的 docker 就是以 root 身份运行
抛开百度网盘不谈,这套东西同时也限制了其它用户不配拥有生产力,SMB 只能挂管理员的私人空间,幸亏我家四口确实只有我在用 SMB
多一个会的人 立马就要退货
chowdpa02k413
177 天前
@Masoud2023 家里有剩下 3 个人,他们有摄影存网盘、看网剧、相册备份的需求。这 3 点绿联套件都能很好地实现
Withal
177 天前
凑合用吧就这个价格,jellyfin 硬解啥都能用对我来说也够了,反正也不用它的系统
bestkayle
177 天前
@chowdpa02k413 #10 jellyfin 可以解决用户分离的问题。
chowdpa02k413
177 天前
@bestkayle 我的 jellyfin 不是给家里人用的😂是给我同年龄的兄弟朋友同事们用的,展示那些我这个年龄段该看的东西,比如说什么小电影、国产、fc2 、表番里番,然后正经内容丢到绿联云影院让家里人看

但谁曾想这个绿联云影院更是很好地反映产品经理的脑缺……后面完整的文章发出来给大伙品鉴就知道了
swordsmanX
177 天前
@syubo2810 #5 做工感觉也一般,很多人 m.2 固态硬盘那两个螺丝都拧不下来,要用钳子才能搞定。
windrun
177 天前
感谢分享,还好当时便宜只是看了看,没有下手
zzgo88
177 天前
一直用黑裙,上个月同时买了 4600pro 和极空间 z4s ,现在在用 z4s 和老黑裙。买 4600 和 z4s 的原因是看中了免费的内网穿透,之前用 zerotier 和 tailscale 不稳定。并且感觉他们的功能比起 j1900 的黑裙还是多了不少。
4600 pro 的软件难用,比 z4s 差很多,现在在吃灰,最近忙,打算装个 unraid 再看看怎么样。
z4s 现在问题是硬盘没有 basic 模式(现在在外测,看论坛说最近会推送);黑裙有个好用的 drive 功能,z4s 虽然也有文档同步,尽管写的自动同步,但是每次都得手动点开始同步;另外还有个问题,家里 z4s 的 docker 应用,远程登录的客户端后,并不能直接端口访问,和 zerotier 那种直接 ip+端口访问家里服务还是有差别的
Ansen
177 天前
到手第一时间就刷黑群
yelc668
177 天前
我记得可以开启 docker ,开启 docker 随便玩啦,官方配套是垃圾
HongDoNi
177 天前
给楼主点赞,写的很好,坐等下一篇文章

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/991429

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX