-Pool репозитории содержат пакеты GA (пакеты на диске выпуска), можно установить значение no-refresh через zypper -> zypper mr -R repo-name
-Updates - это репозитории, содержащие выпущенные обновления, поэтому все выпущенные исправления / обновления для продукта находятся в этом репозитории. Эти репозитории должны быть настроены на обновление и являются обязательными для zypper patch
и zypper up
Оба типа репозиториев необходимы, без пула невозможно установить пакет без обновления. А обновления говорят сами за себя :)
TL, DR: ни одно из ваших предложений не является хорошим. Вместо этого, при запуске от имени пользователя root, сохраните файлы состояния в папке / var
(что-то вроде / var / lib / suman
).
Root имеет разрешение на доступ ко всем файлам в системе. Так что не меняйте права доступа к каталогу: это не повлияет на root, но позволит всем остальным читать и писать в этом каталоге. Несмотря на распространенное мнение, chmod 777
крайне редко делают что-нибудь полезное.
У root есть разрешение на доступ ко всем файлам в системе, и обычно этого достаточно. Есть несколько исключений, связанных с определенными типами файловых систем, которые обрабатывают пользователей иначе, чем «обычные» файловые системы. Двумя основными случаями являются:
никто
. Это означает, что когда root открывает файл, это делается с разрешениями никто
. allow_other
, который может использовать только root), файловые системы FUSE доступны только для пользователей, которые установил их. В таких случаях есть файлы, к которым root не может получить прямой доступ, несмотря на очевидные права доступа. Root по-прежнему может эффективно получать доступ к файлам, переключившись на учетную запись, которая владеет файлами - это ограничения реализации, а не ограничения безопасности, - но это немного неудобно.
Если у вас есть программа, которая обычно вызывается как root, но с HOME
, установленным в домашний каталог другого пользователя, вам следует избегать создания файлов в домашнем каталоге пользователя. каталог, к которому у пользователя нет доступа.
Если /home/oleg/.suman
уже существует и принадлежит oleg, не имеет значения, записываете ли вы файлы туда, потому что владелец каталога всегда может удалить файлы в этом каталоге ( требуется разрешение на запись, и владелец всегда может предоставить это разрешение). Когда oleg запускает ту же программу, она заменяет файлы, принадлежащие root, если эти файлы нужно перезаписать. Однако не создавайте подкаталоги: Олег не сможет получить к ним доступ или удалить их, даже если они пусты.
Проблема заключается в том, что вы впервые запускаете программу от имени пользователя root, и она создает /home/oleg/.suman
. Короче говоря, не делайте этого - вопрос в том, как этого избежать.
Если вы запустите sudo -H
, тогда для переменной среды HOME
будет установлен домашний каталог root, и программа не будет обращаться к / домой / олег
.
Но иногда имеет смысл запускать программу от имени пользователя root (поскольку для этого требуются права root), но с вашим собственным домашним каталогом (для чтения файлов конфигурации). Это, конечно, применимо только в тех случаях, когда программа, работающая от имени пользователя root, может читать этот файл конфигурации - настройки пользовательского интерфейса допустимы, но файл конфигурации не должен содержать таких вещей, как исполняемый код (например,оболочка не ускользнет через предварительную обработку). В этом случае программа должна читать файлы из $ HOME
, но не записывать.
Если программе необходимо сохранить некоторые файлы состояния, то, когда она работает от имени пользователя root, она должна хранить их в системном каталоге (в / var
), а не в домашнем каталоге пользователя.
Вам нужен параметр -H, --set-home для sudo.
На странице руководства sudo:
-H, --set-home Запросить, чтобы политика безопасности установила для переменной среды HOME домашний каталог, указанный в записи базы данных паролей целевого пользователя. В зависимости от политики это может быть поведение по умолчанию.