linux下cp,tar相关权限问题,-p参数

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

 

posted @ 2015-08-15 20:38  xdargs  阅读(1801)  评论(0编辑  收藏  举报