Почему webmin не может открывать файлы в каталогах, которые не являются исполняемыми в мире? - PullRequest
0 голосов
/ 21 августа 2009

Я использую пакет Perl с открытым исходным кодом с именем "webmin" на нескольких серверах. В основном это Perl внутри.

Я обнаружил странное поведение на новом 64-битном сервере: файлы создавались пустыми.

Я проследил это до ошибки «Отказано в доступе» во встроенной функции Perl open что довольно необычно, так как приложение работает от имени пользователя root. У меня был perl вывод переменных $ <и $>, и они оба утверждают, что я пользователь 0

Эта ошибка, похоже, влияет на файлы в каталогах, где каталог не является исполняемым в мире (chmod o-x $DIR) ... и это происходит только глубоко внутри webmin, я не могу воспроизвести его самостоятельно .

Звучит ли это кому-нибудь хотя бы отдаленно?

Ответы [ 4 ]

2 голосов
/ 21 августа 2009

Я обнаружил ошибку «Отказано в доступе» [....] * [w] * что довольно необычно, так как приложение работает от имени пользователя root.

Вы уверены, что работаете как root во время неудачного open()?

Документация webmin может выполнять произвольные команды от имени других пользователей , и быстрый просмотр исходного кода показывает количество экземпляров функции с именем switch_to_unix_user() ...

2 голосов
/ 21 августа 2009

ACL в каталоге?

SELinux включен?

Тот факт, что вы получаете ошибку «отказано в разрешении» в каталоге, в котором нет бита выполнения, неудивителен - в каталогах бит выполнения управляет доступом к содержимому каталога - вопрос в том, почему бит выполнения не установлен.

Проверьте, применяется ли к процессу какой-либо параметр umask.

1 голос
/ 21 августа 2009

в разрешениях Unix вам нужно разрешение на выполнение для каталога, чтобы получить доступ к чему-либо внутри него (вам не нужно разрешение на чтение, это для просмотра каталога; вам нужно только разрешение на выполнение для доступа к содержимому). поэтому что-то обращается к файлу под пользователем, который считается «другим», и у него нет разрешения

0 голосов
/ 02 декабря 2015

У меня похожая проблема, и причина, по-видимому, заключается в длине пути к файлу / каталогу, который вы пытаетесь открыть / записать. В моем случае я пытался открыть папку, которая существует и имеет разрешение 777, но система все еще не работает, говоря, что каталог не существует. Произошло некоторое тестирование и открытие другой папки на том же уровне, но с более коротким именем - успешно

...