37 lines
778 B
Bash
37 lines
778 B
Bash
# Change file ownership to specified user id and restrict access to him.
|
|
# Root user by default. This directory recursively by default.
|
|
# Usage: own [USER] [FILES]
|
|
function own() {
|
|
local IFS=$'\n'
|
|
local files=("${@:2}")
|
|
local user="${1}"
|
|
local group="${1}"
|
|
|
|
# default to current dir.
|
|
if [ "${files[*]}" = "" ]; then
|
|
files=(".")
|
|
fi
|
|
|
|
# default to current user.
|
|
if [ "${user}" = "" ]; then
|
|
user="${UID}"
|
|
fi
|
|
|
|
# If not root, default to users group.
|
|
[[ ${user} == 0 ]] && group="0" || group="100"
|
|
|
|
for file in "${files[@]}"; do
|
|
# set ownership.
|
|
chown "${user}":"${group}" -R "${file}" &>/dev/null
|
|
|
|
# remove access from group and others.
|
|
chmod -077 -R "${file}"
|
|
done
|
|
}
|
|
|
|
function _complete_own() {
|
|
_autocomplete $(_get_users)
|
|
}
|
|
|
|
complete -F _complete_own own
|