Вам нужно передать имя файла, чтобы разархивировать его, а также экранировать специальный символ ;
.
find /file/location -mtime -1 -type f -exec unzip {} -d /home/username \;
Принимая во внимание все варианты, о которых я знал (/usr/local/bin
, владелец root, удаление разрешения на запись ), я пошел с неизменяемым флагом для каждого версионного файла:
sudo chattr +i filename
Пользователи, не являющиеся -root, и даже владелец не могут сбросить флаг. Ни файл, ни родительский каталог нельзя удалить или заменить.
Для редактирования файла я добавил следующую функцию в.bashrc
:
editrc () {
sudo chattr -i $1
nano $1
sudo chattr +i $1
}
На других компьютерах мне приходится вытягивать точечные файлы, флаг нужно снять до git pull
, а затем повторно -применить. Сделал вспомогательную функцию, которая принимает флаг в качестве аргумента.
protect-config () {
FLAG=$1
FILES=$(git ls-files | xargs -I @ -- find @ -type f | xargs echo)
lsattr $FILES
if [ "$FLAG" ]; then
sudo chattr $FLAG $FILES
fi
}
Тем не менее, да, я слишком много думаю об этом. Тем не менее, он сейчас на месте. В основном по хорошей привычке.
РЕДАКТИРОВАТЬ :Я больше этим не пользуюсь, так как это было более неудобно, чем ощущение безопасности, которое оно добавляло.
Доступный для записи скрипт может быть заменен чем-то гнусным, пока вы этого не видите, и если root запустит его, игра будет окончена.
Правда, если вы являетесь единственным пользователем машины, риск невелик. Но зачастую проще взломать учетную запись обычного пользователя, (прочитавшего электронную почту с вредоносным ПО, подключившегося к вредоносному веб-сайту, волей -невольно скомпилировавшего и запустившего случайный источник, «чтобы посмотреть, что он делает»,... ), и это позволит повысить привилегии до root.