chown
é ótimo se você for um superusuário. Eu tinha um problema onde outra pessoa tinha corrido o make
no meu directório, e agora possuía alguns ficheiros que eu não podia modificar. Aqui está o meu script que trata de ficheiros e directórios, embora deixe os directórios com sufixos .mkmeowner
se não os conseguir apagar.
- O script seguinte muda a propriedade dos ficheiros e directórios passados para ele para ser propriedade do utilizador actual, tentando contornar questões de permissão fazendo uma nova cópia de cada directório ou ficheiro não propriedade do utilizador actual, apagando (ou tentando delete) o ficheiro original, e renomeando apropriadamente.
- A intenção é que seja uma abreviatura para “make me owner”. Eu não uso underscores porque são uma dor de escrever.
Exemplos:
% mkmeowner .
% mkmeowner dirpath1 dirpath2
- Requer o seguinte script
mkmeownerone
para estar no seu caminho.
mkmeowner:
#!/bin/bash
["x$1" == "x-h"] || ["x$1" == "x--help"] && cat << END && exit 0
Usage: $0 dirorfile [direorfile2 ...]:
change ownership of directories or files to current user.
Current user must have permissions to read those and write to owner directory.
END
mkmeownerone=`which mkmeownerone`
for d in $*; do
find "$d" -not -user `whoami` -exec $mkmeownerone {} \;
done
mkmeownerone:
#!/bin/bash
# change ownership of one file or directory
f="$1"
expr match "${f}" '.*\.mkmeowner$' > /dev/null && exit 1 # already tried to do this one
if mv -f "$f" "${f}.mkmeowner"; then
cp -pr "${f}.mkmeowner" "$f" && rm -rf "${f}.mkmeowner"
exit 0
fi
exit 1