Проверка доступности путей на файловых системах UNIX

Давненько ничего не писал в свой бложек. Вроде работы много, а все какая-то однообразная рутинная фигня, даже и стыдно писать про нее. Ну да ладно.

Сегодня под вечер добрался до одного своего проекта, который уже весь до мелочей продуман, все схемы и базы готовы, дизайн нарисован, уже есть первые его клиенты, но самого сервиса нет. Лень, она такая, да.

Итак, решил поначалу его на локале писать, потому как идея простая как две копейки и потребности кодить ее на боевом сервере нету.

Врубаю дезмитол, создаю папочку в дефолтной апачевской дире /var/www, готовлюсь к процессу. И думаю, а нафигаж я буду на локальном диске хранить проект, когда можно сделать симлинку в папку дропбокса. Делаю я симлинку, пробую открыть по пути localhost/folder и получаю 403. Это меня не расстраивает, поскоку апач не всегда по умолчанию открывает симлинки, ведущие на локальную файловую систему.

Правлю конфиги самого апача и дефолтного сайта, перезапускаюсь, заново открываю страницу и вновь получаю 403. Логи ничего вразумительного не говорят, я слегка огорчаюсь.  Проверяю права, группы, доступность папки, все верно. Но 403 не сдается.

После долгого курения гугла наткнулся на интересную утилитку под названием namei. Входит по умолчанию в бубунту. Проверяю доступность файла и получаю корень проблемы на блюдечке —

root@alex-desktop:/var/www# namei -m ./minutka/index.html 
f: ./minutka/index.html
 drwxr-xr-x .
 lrwxrwxrwx minutka -> /home/alex/Dropbox/minutka/
   drwxr-xr-x /
   drwxr-xr-x home
   drwxr-xr-x alex
   drwx------ Dropbox
   drwxrwxr-x minutka
 -rwxrwxrwx index.html

Вот такая вот полезная утилитка. Век живи — век учись, ага ))

3.67 avg. rating (75% score) - 3 votes

4 комментария

  • А ls -ld для каждой директории в иерархии, начиная с самой глубокой разве бы не показал то же самое? Или тут фишка в том, что показывается все сразу?

  • а он покажет права на каждую папку в пути?

  • Ну если сваять что-то типа такого, то покажет:
    while [[ ! $d =~ ^/$ ]] ; do d=`pwd`; ls -ld $d ; cd .. ; done

    результат работы, если запусть из /var/www/html:
    drwxr-xr-x. 2 root root 4096 Фев 1 2012 /var/www/html
    drwxr-xr-x. 6 root root 4096 Окт 27 2010 /var/www
    drwxr-xr-x. 24 root root 4096 Апр 23 13:53 /var
    drwxr-xr-x. 30 root root 4096 Сен 7 03:00 /

  • Эта утилита по умолчанию входит не во все дистрибутивы.

css.php