Цитата:
Сообщение от DrakonHaSh
открытие тайны не прокатило.
на любом *нормальном* хостинге стоят *нормальные* права. у меня такое ощущение что ты реально не догоняешь зачем этот x-бит на каталоге нужен и как он используется для *безопасности* ФС.
на нормальном хостинге, где админы хорошо соображают в безопасности (хер их порутаешь и хер залезешь через соседа к другому соседу):
ls -ald /home/ /home/s/ /home/s/siskin/
=>
Код:
drwxr-xr-x 30 root root 4096 Aug 9 17:14 /home/
drwx--x--x 79 root root 4096 Jul 25 10:27 /home/s/
drwx------ 9 siskin newcustomers 4096 Jul 21 11:14 /home/s/siskin/
бруть ты, не бруть - фиг ты получишь что-то *полезное*.
а если у кого-то в /root/ или /var/spool/vmail/xxx.com/auth/ стоит drwx--x--x, то я ему "сочувствую" - он 99.9% хорошая и легкая добыча
хотя, естественно, есть ненулевая вероятность того, что я ошибаюсь и что-то не догоняю. приведи конкретный пример
(как я выше) того, что ты собрался защищать от брута каталога с "x-битом" ? [предположение первого порядка на твой
возможный ответ - неверная и/или непродуманная расстановка прав безопасности на ФС ]
|
я честно уже не понимаю почему приходится себя дублировать, но всё же..
(это без доли пафоса, ни в коем случае, просто выше же уже несколько раз описал)
я не против того что есть гуд секурные хостинги и
там всё так как описал ты выше.
речь шла про хостинги, где, к примеру, все сидят под
nobody, и прав на чтение листинга каталога нет, но открывать
файлы web-сервер может, т.к. xbit стоит. речь, как раз, как ты верно заметил (и я на досуге обсуждал с одним человеком
с лисяры) о ползаньи по соседям, пример:
ест правило уникального именования каталога пользователя vhost-хостинга, предположим оно выглядит так:
/var/www/users/
[unique_uid_sequence]/sites/example.tld/webroot/[index.html]
где
[unique_uid_sequence] есть нешто уникальное и неизвестное, соответствующее такому-то пользователю
в некой базе соответствий (тоесть по сути чтобы соседи не ползали как раз друг по другу), пример:
/var/www/users/
0bd3242f90cfa42a/sites/example.tld/webroot/[index.html]
т.о.: в httpd.conf будет для диры /var/www/users/0bd3242f90cfa42a/sites/example.tld/webroot/ опачем будет
создана соотв. vhost entry. но для того чтобы опач сервил в веб файлы внутри каждого каталога пользователя
ему надо xbit, из расчёта что владелец каталога не nobody а ftp-user, определённый в той самой базе и имеющий
право на запись, тоесть опач сервит по групповым разрешениям, которые есть "--x".
теперь - зная
unique_uid_sequence каждого пользователя, а так же сайты которые у этого пользователя
сервятся опачем (сам username нами не нужен, btw) мы можем спокойно бегать по всему серваку в пределах
путей:
[apacheroot]/
0bd3242f90cfa42a/sites/example.tld/webroot/ и читать, к примеру, php-конфиги
с реквизитами конектов в мускул перебором имен файлов и каталогов для каждого сайта, либо зная, что
на таком-то соседнем сайте стопудово такое-то цмс. что тут сложного я не пойму?..
пример II
есть у меня такая привычка когда серв ставлю всё прятать 8)
так я сделал с runtime файлами mysql: pidfile, sockfile, logs
но есть загвоздка - у меня, (гипотетически) нет возможности создать юзера mysql и сделать его овнером каталога,
в котором будет располагаться вышеописанное добро
при всё при этом, для того чтобы добро работало, уж не знаю почему так вышло, но надо мускулу xbit на каталог,
где добро это лежит.. (ну и write конечно-же, чтобы сам сокфайл создать), при условии что его effective uid посе
запуска - не root.
тут то вся эта телега и начала разрывать мне мозг..
это бред и я этого не пойму, ладно в лог писать из под урезанного юзера! но заимев хендл/дескр на сокфайл неужели
при понижении прав доступ к сокфайлу на запись/чтение пропадает через этот хендл/дескр? ну не суть, до сорцов
добираться всё времени нет =\, короче надо чтобы было
o+x хоть в пень разбейся. и тут возникает сабжевый
вопрос - выходит, я имею возможность получить доступ к интерфейсу мускула (до авторизации, просто сам коннект
могу создать), если буду знать каталог, где создаётся сокфайл, тупо подобрав потом его имя! у меня это выглядит как
нечто, похожее на:
Код:
minerva / # ll /N/xn-serv/tmp/mysql/
total 8
dr-x-----x 4 mysql mysql 512B ./
..
drwx------ 2 mysql mysql 512B run/
drwx-----x 2 mysql mysql 512B sock/
(не обращайте внимание на текущего овнера каталога, mysql [u/g]id потом пришлось создать, когда выбора не осталось уже)
тоесть
/N/xn-serv/tmp/mysql/sock/, откуда интуитивно, думается, каждый поймёт че внутри может быть, остаётся
тупо имя файла подобрать и впрёд уже через сокфайл брутить мускул!
вопрос остаётся на повестке дня: any ideas?.. (c)[2]
зы
уважаемые ядерщики, приношу свои извинения, видимо я плохо сформулировал вопрос или не разъяснил заранее термины,
под стандартными средствами (хотя помоему на слух интуитивно, но у каждого, конечно, свой угол зрения) я имел ввиду
не средства разработки а бинары, опции ядра и пр. штуки доступные смертным админам, т.к. конкретно с Вашей помощью
я то сейчас могу закрыть это дело, но остальные нет, меня же интересует именно глобальный подход к проблеме - как и
чем это можно заткнуть, а лучше исключить, пользуясь средствами скорее настройки, тюнинга и администрирования, не
прибегая к средствам разработки, или facl/chattr-like-модификаторам