Сценарий оболочки для нахождения то, что пакет обеспечивает файлу на OpenBSD

Давание целого мирового чтения, доступа для записи и доступа на выполнение к Вашей файловой системе обычно является очень плохой идеей. На одной стороне все с доступом к Вашему компьютеру могут сделать в основном что-либо с системой. И кроме того существует несколько системных демонов как ssh которые проверяют полномочия каталогов и файлов. Если они не корректны, тем демонам часто не удается запуститься.

Лучшее решение для Вашей текущей ситуации состояло бы в том, чтобы восстановить его от резервного копирования. Таким образом, Вы получаете легко все файлы с корректными полномочиями назад.

Если бы у Вас нет резервного копирования, следующее практическое решение состояло бы в том, чтобы переустановить систему. Таким образом, сначала Вы делаете резервное копирование своих файлов, сохраняете установленное программное обеспечение (dpkg --get-selection > installed-software.txt), затем установите новую систему и также установите программное обеспечение, которое Вы использовали (apt-get update && dpkg --set-selection < installed-software.txt && apt-get -u dselect-upgrade). Теперь у Вас есть новая система, и можно обновить файлы конфигурации.

Другое решение состояло бы в том, чтобы записать сценарий. Этот сценарий должен идти через Вашу файловую систему рекурсивно и сравнить разрешение каждого файла и каталог с некоторой другой системой. Это может изменить полномочия согласно другой системе. Возможно, необходимо изменить некоторые значения, но этот сценарий мог сделать основную работу для Вас. Это решение будет также работать, если у Вас будет физический доступ к Вашему компьютеру. Просто загрузите его с живого CD или карты с интерфейсом USB и смонтируйте файловую систему. Или можно также удалить жесткий диск и смонтировать его в другом компьютере.

Однако с моей точки зрения самый быстрый способ вернуть рабочую систему создал бы резервную копию его и переустановил бы ее.

0
23.10.2013, 16:59
2 ответа

Ваш функциональный синтаксис определения является неправильным - это foo() {}, нет foo {}.

1
28.01.2020, 02:28

Можно также использовать существующие инструменты. pkglocate команда от pkglocatedb пакета может позволить Вам искать все файлы от любого пакета OpenBSD, неважно, сделать Вам установили его или нет:

$ pkglocate /usr/local/share/xfce4/panel/plugins/tasklist.desktop
xfce4-panel-4.10.1:x11/xfce4/xfce4-panel:/usr/local/share/xfce4/panel/plugins/tasklist.desktop

Можно перерыть только установленные пакеты с pkg_info (1):

$ pkg_info -qE /usr/local/share/xfce4/panel/plugins/tasklist.desktop
xfce4-panel-4.10.1
2
28.01.2020, 02:28

Теги

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