Основанный на времени доступ к серверу Samba

У меня есть сервер 14.04 под управлением samba. Я хотел бы установить временный доступ к серверу. Я принимаю СМИ для всего дома, и цель в том, чтобы детские телевизоры стали бесполезными в определенное время. Я поместил следующее в root crontab:

  0 22 *    *   0-4   /etc/init.d/samba stop 
  0 22 *    *   0-4   /etc/init.d/smbd stop 
  0 22 *    *   0-4   /etc/init.d/nmbd stop 

Акции продолжают активны в течение указанного времени. Что я делаю не так?

2
задан 12 April 2015 в 19:47

1 ответ

Ваши команды не работают потому что /etc/init.d/smbd и /etc/init.d/nmbd имейте следующее в запуске:

if init_is_upstart; then
                        exit 1
                fi

Так, как init в человечности теперь Выскочка (/etc/init.d/ от SysV), необходимо запустить стартстопные скрипты из каталога /etc/init/. /etc/init.d/ все еще существует для обратной совместимости, потому что много программ все еще используют этот каталог.

Для создания вещей легче для Вас Ubuntu имеет service команда:

sudo service smbd stop
sudo service nmbd stop

При выполнении как root:

service smbd stop
service nmbd stop

service будет сначала искать в /etc/init/ каталог и затем /etc/init.d/. service эффективно в другом смысле это, если существует два сценария, имеющие то же имя в тех двух каталогах (как в случае smbd и nmbd) Новомодный сценарий (в /etc/init/) будет иметь приоритет по сценарию SysV (в /etc/init.d/).

Также Ваш cron запись может быть сделана более простой:

0 22 * * 0-4  service samba stop && service smbd stop && service nmbd stop

&& гарантирует, что следующая команда выполняется, только если предыдущий успешен (т.е. код выхода $?=0).

1
ответ дан 12 April 2015 в 19:47

Другие вопросы по тегам:

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