我正在以 root 身份部署一些自定义软件(对于这种情况这是必要的)。
我预先在 shell 中将所有所有者/组设置为user1:user1
并将所有文件设置为644
,然后使用 ant 复制并部署。
但是,当文件从部署目录复制过来时,所有权将变回根目录,并且所有文件都具有666
权限安装。
无论文件是被覆盖还是新建,似乎都会发生这种情况。我相信有一种方法可以在命令中设置一个选项cp
来mv
保留权限,但这将需要更改很多命令。我该如何解决这个问题?
是否有一些设置我可以暂时更改为 root,以便安装始终保留文件权限?
答案1
cp -p
将保留您的权限。如果您希望副本尽可能接近原样,则只需使用“存档”选项:cp -a
。您可以从中cp --help
仔细检查:
-a, --archive same as -dR --preserve=all
-p same as --preserve=mode,ownership,timestamps
--preserve[=ATTR_LIST] preserve the specified attributes (default:
mode,ownership,timestamps), if possible
additional attributes: context, links, xattr,
all
答案2
不,但你应该使用install
相反,它可以让您明确指定所有这些。