Как работает rc работа / порядок (противоречит) & ldquo; start on & hellip; & rdquo; и & ldquo; остановиться на & hellip; & rdquo; строфы

Думаю, эта первая ссылка для вас не странна:

http://www.cyberciti.biz/faq/ubuntu-add-user-to-group/ [113 ]

Затем есть ссылка для пользователей, добавленных в группы с помощью acl:

http://knackforge.com/blog/vannia/setup-default-group-permissions-new- files-create-under-specific-directory-debianubuntu

С помощью acl вы также можете настроить разделы.

Сначала установите acl - если это еще не сделано:

sudo apt-get install acl

blockquote>

Предполагается, что ваш linux-раздел для root (sudo) находится на sda2 - тогда вам нужно отредактировать / etc / fstab для устройства, соответственно. раздел sda2, и это выглядит там до редактирования:

/ dev / sda2 / auto default, nobootwait 0 2

blockquote>

после редактирования:

[ 1112] / dev / sda2 / auto defaults, nobootwait, acl 0 2

blockquote>

Теперь перемонтируйте этот раздел с помощью:

sudo mount -o remount / [1114 ] blockquote>

Когда вы изменили / etc / fstab - вам обычно нужно перезагрузиться:

sudo reboot

blockquote>

Теперь вы можете добавить группу, и в этой группе вы добавляете несколько пользователей - например, группа для разработчиков:

разработчик sudo addgroup

sudo adduser lewinsky developer

blockquote>

(например, lewinsky для члена группы для разработчиков - у вас есть повторить последнюю команду для каждого пользователя группы для разработчиков)

Теперь вам нужно установить acl для папки (вы как пользователь или босс группы и разработчиков):

Установить ACL для папки:

sudo setfacl -d -m "u: никто: rwx, g: разработчик: rwx, o :: rx" -R / home / you /

blockquote >

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

Если у вас уже есть содержимое в папке, вы можете использовать его для изменения разрешений существующего файла, чтобы сделать его доступным для группы:

sudo chgrp developer -R / home / you [1126 ]

sudo chmod g + rwsx -R / home / you

blockquote>

Теперь вот этот пропущенный ответ для определенного пользователя, которому разрешено использовать такие команды, как mount:

[1129 ] sudo adduser lewinsky admin

blockquote>

Это также будет означать, что lewinsky является боссом в группе разработчиков и может использовать другие команды, кроме mount.

Если вы хотите, чтобы lewinsky разрешалось использовать только одну команду mount - это будет выглядеть так:

sudo -u username команда

blockquote>

также [ 1133]

sudo -u lewinsky mount

blockquote>

3
задан 11.11.2019, 09:05

4 ответа

Порядок операций очень тщательно поддерживается в upstart при обработке событий. Остановки, вызванные событием, всегда выполняются перед запуском. В то время как Linux является многопроцессорным, механизм обработки событий выскочки не является.

Таким образом, команда runlevel, которая генерирует событие runlevel, принимается механизмом состояния upstart, а затем обрабатывается, сначала выполняя все переходы от начала до полной остановки. Это будет блокировать , пока первый rc не будет убит и мертв. Затем переходы от остановки к началу выполняются, и запускается новое задание rc.

Это на самом деле задокументировано в исходном коде выскочки:

    /* We stop first so that if an event is listed both as a
     * stop and start event, it causes an active running process
     * to be killed, the stop script then the start script to be
     * run.  In any other state, it has no special effect.
     *
     * (The other way around would be just strange, it'd cause
     * a process's start and stop scripts to be run without the
     * actual process).
     */

Это, вероятно, принадлежит поваренной книге для выскочек , поэтому я открыл здесь ошибку списка желаний: [117 ]

https://bugs.launchpad.net/upstart-cookbook/+bug/745096

0
ответ дан 11.11.2019, 09:05

Теперь мы ясно (надеемся) задокументировали, как работа «rc» работает в Ubuntu в Upstart Cookbook. Он даже имеет свой собственный раздел:

http://upstart.ubuntu.com/cookbook/#the-rc-job

Однако, для полного контекста, Я предлагаю вам прочитать здесь:

http://upstart.ubuntu.com/cookbook/#really-understanding-start-on-and-stop-on

0
ответ дан 11.11.2019, 09:06

Вы видели мой ответ на Чувство "остановиться на ..."? строфа, когда работа - это задача ? Тот же ответ относится к первой части вашего вопроса, он используется для отмены запуска уровня запуска, если пользователь переключается на другой уровень запуска до его завершения.

Я понятия не имею о второй части, хотя.

0
ответ дан 11.11.2019, 09:06
  • 1
    Насколько я понимаю существует два вида " instances". у каждого есть то же имя задания, но отличающийся export значения переменных; другой имеет их то же, но имеет отличающийся instance имена для различения их. Таким образом, может только быть один экземпляр " полностью определенное задание name" за один раз, и export переменные и instance с являются двумя способами изменить компоненты тех " полностью qualified" имена. Однако могло бы случиться так, что upstart достаточно умно инициировать stop on первый, так, чтобы, когда эти start on оценен там won' t быть любым другим rc активные задания. – DaFois 11.11.2019, 09:07
  • 2
    Хм, больше параллели, отправляющей:-) хорошо тогда, я не мог найти строку файла конфигурации экземпляра в job' s определение, таким образом, я думал, емкостно-резистивное задание является единственным экземпляром. Но согласно тому, что Вы говорите, дистанционное управление должно быть мультиэкземпляром. Теперь я волнуюсь... – pnomolos 11.11.2019, 09:07
  • 3
    Для разъяснения немного больше (был немного близко к пределу длины комментария) потому что $RUNLEVEL export, редактор, upstart помнит эти $RUNLEVEL связанный с каждым, запускаются rc задание. Когда эти stop on инициирован, upstart ищет экземпляры rc, которые имеют $RUNLEVEL, который соответствует шаблону [!$RUNLEVEL] и останавливает только тех. Новый экземпляр, очевидно, doesn' t соответствие [!$RUNLEVEL], потому что это $RUNLEVEL, оставлен в покое - также. (Er, все еще немного сбивающий с толку. Шаблон, который это использует для соответствия, является током $RUNLEVEL, будучи согласованным против сохраненного $RUNLEVEL для каждого задания.) – Miklos Krivan 11.11.2019, 09:08
  • 4
    Это только испускается однажды, но несколько заданий могут ожидать его эмиссии, и то же задание может инициировать многократно через [приблизительно 110] / stop on строки файла конфигурации или разделенные от запятой пункты в единственной строке файла конфигурации. Тот инициировал бы дважды: однажды в start on для запуска нового экземпляра, с другой стороны для stop on для уничтожения старого. Если Вы читаете детали в init(5) и upstart(8) тщательно, you' ll отмечают, что upstart знает для соответствия stop on к существующему заданию, потому что $RUNLEVEL export редактор к [1 110] как параметр задания. – Alankar 11.11.2019, 09:08
  • 5
    Я записал второй вопрос в то же время, что и Вы записали ответ на первый... Я вижу параллелизм, но не то, чтобы легкий: строка файла конфигурации остановки только инициирована, если runlevel не равен $RUNLEVEL. Это означает, что задание всегда имеет тот же $RUNLEVEL во время it' s время выполнения. Таким образом я вижу, как задание останавливается / прерванный, но не, как оно перезапущено с новый runlevel. AFAIK, initctl испускает события точно однажды. Событие переключателя runlevel было бы использовано для остановки старого задания, и новое задание не будет запущено потому что событие won' t быть испущенным снова? – Álvaro González 11.11.2019, 09:09

На оставшуюся часть вашего вопроса теперь должны быть даны ответы в следующих разделах Поваренной книги Upstart:

0
ответ дан 11.11.2019, 09:07

Теги

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