У меня есть 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, который является проблемой, которую я имею со своими сценариями. Что заставило бы эту программу не возвращаться при этом ограниченном пользователе?
Даже при том, что я добавил пользователя к группе, только это, казалось, добивалось цели. Я отредактировал полномочия для базы данных со следующей командой:
sudo chmod o+r /var/lib/mlocate/mlocate.db
При условии, что база данных расположена в/var/lib, это добавляет мировые полномочия чтения к базе данных. Ограниченный пользователь немедленно смог возвратиться, располагаются к stdout как нормальный.
Редактирование: проблема с этим решением состоит в том, что updatedb возвращает мировые полномочия 0. Таким образом, это - только временное решение.
В ходе моего тестирования, когда пользователь без полномочий 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
может успешно прочитать базу данных.