Нис и autofs ручной перезапуск после перезагрузки

Так как Вы находитесь на Ubuntu, которой установили Python на значение по умолчанию, можно просто работать python -m SimpleHTTPServer в каталоге файлов Вы хотите совместно использованный. Это просто создает веб-сервер на порте 8000, который служит тому, что находится в той папке, таким образом, в Вашем Windows Computer можно просто указать на браузер на http://IP_OF_UBUNTU_BOX:8000 и загрузить то, в чем Вы нуждаетесь.

5
15.05.2012, 03:28
4 ответа

Это звучит, как будто начинать-порядок Ваших сервисов не в порядке.

В каком числе уровня NIS запускается, в том, какое число уровня autofs запускается и в том, какое число уровня клиент nfs запускается?

Как делает Вашу autofs-конфигурацию для Вашего корневого каталога, похожи?

Это находится в auto.master, или действительно ли это - подкарта?

1
27.01.2020, 20:40

Попытайтесь выполнить следующие команды:

 #sudo update-rc.d nis defaults
 #sudo update-rc.d autofs defaults

сбрасывать init сценарии к последовательности запуска по умолчанию.

0
27.01.2020, 20:40
  • 1
    Обратите внимание, что, по крайней мере, с Ubuntu 11, autofs запуск обрабатывается Выскочкой, и последовательность запуска по умолчанию Ниса и autofs все еще, кажется, являются несоответствующими. –  Lars Rohrbach 26.10.2012, 10:19

Если она, как вы говорите, «должна запускаться при запуске на незарегистрированной учетной записи пользователя», то она обязательно будет иметь доступ ко всем файлам, к которым незарегистрированная учетная запись пользователя имеет доступ.

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

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

Вам не нужно будет использовать sudo в любом случае, поскольку /etc/rc.local выполняется как root, поэтому вы можете su непосредственно к любой учетной записи, которую вы в конечном итоге выберете для запуска программы.

EDIT после уточнения вопроса:

Он должен выполняться каждый раз, когда пользователь любого вида регистраций в.

Вижу. Это очень отличается от запуска его один раз только при запуске с использованием /etc/rc.local , как вы изначально заявили!

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

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

-121--175081-

Ключевой пункт в ответе Муру является то, что для получения обратной косой черты в FS regex необходимо записать двойную обратную косую черту \\. Это потому, что обратная косая черта используется как побег символ на двух разных уровнях.

Одиночная обратная косая черта в последовательность будет рассматриваться как ускользающая от следующего символа, поэтому нам нужно уйти от самой обратной косой черты, чтобы получить единственную обратную косую черту в регексе. И тогда , что обратная косая черта уйдет от следующего символа в пределах regex.

Как я сказал в комментарии, нет никакой разницы между FS = 'ax\*' и FS = 'ax *' , потому что \* рассматривается как * , но неловко напечатает предупреждение на этот счет. Если требуется поместить литерал * в FS , необходимо использовать двойную обратную косую черту, например FS = 'ax\\*' разделится на ax * .

Может быть, некоторые примеры сделают все это немного яснее.

#!/usr/bin/env bash

s='123abcd
123axbcd
123axxbcd
123ax*bcd
123ax**bcd'

printf "%s\n\n" "$s"

awk -F 'ax*' 'BEGIN{printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

awk 'BEGIN{FS="ax*"; printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo


awk -F 'ax\*' 'BEGIN{printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

awk 'BEGIN{FS="ax\*"; printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo


awk -F 'ax\\*' 'BEGIN{printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

awk 'BEGIN{FS="ax\\*"; printf "FS=[%s]\n", FS};{printf "[%s] [%s]\n", $1, $2}' <<< "$s"
echo

вывод

123abcd
123axbcd
123axxbcd
123ax*bcd
123ax**bcd

FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

awk: warning: escape sequence `\*' treated as plain `*'
FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

awk: warning: escape sequence `\*' treated as plain `*'
FS=[ax*]
[123] [bcd]
[123] [bcd]
[123] [bcd]
[123] [*bcd]
[123] [**bcd]

FS=[ax\*]
[123abcd] []
[123axbcd] []
[123axxbcd] []
[123] [bcd]
[123] [*bcd]

FS=[ax\*]
[123abcd] []
[123axbcd] []
[123axxbcd] []
[123] [bcd]
[123] [*bcd]
-121--97760-

У меня была эта проблема в 14,04.

Если дистрибутив использует Upstart для запуска процессов,перейдите на страницу /etc/init/autofs.conf и измените строку

start on runlevel [2345]

на

start on (local-filesystems and net-device-up IFACE!=lo)

. Это заставит Upstart подождать с запуском autofs, пока не будет доступна файловая система и сеть.

Я не использую nis, но я предполагаю, что это ваша главная проблема. Это было для многих людей. Извините за возрождение этого старого поста. Просто подумал, что эта информация должна быть здесь

3
27.01.2020, 20:40

В в /etc/init/ypbind.conf Я добавил непосредственно после того, как «скрипт предварительного запуска»:

    while [ ! -e /var/run/network/ifup.eth? ]
    do
      sleep 0.1
    done

Это потому, что автозапись начинается до того, как NetworkManager поднял интерфейс. Затем NIS ищет крепления и не может найти файловую систему NFS, потому что она не предоставляется Autofs. Начните YPBIND после того, как ваш интерфейс вырос, и все все хорошо.

1
27.01.2020, 20:40

Теги

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