Проблема
Мне нужно предоставить доступ для чтения / записи к системной группе под названием «mongodb» на USB-ключе, отформатированном как ext4. Кажется, что команда сработала, но когда я пытаюсь заставить пользователя системы писать в эту папку, я получаю ошибку прав доступа:
2014-11-11T10:41:19.326-0500 [initandlisten] exception in initAndListen std::exception: boost::filesystem::status: Permission denied: "/media/me/mongotest/mongodb", terminating
Вот команда, которую я использовал, чтобы проверить, есть ли у этой группы доступ:
me@medev:~$ getfacl /media/me/mongotest/mongodb/
getfacl: Removing leading '/' from absolute path names
# file: media/me/mongotest/mongodb/
# owner: root
# group: root
user::rwx
group::r-x
group:mongodb:rwx
mask::rwx
other::r-x
Дополнительный тест
Чтобы доказать, что это работает, я сделал следующее:
me@medev:~$ getfacl /media/me/mongotest/mongodb/ getfacl: Removing leading '/' from absolute path names # file: media/me/mongotest/mongodb/ # owner: root # group: root user::rwx group::r-x group:mongodb:rwx group:testers:rwx mask::rwx other::r-x
me@medev:~$ su test Password:
test@medev:/home/me$ cd /media/me/mongotest bash: cd: /media/me/mongotest: Permission denied test@medev:/home/me$ cd /media/me/mongotest/mongodb bash: cd: /media/me/mongotest/mongodb: Permission denied test@medev:/home/me$
Таким образом, может показаться, что я что-то делаю неправильно с тем, как я создаю / добавляю эти разрешения ... потому что это не работает для обоих пользователей / групп.
Всегда используйте непользовательскую точку монтирования. Значит, пользователь (mongodb) не может писать (мне) другие пользовательские файлы или ссылки. Если вы удалите «я» пользователя, возникнет ошибка соответствующего пользователя и служб. Когда вы даете папке более 1 пользователя, вы создаете перекрестную ссылку (и). Никогда не предлагайте услуги с использованием перекрестных ссылок.
*** извините за ненормативную лексику ..
Мне пришлось предоставить разрешения ACL для папки / media / me. «я» - это имя моего профиля / имени пользователя, и я предполагаю, что ubuntu по умолчанию монтируется под моим именем. так вот что я сделал:
setfacl -m g: mondodb: rwx / media / me
И это работает.