1. 结论
root用户:
cp uid:gid都为root;
cp -p uid:gid保持原始不变;
解压后文件uid:gid保持原始不变。
普通用户:
cp uid:gid对应当前普通用户uid:gid,权限为原始权限和当前用户umask相与;
cp -p uid:gid对应当前普通用户uid:gid;
解压后文件uid:gid对应当前普通用户uid:gid,权限与是否-p有关,同上。
1. 普通用户从其他用户拷贝文件时, 最好加-p
2. 普通用户解压时,打包和解压时最好是加-p
3. root用户拷贝和解压时要注意目标位置所属的用户和期望的用户,二者uid一致,不一致则切换到普通用户后无法编辑
2. 实验过程
- cp
root用户:
cd /home/sybase
cp后,ll得 权限,uid,gid:
cp file_sybase file_cpy1
cp file_sybase file_cpy2 -p
-rw-r--r-- sybase sybase file_sybase
-rw-r--r-- root root file_cpy1
-rw-r--r-- sybase sybase file_cpy2
sybase用户:
cp和cp -p都是 sybase:sybase
xdself用户:
// xdself用户无法将文件放在/home/sybase
cp file_sybase ~/file_cpy5
cp file_sybase ~/file_cpy6 -p
-rw-r--r-- xdself users file_cpy6
-rw-r--r-- xdself users file_cpy5
uid:gid均分别对应当前用户uid:gid,cp对应的权限为原有权限和当前用户umask相与(root用户则不存在该问题),cp -p则与原始权限一致。参考[tar的-p参数,论坛提问](http://bbs.csdn.net/topics/390242081)
- tar:
原始压缩包的uid:gid为 xdself:sybase
root用户下解压到/home/sybase 文件所属uid:gid保持原始不变
sybase用户下解压,文件所属uid:gid均为当前用户即sybase对应的uid:gid