preserve ownership and permissions of existing files

Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
Steven Armstrong 2013-09-27 21:51:36 +02:00
parent 58f19df386
commit 8a7639c191

View file

@ -1,6 +1,6 @@
#!/bin/sh #!/bin/sh
# #
# 2012 Steven Armstrong (steven-cdist at armstrong.cc) # 2012-2013 Steven Armstrong (steven-cdist at armstrong.cc)
# #
# This file is part of cdist. # This file is part of cdist.
# #
@ -24,7 +24,7 @@ if [ -f "$__object/parameter/file" ]; then
else else
home="$(cut -d':' -f 6 "$__object/explorer/passwd")" home="$(cut -d':' -f 6 "$__object/explorer/passwd")"
file="$home/.ssh/authorized_keys" file="$home/.ssh/authorized_keys"
fi fi
entry="$__object/files/entry" entry="$__object/files/entry"
if [ ! -s "$__object/explorer/entry" ]; then if [ ! -s "$__object/explorer/entry" ]; then
@ -48,6 +48,8 @@ remove_entry() {
suffix="#/cdist:$__object_name" suffix="#/cdist:$__object_name"
cat << DONE cat << DONE
tmpfile=\$(mktemp) tmpfile=\$(mktemp)
# preserve ownership and permissions by copying existing file over tmpfile
cp -p "$file" "\$tmpfile"
awk -v prefix="$prefix" -v suffix="$suffix" ' awk -v prefix="$prefix" -v suffix="$suffix" '
{ {
if (index(\$0,prefix)) { if (index(\$0,prefix)) {