Как я устанавливаю monit сценарий, чтобы проверить, существует ли каталог, и создайте его, если он не делает

Заключение в кавычки администраторского руководства OpenLDAP:

Порядок оценки директив доступа делает их размещение в конфигурационном файле важным. Если одна директива доступа более конкретна, чем другой с точки зрения записей, она выбирает, это должно казаться первым в файле конфигурации. Точно так же, если один селектор более конкретен, чем другой, он должен быть на первом месте в директиве доступа.

Для вырезания, короче говоря, пробуют следующее:

access to attrs=userPassword
    by dn.base="cn=admin,dc=my-company,dc=de" write
    by set="[cn=sysadm,ou=Group,dc=my-company,dc=de]/memberUid & user/uid" write
    by self write
    by anonymous auth
    by * none

# Allow everybody adding and changing Contacts
access to dn.subtree="ou=Contacts,dc=my-company,dc=de"
    by dn.base="cn=admin,dc=my-company,dc=de" write
    by set="[cn=sysadm,ou=Group,dc=my-company,dc=de]/memberUid & user/uid" write
    by set="[cn=users,ou=Group,dc=my-company,dc=de]/memberUid & user/uid" write 
    by * read

access to *
    by dn.base="cn=admin,dc=my-company,dc=de" write
    by set="[cn=sysadm,ou=Group,dc=my-company,dc=de]/memberUid & user/uid" write
    by self write
    by * read

BTW, Вы действительно хотите предоставить весь пользовательский доступ ко всем атрибутам их собственного объекта ('доступ к *... сам запись')? Поскольку Вы ограничиваете доступ для записи к атрибуту userPassword только в первом ACL, я сказал бы, что это не то, что Вы хотели.

1
задан 20 October 2010 в 11:47
4 ответа

Это работает на меня:

check directory my_path path /mnt/some_mount_point
  if does not exist then exec "/usr/local/bin/create_mnt.sh"
6
ответ дан 3 December 2019 в 16:30

Это может помочь вам mkdir -p $directory сделать то, что вы хотите. Опция -p создаст любые необходимые родительские каталоги. Если $directory уже существует в качестве каталога, команда ничего не делает и успешно работает. Если $directory - обычный файл, то он останется нетронутым, nd не даст сбоя, если каталог уже существует, так что вы можете сделать все это сразу:

mkdir -p /some/directory/you/want/to/exist || exit 1

2
ответ дан 3 December 2019 в 16:30

Alec в основном имеет его, но для этого не нужно создавать скрипт. Вы можете запустить mkdir напрямую (хотя обратите внимание, что вам нужен полный путь к нему):

check directory my_path path /mnt/some_mount_point
  if does not exist then exec "/bin/mkdir /mnt/some_mount_point"

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

.
0
ответ дан 3 December 2019 в 16:30

Нет необходимости создавать отдельный скрипт, вам нужно использовать bash с опцией -c :

check directory my_path path /some/path/to/dir
  if does not exist then exec "/bin/bash -c 'mkdir -p /some/path/to/dir'"
  as uid <some_user> and gid <some_group>

Мониторинг процесс запускается от пользователя root, поэтому убедитесь, что вы не создаете каталоги как root (предположительно, вам это не нужно) Затем вы можете убить процесс monit и запустить его на переднем плане с помощью

monit -Ivv

и просмотреть выходные примечания отладки. Если ошибок нет, вы можете остановить monit на переднем плане с помощью C-c и запустить его как обычный процесс deamon.

Надеюсь, это поможет.

0
ответ дан 3 December 2019 в 16:30

Теги

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