Можно ли изменить разрешение каталога на предыдущее состояние?

Я случайно изменил разрешение каталога «/ usr / bin» и его файлов командой:

$chmod 775 /usr/bin -R 

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

Интересно, возможно ли вернуть прежнее разрешение?

Я использую Debian / testing.

2 Solutions collect form web for “Можно ли изменить разрешение каталога на предыдущее состояние?”

Большинство программ в /usr/bin должны иметь разрешения 755 – читаемые и исполняемые всеми, доступные для записи только их владельцем, который является root. Несколько программ – setuid или setgid : у них есть дополнительные привилегии, которые присваиваются бит setuid или setgid в разрешениях. /usr/bin/sudo – один из них; он должен быть setuid root: chmod 4755 /usr/bin/sudo восстанавливает его.

Если у вас есть только официальные пакеты от Debian (в отличие от пакетов в дистрибутивах, полученных из Debian или из других источников), вы можете узнать, какие из них содержат двоичные файлы setuid / setgid, перейдя через отчеты Lintian : setuid , setgid , both . В принципе, все эти пакеты должны поставляться с файлом в /usr/share/lintian/overrides который объявляет двоичный файл setxid (тег «overridden» на этих страницах указывает на наличие такого объявления), но некоторые пакеты не соответствуют (включая вездесущие, такие как at и xserver-xorg ).

Следующий скрипт выдает скрипт оболочки, который выполняет команду chmod для восстановления файлов в /usr/bin до их разрешений по умолчанию, если их разрешения по умолчанию включают бит setuid или setgid.

 wget -q -O - https://lintian.debian.org/tags/set{uid,gid,uid-gid}-binary.html | sed -n 's~^.*> *\(usr/bin/[^ ]*\) \([0-7][0-7][0-7][0-7]\).*~[ -e /\1 ] \&\& chmod \2 /\1~p' 

Кроме того, некоторые разрешения могут быть настроены локально. Эти разрешения регистрируются с помощью `dpkg-statoverride . Вы можете перечислить их с помощью

 dpkg-statoverride --list '/usr/bin/*' 

и вы можете повторно применить эти разрешения с помощью

 dpkg-statoverride --list '/usr/bin/*' | awk 'system("chmod " $3 " " $4)' 

Если у вас есть пакеты не из Debian, единственный способ получить правильные разрешения – переустановить их с помощью apt-get --reinstall install PACKAGE-NAME .

К счастью, эти разрешения не являются полными разрушительными, но нет «отмены».

Если вы не можете восстановить из резервной копии и вы ничего не установили из источника в /usr/bin вы можете потенциально использовать диспетчер пакетов для восстановления правильных разрешений:

Для распределений на основе RPM (Red Hat Enterprise Linux, Fedora, CentOS и т. Д.) Это довольно просто:

 rpm -a --setperms 

Для распределений на основе dpkg (таких как Debian & Ubuntu) он выглядит немного менее тривиальным …

  • О перечислении виртуальных дисков на debian
  • Должен ли я понизить gcc для устаревшего кода?
  • Как создать пакет deb, содержащий несколько проектов?
  • Не удалось удалить пакеты библиотеки CLI.
  • отображение неправильных строк в консоли ssh
  • Черный список / Удаление драйвера для конкретного VID / PID
  • как получить список сайтов / доменов, связанных с wirehark
  • Как я могу увидеть процессы, выполняемые другим экземпляром root на моем Beaglebone
  • Iptables: `nf_conntrack_ftp` не работает под debian
  • Если systemd заменил SystemV, почему он все еще существует и кто запускает шоу?
  • Почему у меня внезапно нет звука?
  • Не устанавливайте общие папки NFS с помощью бродячего поставщика libvirt в Debian Jessie
  • Interesting Posts

    Почему gnustep-config ничего не выводит ни на какой параметр?

    Как составить подборку документов Markdown

    Не удалось удалить каталоги, скопированные из других источников. Centos 6

    Как удалить каталоги, начинающиеся с точки после заражения моего сервера?

    Запуск службы после входа в X-сеанс

    Почему tcsh последовательно имеет несколько fd, указывающих на / dev / tty

    Делайте работу «читать», когда не фокусируетесь на терминале

    Лучший сенсорный монитор для Linux под $ 500

    Как запустить вспомогательные апплеты в Центре управления GNOME (v3) непосредственно из командной строки?

    Ubuntu: как отключить экран загрузки и выхода из системы?

    Восстановленные удаленные файлы на Mac по командной строке

    «Echo $ IFS» не возвращает значение IFS

    Удалите строки текста, которые заканчиваются на "/"

    Команда для извлечения списка символов в заданном классе символов в текущей локали

    Две команды, один конвейер

    Linux и Unix - лучшая ОС в мире.