Commit 6bb12552 authored by Michael Gilchrist's avatar Michael Gilchrist Committed by David Runge
Browse files

Recursively change file permissions for folders listed in profiledef.sh

- if a folder listed in the associative array ends with a "/",
  recursively apply chmod and chown.
parent e43017c9
Pipeline #5848 failed with stages
in 5 seconds
......@@ -55,7 +55,7 @@ The image file is constructed from some of the variables in **profiledef.sh**: `
`('-comp' 'xz')` for squashfs).
* `file_permissions`: An associative array that lists files and/or directories who need specific ownership or
permissions. The array's keys contain the path and the value is a colon separated list of owner UID, owner GID and
access mode. E.g. `file_permissions=(["/etc/shadow"]="0:0:400")`.
access mode. E.g. `file_permissions=(["/etc/shadow"]="0:0:400")`. When directories are listed with a trailing backslash ("/") **all** files and directories contained within the listed directory will have the same owner UID, owner GID, and access mode applied recursively.
packages.arch
=============
......
......@@ -293,8 +293,13 @@ _make_custom_airootfs() {
elif [[ ! -e "${airootfs_dir}${filename}" ]]; then
_msg_warning "Cannot change permissions of '${airootfs_dir}${filename}'. The file or directory does not exist."
else
chown -fh -- "${permissions[0]}:${permissions[1]}" "${airootfs_dir}${filename}"
chmod -f -- "${permissions[2]}" "${airootfs_dir}${filename}"
if [[ "${filename: -1}" == "/" ]]; then
chown -fhR -- "${permissions[0]}:${permissions[1]}" "${airootfs_dir}${filename}"
chmod -fR -- "${permissions[2]}" "${airootfs_dir}${filename}"
else
chown -fh -- "${permissions[0]}:${permissions[1]}" "${airootfs_dir}${filename}"
chmod -f -- "${permissions[2]}" "${airootfs_dir}${filename}"
fi
fi
done
_msg_info "Done!"
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment