Вот то, как я сделал это для моделирования выполнения крона сценария, который я создал несколько лет назад, но который начал перестать работать недавно.
Я создал названный сценарий dumpenv
:
#!/bin/sh
base=$(basename $0)
env -0 > /tmp/$base.$$.dump
Это выводит все переменные среды в файл в /tmp/
. Затем я изменил свой crontab для добавления:
*/1 * * * * [path to newly created script]
Это делает сценарий выполняемым каждую минуту. Таким образом, после минуты, я получил дамп среды, замеченной задачами, выполненными от крона. Если crontab строку оставляют выполнить больше чем минуту, она создает набор идентичных файлов с именами, отличающимися только по изодромной с предварением части имени файла ($$
). Никакая важная персона. Я, возможно, кодировал для этой возможности, чтобы получить всего один файл, но основной принцип здесь "достаточно хорош", и я мог бы хотеть использовать dumpenv
в других контекстах, где несколько дампов полезны. Во всяком случае желательно удалить crontab строку, которая была добавлена, чтобы не заполнять /tmp
с большим количеством спама.
Затем я создал дополнительный файл, который я назвал /tmp/command
который содержал команду, я хотел выполниться на одной строке, завершенной нулевым символом. Нулевой символ необходим.
Затем я вышел:
cat [path to dumpfile crated earlier] /tmp/command | xargs -0 -x env -i
И это копировало отказ, который я видел, когда моя команда выполняется от крона. Что xargs
делает создать команду формы:
env -i [list of environment variables] [command to execute]
и выполняет его. Список переменных среды появляется из файла дампа. Команда это env
выполняется прибывает из /tmp/command
файл.
-0
аргументы env
и xargs
и необходимый нулевой символ, который я упоминаю выше, состоит в том, чтобы предотвратить искажение среды, в то время как переменные раздаются. В случаях, где среда не содержит переменной среды с новой строкой в нем, -0
мог очевидно быть опущен от вызова env
в dumpenv
сценарий и от xargs
команда, и /tmp/command
файл не потребовал бы нулевого символа как разделителя строки.
Я не делаю никакого явного перенаправления stdin к/dev/null, потому что xargs делает это для меня. Я также не забочусь о перенаправлении stdout/stderr, и я не хочу получать электронное письмо, если команда перестала работать. Для случаев, где эти функции желаемы, ответ Gilles обеспечивает средства сделать это.
Согласно стандарту иерархии файловой системы :
/home : User home directories (optional)
/root : Home directory for the root user (optional)
Типичный домашний каталог пользователя Non root, / Home / $ Usor
. / root
также особенный в том, что (во многих дистрибутиве) / root
читается только для корня ( 700
), но домашний каталог обычного пользователя имеет доступ для чтения. другим ( и
и
).
Группу можно унаследовать, установив бит SGID:
chmod g+s /path/to/directory
Для наследования разрешений вам необходим ACL: man 5 acl
Необходимо установить ACL по умолчанию для каталога: setfacl -d -m g::...
Avahi требует, чтобы для интерфейса был установлен флаг MULTICAST
. То есть
ifconfig dummy0 multicast
Как только установлен флаг MULTICAST
, avahi будет автоматически объявлять услуги на этом интерфейсе, нет необходимости перезапускать или иным образом связываться с конфигурацией avahi, если интерфейс не запрещен в конфигурации avahi.
/home
- это место, где все пользователи обычно получают свои домашние каталоги, созданные в.
Примеры:
/home/marcelo
/home/joe
/home
иногда может находиться в другой файловой системе (т.е. отдельном жестком диске, другом разделе на том же жестком диске или даже подключенном к сети), чем /
(файловая система основной системы).
По этой причине (и, возможно, по другим причинам) домашний каталог корневого пользователя обычно находится в отдельном каталоге, который находится в файловой системе основной системы, поэтому не возникает риска того, что он не будет смонтирован из-за сетевых подключений или других проблем.
Все это настраивается, и теоретически корень системы может располагаться в разделе /home
, например /home/root
, но это не рекомендуется.
Символ ~
- это только то, что оболочка заменяет домашним каталогом текущего пользователя. Сам по себе он не является допустимым путем.
В случае неприятностей во время загрузки (в результате чего в результате других томов не монтируется), он помогает тому, что root
(который используется для ремонтных логинов) имеет свой домашний каталог. / Главная
часто на другом объеме.