@jw013 если я связываю побег или мой ярлык "кДж", чтобы изменить ПС1, будет своевременного обновления, прежде чем я нажмите Enter? Я представляю, как я бы установить Кали в Маунт-мой Windows автоматически диск При загрузке для того, чтобы ссылка работала? Команды dpkg -с помощью команды `ЦС-сертификаты-Ява` дает такой результат: `пакет: ЦС-сертификаты-Ява Статус: установить ОК наполовину настроенный Приоритет: необязательный Раздел: Ява Установлен-Размер: 252 Хранитель: Разработчиками Ubuntu <[email protected]> Архитектура: все Версия: 20100406ubuntu1 Зависит: ЦС-сертификаты (&gt;= 20090814), пакеты OpenJDK-6-JRE и безголовых (&gt;= 6b16-1.6.1-2) | java6-среда-безголовый Рекомендует: libnss3-1D в Конфигурационными файлами: /и т. д./По умолчанию/cacerts в 0ded97abeff69c2362939e2e881e214a /пр/ЦС-сертификаты/обновление.д/JKS по-хранилища 84ae89a338475ccc602f9b0128a124f3`

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

Проблема

У меня есть разработки / промежуточный сервер-сервер под управлением CentOS 5.11. Запустив найдите как обычный пользователь не выход (даже не сообщение об ошибке):

найдите вызове readdir

Однако, выполнив команду с правами суперпользователя выводит список допустимых результатов:

$ судо найдите вызове readdir
/главная/Энтони/РЕПО/РНР-файл src/ЦРМ/вызове readdir.ч
/главная/Энтони/РЕПО/РНР-файл src/ВН/стандарт/тесты/каталог/readdir_basic.phpt по
... и т. д.

трассированием обычно помогает мне отлаживать такие вопросы, и работает трассированием найдите вызове readdir показывает:

stat64("/ВАР/Либ/mlocate по/mlocate по.дБ", 0xbff65398) = -1 значение eacces (отказано)
открыть("/", R_OK|прав) = -1 значение eacces (отказано)
exit_group(1) = ?

Проверить разрешения

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

$ Общ -л в /usr/Бен/найти
-права доступа rwx--с-х 1 корень случшать 22280 3 сентября 2009 /usr/Бен/найти

$ судо ЛС-л /ВАР/Либ/mlocate по/mlocate по.дБ
-RW-Р----- 1 корень случшать 78395703 8 мая 04:02 /ВАР/Либ/mlocate по/mlocate по.дБ

$ судо ЛС-ЛД /ВАР/Либ/mlocate по/
директорию типа drwxr-х--- 2 корня случшать 4096 3 сентября 2009 /ВАР/Либ/mlocate по/

Не существует также никаких необычных атрибутах файла:

$ lsattr команду sudo /usr/Бен/найдите /ВАР/Либ/mlocate по/mlocate по.дБ
------------- /УСР/бин/найти
------------- /ВАР/Либ/mlocate по/mlocate по.дБ

Сравнить с рабочей системы

Между тем, все работает, как ожидалось на рабочем сервере. Запустив найдите вызове readdir как обычный (не root) пользователя возвращает список результатов, следует:

$ найдите вызове readdir
в /usr/включать/РНР/ЦРМ/вызове readdir.ч
в /usr/библиотека lib/perl5/5.8.8/для i386-linux на нить-мульти/авто/в POSIX/вызове readdir.Аль
/usr/share/man/man2/readdir.2.gz

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

Программы, которые используют бит setuid не имеют эффективных привилегий идентификатор пользователя, в то время как прослеживается.

Так что, к сожалению, я не могу использовать трассированием для отладки.

Я сравнивал результаты всех вышеперечисленных команд между постановка и производство серверов и нет никакой разницы между ними. Обе системы имеют как mlocate-0.15-1.el5.2 об / мин, без модификации своих файлов, как показано на оборотах -в mlocate по.

Другие соображения

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

Я подозреваю, что это связано с использования setgid разрешением файл, может быть, Пэм или, возможно, с SELinux. Я не знаю много о Пэм или SELinux: я только посмотрел на Пэм, когда настройки winbind аутентификации, в то время как в SELinux был установлен вместе с ОС, но я никогда не использовал его.

Примечание: рабочий сервер был подвержен гораздо меньше изменений, чем сервер разработки, который имел некоторые эксперименты.

Редактировать: проблема решена

Благодаря острому Селаде глаз и внимание к деталям, я проверил разрешения для корневого каталога.

$ судо ЛС-ЛД /
drwx--XR-х 25 пользователи корневого домена 4096 22 апреля 17:57 /

Когда я проверка подлинности с помощью активных каталогов учетных данных пользователей домена является главной группы, выделило для меня смысл. Некоторое время назад я отрицал права на чтение в набор справочников для других пользователей, изменение структуры собственности группы и удалением разрешение на чтение из группы. Должно быть, я случайно сделал то же самое в корневой каталог. Дох! Интересно, что было несколько недель назад, и я не заметил никаких проблем, хотя она совпадала с временем, когда я сознательно решил начинать входить в систему как обычный пользователь и с помощью sudo, а не входить в систему как root.

Во всяком случае, я изменил разрешения вернуться к тому, что они должны быть:

$ судо команда chgrp root в /
$ судо команду chmod -в г+р /
режим `/' изменено на 0755 (rwxr-XR-х)

$ Общ -ЛД /
директорию типа drwxr-XR-х 25 корень корень 4096 22 апреля 17:57 /

Теперь найти работает как надо.