一个磁盘,没做太复杂的什么加密之类的事情,在甲机上被 abc 用户(非 root)创建了一些文件,权限是 u+rwx,g-rwx,o-rwx,用意就是除了 root,只能自己用。
然后磁盘被退下,加载到乙机上,成功被 mount
假设甲乙同是 centos 6.5 系统
1、在磁盘上的文件权限应该还是保留着甲机状态的吧?
2、乙机没有 abc 这个用户,小弟初级水平的理解猜想,是不是除了乙机上的 root,谁也动不了它?
3、假设第二个问题为真,那么在乙机上,创建个 abc 用户,此机(乙)的 abc 是否跟甲机的 abc 同权?
似乎会显示 UID
另外 在同一台机器上被删除的用户所所有的文件的所有者也变成 UID 了
UID 决定的。比如第一个机器的用户 abc 的 UID 是 1000,第二个机器的用户 efg 的 UID 是 1000,挂载到第二个机器 efg 就有权限,和用户名无关。
我在容器内看到挂载在容器里的宿主机的目录里的文件的所有者是 1000,而容器没有 UID 为 1000 的用户,而在宿主机的所有者就是 UID 为 1000 的用户。所以我觉得,系统是根据 UID 辨认用户的,如果没有这个 UID 的用户,就直接显示 UID
要想不被非授权访问,只能加密
用户权限控制只在操作系统内有效
用户名和用户 ID 了解一下
上面说得很清楚了,我总结下
1. 权限是操作系统决定的,不是硬性限制,操作系统说你 abc 干啥都行,那么他干啥都行。
2. 文件所有者是用户 ID,root 文件是 UID=0,其他用户是比如说 1000,1001,2001 等等。
操作系统只关心,一个 UID=1000 的用户可以操作一个 UID=1000 的文件。
至于原来的 UID=1000 叫什么名字,现在的 UID=1000 叫什么名字,没人关心。
非常感谢楼上各位,学到了。。。
磁盘被接到乙机上,如何知道这个文件的原用户的 user ID 呢?
没条件做测试,只能想像了
是不是 ls -l,文件的拥有着那里,会显示一个 uid 数值?
在 EXT4 文件系统里面,文件的信息是记在 inode 里面的,inode 包含有 GID 和 UID,也就是上面说的那串数字。
然后内核根据记录的 UID 和当前系统中的用户来匹配权限。
所以你 ls 里面看到的东西实际上是映射后的用户名,而底层文件系统记载的是 ID 号。
你的问题答案上面已经有了,不赘述了。
延伸一下,权限信息是记录在 inode 里的,也就意味着其实只要能挂载上文件系统,是可以随便改的,权限的实现只取决于内核的控制,仅此而已。
我之前有个同事问我硬盘换了 IP 会不会变,没过多久我就走了,我怕。