Корень / корневой каталог по сравнению с ~ (тильда)

Вот то, как я сделал это для моделирования выполнения крона сценария, который я создал несколько лет назад, но который начал перестать работать недавно.

Я создал названный сценарий 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 обеспечивает средства сделать это.

9
04.11.2014, 06:39
3 ответа

Согласно стандарту иерархии файловой системы :

/home : User home directories (optional)
/root : Home directory for the root user (optional)

Типичный домашний каталог пользователя Non root, / Home / $ Usor . / root также особенный в том, что (во многих дистрибутиве) / root читается только для корня ( 700 ), но домашний каталог обычного пользователя имеет доступ для чтения. другим ( и и ).

15
27.01.2020, 20:04

Группу можно унаследовать, установив бит SGID:

chmod g+s /path/to/directory

Для наследования разрешений вам необходим ACL: man 5 acl

Необходимо установить ACL по умолчанию для каталога: setfacl -d -m g::...

-121--125702-

Avahi требует, чтобы для интерфейса был установлен флаг MULTICAST . То есть

ifconfig dummy0 multicast

Как только установлен флаг MULTICAST , avahi будет автоматически объявлять услуги на этом интерфейсе, нет необходимости перезапускать или иным образом связываться с конфигурацией avahi, если интерфейс не запрещен в конфигурации avahi.

-121--87803-

/home - это место, где все пользователи обычно получают свои домашние каталоги, созданные в.

Примеры:

/home/marcelo
/home/joe

/home иногда может находиться в другой файловой системе (т.е. отдельном жестком диске, другом разделе на том же жестком диске или даже подключенном к сети), чем / (файловая система основной системы).

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

Все это настраивается, и теоретически корень системы может располагаться в разделе /home , например /home/root , но это не рекомендуется.

Символ ~ - это только то, что оболочка заменяет домашним каталогом текущего пользователя. Сам по себе он не является допустимым путем.

3
27.01.2020, 20:04

В случае неприятностей во время загрузки (в результате чего в результате других томов не монтируется), он помогает тому, что root (который используется для ремонтных логинов) имеет свой домашний каталог. / Главная часто на другом объеме.

5
27.01.2020, 20:04

Теги

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