Последствия для безопасности запуска сценариев, доступных для записи пользователем, с помощью sudo

Вам нужно передать имя файла, чтобы разархивировать его, а также экранировать специальный символ ;.

find /file/location -mtime -1 -type f -exec unzip {} -d /home/username \;
0
10.03.2020, 04:50
2 ответа

Принимая во внимание все варианты, о которых я знал (/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
}

Тем не менее, да, я слишком много думаю об этом. Тем не менее, он сейчас на месте. В основном по хорошей привычке.


РЕДАКТИРОВАТЬ :Я больше этим не пользуюсь, так как это было более неудобно, чем ощущение безопасности, которое оно добавляло.

0
28.04.2021, 23:21

Доступный для записи скрипт может быть заменен чем-то гнусным, пока вы этого не видите, и если root запустит его, игра будет окончена.

Правда, если вы являетесь единственным пользователем машины, риск невелик. Но зачастую проще взломать учетную запись обычного пользователя, (прочитавшего электронную почту с вредоносным ПО, подключившегося к вредоносному веб-сайту, волей -невольно скомпилировавшего и запустившего случайный источник, «чтобы посмотреть, что он делает»,... ), и это позволит повысить привилегии до root.

0
28.04.2021, 23:21

Теги

Похожие вопросы