1

Мы работаем с RedHat Enterprise ES 5 на платформе x86_64. У нас есть Perl-скрипт, который делает, среди прочего:

  • сделать каталог
  • скопировать в него точечные файлы
  • чоун весь

Целевой каталог - это автоматически смонтированный каталог, который фактически совпадает.

Если мы сделаем это как скрипт оболочки, он будет работать:

mkdir /net/host/drive/directory/new
cp /some/stuff/.??* /net/host/drive/directory/new
chown -R user:group /net/host/drive/directory/new

Если мы сделаем это в Perl-скрипте, как system() или как back-ticks, мы получим "операция не разрешена".

Этот скрипт отлично работает на Solaris, откуда он и появился.

Скрипт запускается с правами root, а не с su- или setuid.

У кого-нибудь есть идеи, что происходит?

1 ответ1

3

Я остановлюсь здесь и предположу, что у вас, вероятно, есть эта файловая система, смонтированная как NFS с root-squash. Это функция безопасности, потому что в противном случае любой, имеющий физический доступ к сети и доступ для монтирования на чтение к экспортируемой файловой системе, мог бы затем, имея root-доступ на клиентском компьютере, получить доступ к любому файлу в этой файловой системе.

Если вы действительно хотите, чтобы root на клиентских компьютерах имел привилегии root в экспортируемой файловой системе, вы должны экспортировать файловую систему с опцией "no root squash".

Смотрите этот пример. Обратите внимание, что значением по умолчанию для этого параметра в реализации вашего сервера NFS может быть root-squash, поэтому вам следует дважды проверить эту документацию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .