Forum Webscript.Ru

Программирование => Perl => Тема начата: sickboy от 24 Апреля 2007, 21:01:57

Название: Cwd
Отправлено: sickboy от 24 Апреля 2007, 21:01:57
$ pwd
/home/www/saitig
$ ls -la
total 32
drwx--x---  7 saitig apache  376 Apr 24 17:38 .
drwxr-x--x 66 root adm    2600 Apr 24 20:37 ..

$ perl -e "use Cwd; print cwd();"
/bin/pwd: cannot open directory `..\': Permission denied

На другой машине, с точно такими же правами:
$ perl -e "use Cwd; print cwd();"
/home/www/saitec2
работает.

Что может быть в правах неправильно?
Название: Cwd
Отправлено: NeoNox от 25 Апреля 2007, 01:13:02
Нет прав запускать /bin/pwd. Виртуалхостинг?
Название: Cwd
Отправлено: sickboy от 25 Апреля 2007, 13:02:33
Цитировать
NeoNox:
Нет прав запускать /bin/pwd.

У кого, у пользователя?
Но ведь он может исполнить pwd.
Более того, perl -e "use Cwd; print cwd();" не работает, только если он находится в HOME, если подняться выше, работает.
На другой машине, с точно такимиже правами на HOME, эта команда работает.
Цитировать
Виртуалхостинг?

Да.
Название: Cwd
Отправлено: NeoNox от 25 Апреля 2007, 14:21:05
Скорее всего Perl запускается от пользователя perl, соответственно у него нет прав на запуск /bin/pwd. Обратись к администрации, это их проблема.
Название: Cwd
Отправлено: sickboy от 25 Апреля 2007, 15:23:25
Цитировать
NeoNox:
Скорее всего Perl запускается от пользователя perl, соответственно у него нет прав на запуск /bin/pwd.

Так пользователь из шелла запускает эту команду, при этом не используется никой suid\'ый wrapper.
Цитировать
Обратись к администрации, это их проблема.

В данном случае я сам администрация, машинка для клиента делается.
Название: Cwd
Отправлено: NeoNox от 25 Апреля 2007, 17:49:59
От какого пользователя запускается перловый процесс который использует Cwd?
Название: Cwd
Отправлено: sickboy от 25 Апреля 2007, 18:24:41
От владельца, т.е. обычный непривелигированный юзер.

Но, я уже похоже разобрался.
Ошибка возникает из-за разницы в реализации самой команды pwd, в одном случае она использует системный вызов open, в другом getcwd (там, где работает). Соответственно для open необходимы помимо прав исполнения еще и чтение.
Название: Cwd
Отправлено: NeoNox от 25 Апреля 2007, 19:42:14
Какая система с неработающим pwd?
Название: Cwd
Отправлено: sickboy от 25 Апреля 2007, 21:21:29
Linux Gentoo 2006