Как я могу отключить/proc псевдофайловую систему на общей среде Linux?

Я чувствую себя глупым, так или иначе я поцарапал голову для описывания этого сценария, когда у меня была подобная проблема. Я использовал cpio с -it флаг для получения списка файлов; можно использовать эквивалентные команды для другого archivers. Хитрая часть, архив cpio от initrd, и я извлек в /, столько папок и файлов имеют то же имя как в рабочей системе. К счастью cpio не перезаписывал ни одного из моих существующих файлов. Я использую проверку времени для обеспечения для не удаления чего-либо, что существовало перед неправильной командой.

#! /bin/sh

files=$(cpio -it < /mnt/temp/lglive.cpio)

for i in ${files}
do
    name=$(stat -c "%n" ${i})
    time=$(stat -c "%Y" ${i})
    # Time of the creation of the mess: 1296457595
    if [[ ${time} -gt 1296457590 && ${time} -lt 1296457600 ]]
    then
        if [[ -f ${name} ]]
        # If it is a file, it must have been created as part of the mess.
        then
            echo "rm ${name}"
        elif [[ -d ${name} ]]
        # If it is a directory, it may have been part of the mess
        # or maybe some files underneath it is created as part of the mess.
        then
            if [[ $(ls -A ${name}) ]]
            # If the directory contains something then don't delete it.
            then
                echo "${name} is not empty"
            # If the directory is empty then assume it is rubbish.
            else
                echo "rmdir ${name}"
            fi
        fi
    fi
done

echo "Files and directories still exist after the removal:"
for i in ${files}
do
    if [[ -e ${i} ]]
    then
        echo ${i}
    fi
done
3
26.02.2011, 13:45
2 ответа

Существует grsecurity patchset (включенный в SELinux, но не имеет ужасно сложной системы разрешения MAC последнего) для ядра Linux, которое предлагает опцию разрешения только владельца (и корень) для наблюдения его процессов. Это также предлагает другим положительным героям, не будучи столь же навязчивым как SELinux.

Подобная опция находится там на Солярисе, или таким образом, я слышал.

8
27.01.2020, 21:08

Если Вы отключаете /proc, много вещей прекратит работать. Мало того, что Вы не сможете использовать ps и компания, даже для наблюдения собственных процессов, но большого количества инструментов и сервисов не сможет работать. Рассмотрение компьютера, который я пишу этому на, процессы, которые имеют файл под /proc открытый включают mdadm (НАБЕГ), Xorg (GUI), hald (заменяемые в горячем режиме устройства), acpid (ACPI), rpc.mount (Сервер NFS).

Это могло бы быть осуществимо для предоставления /proc полномочия 550 (т.е. non-world-readable), группа proc-readers, и помещенный все сервисы то использование /proc но не работают как корень в proc-readers группа. Я никогда не пробовал; это - предложение по эксперименту, не что-то, чтобы сделать на производственной машине.

Используйте SELinux или виртуализацию для дальнейшей изоляции пользователей.

5
27.01.2020, 21:08

Теги

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