磁盘接去其它机器被 mount 后,原来用户创建的文件是怎么样状态的?

2018-05-29 11:44:08 +08:00
 pppguest3962

一个磁盘,没做太复杂的什么加密之类的事情,在甲机上被 abc 用户(非 root)创建了一些文件,权限是 u+rwx,g-rwx,o-rwx,用意就是除了 root,只能自己用。 然后磁盘被退下,加载到乙机上,成功被 mount 假设甲乙同是 centos 6.5 系统

1、在磁盘上的文件权限应该还是保留着甲机状态的吧? 2、乙机没有 abc 这个用户,小弟初级水平的理解猜想,是不是除了乙机上的 root,谁也动不了它? 3、假设第二个问题为真,那么在乙机上,创建个 abc 用户,此机(乙)的 abc 是否跟甲机的 abc 同权?

2448 次点击
所在节点    Linux
8 条回复
Hardrain
2018-05-29 12:37:21 +08:00
似乎会显示 UID
另外 在同一台机器上被删除的用户所所有的文件的所有者也变成 UID 了
wb14123
2018-05-29 12:39:06 +08:00
UID 决定的。比如第一个机器的用户 abc 的 UID 是 1000,第二个机器的用户 efg 的 UID 是 1000,挂载到第二个机器 efg 就有权限,和用户名无关。
ngg0707
2018-05-29 12:39:23 +08:00
我在容器内看到挂载在容器里的宿主机的目录里的文件的所有者是 1000,而容器没有 UID 为 1000 的用户,而在宿主机的所有者就是 UID 为 1000 的用户。所以我觉得,系统是根据 UID 辨认用户的,如果没有这个 UID 的用户,就直接显示 UID
7654
2018-05-29 12:41:10 +08:00
要想不被非授权访问,只能加密
用户权限控制只在操作系统内有效
用户名和用户 ID 了解一下
msg7086
2018-05-29 13:11:43 +08:00
上面说得很清楚了,我总结下
1. 权限是操作系统决定的,不是硬性限制,操作系统说你 abc 干啥都行,那么他干啥都行。
2. 文件所有者是用户 ID,root 文件是 UID=0,其他用户是比如说 1000,1001,2001 等等。
操作系统只关心,一个 UID=1000 的用户可以操作一个 UID=1000 的文件。
至于原来的 UID=1000 叫什么名字,现在的 UID=1000 叫什么名字,没人关心。
pppguest3962
2018-05-29 23:36:31 +08:00
非常感谢楼上各位,学到了。。。

磁盘被接到乙机上,如何知道这个文件的原用户的 user ID 呢?
没条件做测试,只能想像了
是不是 ls -l,文件的拥有着那里,会显示一个 uid 数值?
wr410
2018-05-30 21:58:35 +08:00
在 EXT4 文件系统里面,文件的信息是记在 inode 里面的,inode 包含有 GID 和 UID,也就是上面说的那串数字。

然后内核根据记录的 UID 和当前系统中的用户来匹配权限。

所以你 ls 里面看到的东西实际上是映射后的用户名,而底层文件系统记载的是 ID 号。

你的问题答案上面已经有了,不赘述了。

延伸一下,权限信息是记录在 inode 里的,也就意味着其实只要能挂载上文件系统,是可以随便改的,权限的实现只取决于内核的控制,仅此而已。
henglinli
2018-05-31 07:59:56 +08:00
我之前有个同事问我硬盘换了 IP 会不会变,没过多久我就走了,我怕。

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

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

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

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

© 2021 V2EX