Почему не может мой не, администраторские пользователи используют mlocate команду?

У меня есть node.js программный агент, работающий 14.04 не способный запустить многие его скрипты удара на новом сервере. Проблемой, которую я, кажется, имею, являются ограниченные пользовательские возвраты ничто от определения местоположение или mlocate команды.

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

admin@host ~ $ locate 6831-7
/home/example/6831-7.txt
/home/example/6831-7.pdf
/home/example/6831-7.psd

admin@host ~ $ sudo login limited
Password:
limited@host ~ $ locate 6831-7

#it returns nothing

Ничто не возвращается к stdout, который является проблемой, которую я имею со своими сценариями. Что заставило бы эту программу не возвращаться при этом ограниченном пользователе?

0
задан 20 January 2016 в 00:35

2 ответа

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

sudo chmod o+r /var/lib/mlocate/mlocate.db

При условии, что база данных расположена в/var/lib, это добавляет мировые полномочия чтения к базе данных. Ограниченный пользователь немедленно смог возвратиться, располагаются к stdout как нормальный.

Редактирование: проблема с этим решением состоит в том, что updatedb возвращает мировые полномочия 0. Таким образом, это - только временное решение.

0
ответ дан 29 September 2019 в 13:58

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

В вашем случае, какие разрешения у /home/example? Если у пользователя limited нет доступа для чтения к /home/example, locate не будет показывать соответствующие файлы в этом каталоге при запуске limited. Предполагая, что в вашей системе нет других файлов с именем 6831-7, можно ожидать пустых результатов.

Вы можете проверить это, посмотрев, может ли limited использовать locate для поиска других файлов в вашей системе, доступных для чтения всем, например /etc/timezone :

limited@host$ locate timezone
/etc/timezone
/usr/share/help/C/gnome-help/clock-timezone.page
...

Если вы получили результаты, вы знаете, что locate может успешно прочитать базу данных.

0
ответ дан 15 September 2020 в 16:34

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

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