李三123 于 2011-03-15 19:41:34发表:
学习学习!!!!!!!!!!!
smallhappiness 于 2011-03-11 19:56:16发表:
学习了
cjzhang 于 2011-03-06 23:01:01发表:
学习,学习~
clh920202 于 2011-02-13 21:47:24发表:
学习了 真是透彻易懂 以后要多来看这类的帖子 可以学到很多东东
pallana 于 2011-02-13 16:04:19发表:
6# 相思爱文 学写了。版主原理理解的透彻。
pl_014 于 2011-02-13 06:16:19发表:
引用:疑问同上,那种情况才会带用户标志? pallana 发表于 2011-2-12 22:22
相思爱文 于 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 可以看到,打包的文件除了内容外,用户标识也保存着。
相思爱文 于 2011-02-12 23:48:53发表:
[i=s] 本帖最后由 相思爱文 于 2011-2-13 00:07 编辑 [/i] 3# pl_014 4# pallana 解包前用 tar tvf filename查看 除了文件列表外,同时还会显示用户名
相思爱文 于 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执行,那就能把用户所有者、组、权限一同复制。 但用普通用户,却只能用自己身份创建文件。
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]这是某一个系统特殊的问题吗?或者是系统为了方便使用而故意这样设置的呢?
pallana 于 2011-02-12 22:22:48发表:
[i=s] 本帖最后由 pallana 于 2011-2-12 22:25 编辑 [/i]疑问同上,那种情况才会带用户标志?
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恰巧为这两个数字,所以才显示成数字。不过我很诧异,打包后的还会带用户信息?难道像楼上所说的,带用户名?不对啊,我在编译源码时从来没见过这种情况。
相思爱文 于 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命令。
李三123 于 2011-03-15 19:41:34发表:
学习学习!!!!!!!!!!!
smallhappiness 于 2011-03-11 19:56:16发表:
学习了
cjzhang 于 2011-03-06 23:01:01发表:
学习,学习~
clh920202 于 2011-02-13 21:47:24发表:
学习了 真是透彻易懂 以后要多来看这类的帖子 可以学到很多东东
pallana 于 2011-02-13 16:04:19发表:
6# 相思爱文
学写了。版主原理理解的透彻。
pl_014 于 2011-02-13 06:16:19发表:
我在解压源码包时,常常是由谁解压的,解压后的文件就归谁,tar包也有可能会带上UID、GID,但这种情况我还没见过。
相思爱文 于 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
可以看到,打包的文件除了内容外,用户标识也保存着。
相思爱文 于 2011-02-12 23:48:53发表:
[i=s] 本帖最后由 相思爱文 于 2011-2-13 00:07 编辑 [/i]
3# pl_014
4# pallana
解包前用 tar tvf filename查看
除了文件列表外,同时还会显示用户名
相思爱文 于 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执行,那就能把用户所有者、组、权限一同复制。
但用普通用户,却只能用自己身份创建文件。
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]这是某一个系统特殊的问题吗?或者是系统为了方便使用而故意这样设置的呢?
pallana 于 2011-02-12 22:22:48发表:
[i=s] 本帖最后由 pallana 于 2011-2-12 22:25 编辑 [/i]
疑问同上,那种情况才会带用户标志?
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恰巧为这两个数字,所以才显示成数字。不过我很诧异,打包后的还会带用户信息?难道像楼上所说的,带用户名?不对啊,我在编译源码时从来没见过这种情况。
相思爱文 于 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命令。