Назад | Перейти на главную страницу

Что вызывает отказ в разрешении при выполнении ls для символической ссылки, когда в базовом файле всем предоставлено 'r'?

Не уверен, принадлежит ли это сюда или на superuser.com.

Я борюсь с тем, чтобы заставить работать процесс C, который необходимо связать в динамических библиотеках Oracle.

Он компилируется и отлично работает под пользователем oracle (против которого был установлен пользователь oracle), но не под другой учетной записью. Очевидная причина заключается в том, что установка oracle по умолчанию не разрешает чтение или выполнение ни одной из разделяемых библиотек в / lib.

Я предоставил всем r + x для базового dylib (эквивалентно .so и т. Д.) И, выполняя под пользователем oracle, я получаю следующие результаты

ls -lrt *odm* 
-rwxr-xr-x  1 oracle  dba  9000 Mar  3  2009 libodmd10.dylib
lrwxrwx---  1 oracle  dba    15 Jul 25 14:23 libodm10.dylib -> libodmd10.dylib

Проделав то же самое под другим моим пользователем (тем, под которым я хочу выполнить), я получаю следующее

ls -lrt libodmd10.dylib
-rwxr-xr-x  1 oracle  dba  9000 Mar  3  2009 libodmd10.dylib

ls -lrt libodm10.dylib

ls: libodm10.dylib: Permission denied
lrwxrwx---  1 oracle  dba  15 Jul 25 14:23 libodm10.dylib

Я подозреваю, что ответ невероятно глуп и прост, но я понял, что символические ссылки унаследовали разрешения от базового файла.

ls не заботится о разрешениях файла, потому что он только перечисляет его запись в каталоге. Однако когда ls разыменовывает символическую ссылку, происходит доступ к содержимому ссылки. Так что он заботится о разрешениях ссылки. Здесь у вас нет разрешения читать, что является целью libodm10.dylib если вы не в dba группа.

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

Обратите внимание, что некоторые Unices просто не поддерживают разрешения на символическую ссылку; OSX делает.

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