Каков правильный способ установки контекста SELinux в RPM spec? (RHEL7 в 2018 году)

Из справочного руководства Bash:

Если первый символ параметра - восклицательный знак (!), Уровень переменной вводится косвенное обращение. Bash использует значение переменной, образованной из оставшейся части параметра, в качестве имени переменной ; затем эта переменная расширяется, и это значение используется в остальной части замены, а не в значении самого параметра. Это называется косвенным раскрытием.

Итак, вы можете это сделать:

DB_NAME=$(${!ENV_VARIABLE} python -c "from core import config; print config.DATABASE['db_name']")
1
15.09.2018, 01:15
1 ответ

Ubuntu 18.04.1 LTS достаточно нов, чтобы использовать systemd, а systemdне монтирует файловые системы, перечисленные в /etc/fstab, только с помощью традиционного mount -a.

Вместо этого он автоматически -генерирует.mount-тип файл системного модуля для каждой /etc/fstabстроки,добавляет к этим модулям некоторые зависимости по умолчанию, а затем запускает эти модули параллельно во время загрузки, по сути, как можно скорее.

Хитрость в том, что если systemdявно не сказано, что одно монтирование зависит от того, что другое уже сделано, нет гарантии какого-либо конкретного порядка. Порядок строк /etc/fstabне имеет значения, как когда-то это могло быть с mount -a.

Ваше второе привязное средство передвижения может быть успешным только в том случае, если /mnt/usb2Tуже установлено. Чтобы передать это требование systemd, вам нужно изменить его строку fstabна эту:

/mnt/usb2T/inbox /export/inbox nfs bind,x-systemd.requires=/mnt/usb2T 0 0

Или, в зависимости от используемой версии systemd, к этому:

/mnt/usb2T/inbox /export/inbox nfs bind,x-systemd.requires-mounts-for=/mnt/usb2T 0 0

(Технически, при монтировании с привязкой тип файловой системы в строке fstab, вероятно, должен быть noneвместо nfs, но я думаю, что это в любом случае игнорируется при монтировании с привязкой.)

2
27.01.2020, 23:31

Теги

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