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