Автор Тема: Cwd  (Прочитано 5573 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Cwd
« : 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
работает.

Что может быть в правах неправильно?

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Cwd
« Ответ #1 : 25 Апреля 2007, 01:13:02 »
Нет прав запускать /bin/pwd. Виртуалхостинг?
The documentations is your friend

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Cwd
« Ответ #2 : 25 Апреля 2007, 13:02:33 »
Цитировать
NeoNox:
Нет прав запускать /bin/pwd.

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

Да.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Cwd
« Ответ #3 : 25 Апреля 2007, 14:21:05 »
Скорее всего Perl запускается от пользователя perl, соответственно у него нет прав на запуск /bin/pwd. Обратись к администрации, это их проблема.
The documentations is your friend

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Cwd
« Ответ #4 : 25 Апреля 2007, 15:23:25 »
Цитировать
NeoNox:
Скорее всего Perl запускается от пользователя perl, соответственно у него нет прав на запуск /bin/pwd.

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

В данном случае я сам администрация, машинка для клиента делается.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Cwd
« Ответ #5 : 25 Апреля 2007, 17:49:59 »
От какого пользователя запускается перловый процесс который использует Cwd?
The documentations is your friend

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Cwd
« Ответ #6 : 25 Апреля 2007, 18:24:41 »
От владельца, т.е. обычный непривелигированный юзер.

Но, я уже похоже разобрался.
Ошибка возникает из-за разницы в реализации самой команды pwd, в одном случае она использует системный вызов open, в другом getcwd (там, где работает). Соответственно для open необходимы помимо прав исполнения еще и чтение.

Оффлайн NeoNox

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3012
  • +0/-0
  • 0
    • Просмотр профиля
Cwd
« Ответ #7 : 25 Апреля 2007, 19:42:14 »
Какая система с неработающим pwd?
The documentations is your friend

Оффлайн sickboy

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 70
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Cwd
« Ответ #8 : 25 Апреля 2007, 21:21:29 »
Linux Gentoo 2006

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28