linux文件属性

来源:百度知道 编辑:UC知道 时间:2024/06/08 05:50:51
tt1原始属性
[root@pc61 tmp]# ls -lrt tt1
-rwxrwxr-x 1 root test 0 Oct 14 07:14 tt1
切换test组内另外一个普通用户test
[root@pc61 tmp]# su - test
[test@pc61 ~]$ id
uid=1341(test) gid=800(abc) groups=401(test),800(abc)
用test用户编辑一下tt1这个文件
[test@pc61 ~]$ vi tt1
[test@pc61 ~]$ ls -lrt tt1
-rwxrwxr-x 1 test test 4932 Oct 14 09:20 tt1
为什么我编辑了tt1这个文件后,tt1的属性会从root:test变成test:test
谢谢各位
另外,抱歉,是这个在test用户下,ls -lrt /tmp/tt1。我抄少了点。
不需要怀疑。是一个文件。

因为你在编辑前切换到了test用户——[root@pc61 tmp]# su - test
然后你编辑,你继续用test用户ls这个文件,所以是test属性。

你继续回到root
su - root
再ls
就是root属性了

问题的关键是你当前的用户名决定了你当前文件的属性。

1楼是放屁。

是这样的:

[root@pc61 tmp]# ls -lrt tt1
-rwxrwxr-x 1 root test 0 Oct 14 07:14 tt1
==
这时候你看到的是tmp目录下的tt1文件

[root@pc61 tmp]# su - test
[test@pc61 ~]$ id
uid=1341(test) gid=800(abc) groups=401(test),800(abc)
用test用户编辑一下tt1这个文件
[test@pc61 ~]$ vi tt1
==
当你切换用户的时候你用了su - test
你的目录就切换到了/home/test下了。
这时候你vi编辑 tt1其实是在/home/test下新建了一个tt1文件并编辑。
这个tt1已经不是你之前tmp目录下的tt1了。
所以你以test用户新建的tt1文件属主当然是test了。

test@pc61 ~]$ ls -lrt tt1
-rwxrwxr-x 1 test test 4932 Oct 14 09:20 tt1
==
为什么我编辑了tt1这个文件后,tt1的属性会从root:test变成test:test
你压根看的就不是同一个tt1文件。

一个tt1在tmp下,一个tt1在~test/下。
是两个不同的文件。

su 切换用户的时候,顺便切换了当前目录。我是从你的命令提示符(PS1)看出来的。

--PS--
一楼说法不对。owner属性,在同一台机器上是不