разрешение, отклоненное при выполнении двоичного файла

Стандарт Иерархии Файловой системы дает эти определения:

  • /opt : Дополнительные пакеты прикладного программного обеспечения
  • /usr/local : Локальная иерархия (для использования системным администратором при установке программного обеспечения локально)

Путем я считал что:

  • Стандартные системные приложения должны войти /bin и /usr/bin (подразумеваемый)
  • Сторонние пакеты должны войти /opt
  • Что-то должно только быть установлено в /usr/local если системный администратор хочет это к

Следовательно, если системный администратор устанавливает что-то использование dpkg или rpm, это не должно входить /usr/local по умолчанию.

Таким образом, это возможно делает правильную вещь.

1
15.07.2011, 20:42
2 ответа

Во-первых, в стороне: хранить Ваши данные монго в /usr/local/mongodb_data кажется немного странным; большая часть закулисного устройства хранения данных находится в /var/, или, для самоустановленных приложений, /var/local/. Посмотрите hier(7) или Стандарт Иерархии Файловой системы для получения дополнительной информации. (FHS неверно называется: потому что это является описательным, не предписывающим, это не стандарт. Но это стоит считать.)

Ваш mongodb.lock файл принадлежит root потому что Вы выполнились:

sudo mongod --dbpath=/usr/local/mongodb_data

sudo(8) выполняет программы с другим эффективным идентификатором пользователя (см. seteuid(2), setreuid(2) для деталей). Поскольку Вы не указывали никакого другого пользователя с a -u опция, sudo(8) принявший значение по умолчанию к root учетная запись. Таким образом Ваш файл блокировки был создан с root владелец и группа. (Сравните sudo id с id видеть что изменения.)

Что является странным, хотя, то, что файл блокировки должен был быть удален, когда Вы останавливаетесь mongod база данных. Убедитесь, что Вы останавливаете его правильно - не только, таким образом, файлы блокировки удалены - но также и таким образом, Вы знаете, что данные были правильно сохранены на диск.

3
27.01.2020, 23:17

Сделайте ls -l /usr/local/mongodb_data/mongod.lock

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

2
27.01.2020, 23:17
  • 1
    Doh - право Вы, mongodb.lock принадлежал root. Один вопрос, хотя - я не понимаю Ваше использование "mongodb пользователь". Я думал, выполняя двоичный файл, он обработает файлы как пользователя, который породил его, т.е. markdsievers? –  markdsievers 11.07.2011, 01:50
  • 2
    @BruceEdiger, Чтобы удалить комментарий, нависните своя мышь над ним и нажать × это появляется справа. –  Gilles 'SO- stop being evil' 15.07.2011, 21:26

Теги

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