chown
чудово, якщо ви суперкомпетентність. У мене виникла проблема, коли хтось інший працював make
у моєму каталозі, і тепер я мав деякі файли, які я не міг змінити. Ось мій спосіб вирішення файлів та каталогів, хоча він залишає каталоги лежачи з суфіксом, .mkmeowner
якщо він не може їх видалити.
- Наведений нижче сценарій змінює право власності на файли та каталоги, передані йому, щоб належати поточному користувачеві, намагаючись вирішити проблеми з дозволом, створивши нову копію кожного каталогу чи файлу, що не належать поточному користувачеві, видаливши (або намагаючись видалити) оригінальний файл та перейменування відповідним чином.
- Намір полягає в тому, щоб це було абревіатурою "зроби мене власником". Я не використовую підкреслення, тому що вони наносять біль.
Приклади:
% mkmeowner .
% mkmeowner dirpath1 dirpath2
- Для цього потрібен наступний сценарій
mkmeownerone
.
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
man chown
іman chmod
легко відповісти на ваше запитання.