Le script Perl exécuté en tant que root ne peut pas faire de choses root


1

Nous utilisons RedHat Enterprise ES 5 sur x86_64. Nous avons un script Perl qui fait, entre autres:

  • faire un répertoire
  • copier des fichiers à points
  • chown le tout

Le répertoire cible est un répertoire monté automatiquement, qui a en réalité la même chose.

Si nous faisons cela en tant que script shell, cela fonctionne:

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

Si nous faisons cela dans un script Perl, que ce soit en tant que system () ou en antécédents, nous obtenons "opération non autorisée".

Ce script fonctionne parfaitement sur Solaris, d'où il provient.

Le script est exécuté en tant que root, pas avec n'importe quel sous-programme ou setuid.

Quelqu'un a une idée de ce qui se passe?


Pouvons-nous supprimer ce message? Nous n'avons plus accès à la boîte en question, il n'est donc pas possible de tester les solutions possibles.
David Mackintosh

@John non, je ne peux pas, il est écrit "trop ​​de réponses existantes ou de réponses positives / acceptées".
David Mackintosh

Réponses:


3

Je vais aller un peu ici et supposer que vous avez probablement ce système de fichiers monté en tant que NFS avec root-squash. Il s’agit là d’une fonctionnalité de sécurité, car toute personne ayant un accès physique au réseau et un accès en lecture au système de fichiers exporté pourrait alors, avec un accès root sur la machine cliente, accéder à n’importe quel fichier de ce système de fichiers.

Si vous voulez vraiment que root sur les ordinateurs clients ait des privilèges root sur le système de fichiers exporté, exportez-le avec l'option "pas de racine root".

Regarde ça Exemple . Notez que la valeur par défaut de cette option sur votre implémentation de serveur NFS peut être root-squash. Vous devez donc vérifier cette documentation.


Bon, mais non - c'est exporté no_root_squash. En outre, cela n'expliquerait pas pourquoi le script shell fonctionne et le script perl non.
David Mackintosh
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.