红联Linux门户
Linux帮助

红色框中是什么意思?

发布时间:2011-02-12 17:31:19来源:红联作者:昊昊荡荡
如题。我都是在root身份下解压的,怎么用户名和所属组名都变成了数字了呢?
而且我查看passwd文件,没有UID为1000、501的用户。
[attach]33694[/attach]
文章评论

共有 13 条评论

  1. 李三123 于 2011-03-15 19:41:34发表:

    学习学习!!!!!!!!!!!

  2. smallhappiness 于 2011-03-11 19:56:16发表:

    学习了

  3. cjzhang 于 2011-03-06 23:01:01发表:

    学习,学习~

  4. clh920202 于 2011-02-13 21:47:24发表:

    学习了 真是透彻易懂 以后要多来看这类的帖子 可以学到很多东东

  5. pallana 于 2011-02-13 16:04:19发表:

    6# 相思爱文


    学写了。版主原理理解的透彻。

  6. pl_014 于 2011-02-13 06:16:19发表:

    引用:
    疑问同上,那种情况才会带用户标志?
    pallana 发表于 2011-2-12 22:22

    我在解压源码包时,常常是由谁解压的,解压后的文件就归谁,tar包也有可能会带上UID、GID,但这种情况我还没见过。

  7. 相思爱文 于 2011-02-13 00:03:55发表:

    [i=s] 本帖最后由 相思爱文 于 2011-2-13 00:05 编辑 [/i]

    再做个测试。
    假设有一个用户test
    touch test
    ls -l;ls -ln
    tar cvf 1.tar test
    临时删除用户test(在/etc/passwd中用#临时注释掉就行)
    tar cvf 2.tar test

    tar tvf 1.tar ; tar tvf 2.tar
    可以看到,打包的文件除了内容外,用户标识也保存着。

  8. 相思爱文 于 2011-02-12 23:48:53发表:

    [i=s] 本帖最后由 相思爱文 于 2011-2-13 00:07 编辑 [/i]

    3# pl_014
    4# pallana

    解包前用 tar tvf filename查看
    除了文件列表外,同时还会显示用户名

  9. 相思爱文 于 2011-02-12 22:56:32发表:

    [i=s] 本帖最后由 相思爱文 于 2011-2-12 23:36 编辑 [/i]

    做个测试,以二个不同用户建立二个文件,用tar把二个文件打包(可以是任何用户身份执行tar打包)。
    然后用root在别一目录中解包,用ls -l查看用户身份,用ls -ln查看用户UID,与打包前一样。
    修改/etc/passwd(先备份),注释掉一个用户。(用id查看当前用户的UID)。
    用root身份在另一目录中解包,再用ls -l和ls -ln查看解包文件,UID与原文件相同,不管系统中是否有这个用户。

    如果是普通用户解包,权限不够,不能创建另一用户身份的文件,相当于解包后复制。
    这个和用cp -p复制文件一样。如果是root执行,那就能把用户所有者、组、权限一同复制。
    但用普通用户,却只能用自己身份创建文件。

  10. pallana 于 2011-02-12 22:41:10发表:

    [i=s] 本帖最后由 pallana 于 2011-2-12 22:48 编辑 [/i]

    2# 相思爱文


    我如下操作:
    首先root用户把 /mnt 和null 文件进行了打包,[code]localhost ftpd$ ll -a
    总用量 16
    -rw-r--r-- 1 root root 153 2月 12 22:29 null.tar.gz[/code]然后我普通用户用右键解压。
    l[code]ocalhost ftpd$ ll -a
    总用量 20
    drwxrwxr-x 3 aaa aaa 4096 2月 12 22:37 null
    -rw-r--r-- 1 root root 153 2月 12 22:29 null.tar.gz[/code]然后所有的都解压后的文件就变成了普通用户的了。难道这里系统修改了什么?
    然后我把前面解压出来的null文件夹更名为nul345,然后用sudo解压[code]localhost ftpd$ sudo tar -zxvf null.tar.gz
    null
    mnt/
    mnt/home/
    localhost ftpd$ ll -a
    总用量 24
    drwxr-xr-x 3 root root 4096 1月 30 03:38 mnt
    -rw-r--r-- 1 root root 0 10月 23 02:22 null
    drwxrwxr-x 3 aaa aaa 4096 2月 12 22:37 null345
    -rw-r--r-- 1 root root 153 2月 12 22:29 null.tar.gz[/code]我的系统[code]localhost ftpd$ uname -a
    Linux localhost 2.6.35.11-83.fc14.i686 #1 SMP Mon Feb 7 07:04:18 UTC 2011 i686 i686 i386 GNU/Linux[/code]这是某一个系统特殊的问题吗?或者是系统为了方便使用而故意这样设置的呢?

  11. pallana 于 2011-02-12 22:22:48发表:

    [i=s] 本帖最后由 pallana 于 2011-2-12 22:25 编辑 [/i]

    疑问同上,那种情况才会带用户标志?

  12. pl_014 于 2011-02-12 21:45:20发表:

    [i=s] 本帖最后由 pl_014 于 2011-2-12 21:47 编辑 [/i]

    因为没有UID为1000、501的用户,也没有GID为1000、501的组,而这两个目录的UID、GID恰巧为这两个数字,所以才显示成数字。不过我很诧异,打包后的还会带用户信息?难道像楼上所说的,带用户名?不对啊,我在编译源码时从来没见过这种情况。

  13. 相思爱文 于 2011-02-12 19:04:13发表:

    [i=s] 本帖最后由 相思爱文 于 2011-2-12 23:47 编辑 [/i]

    用tar压缩打包,是带用户名和身份信息的,解压后可能是不存在的帐户。
    解包前可用tar tvf filename 查看。
    可用chown命令转换文件所属身份。

    本帖中的1000和501,是打包时文件的UID和GID。

    比如说,你的电脑A中有一个UID为1000的用户的文件file,用tar打包后,传给另一台电脑B。
    在电脑B中解开后,file的属主的UID依然是1000,不管电脑B中是否有UID为1000的用户。

    想查看文件的UID和GID,可以用ls -nl命令。