Bonjour à tout le monde,
Lorsque j'essaye de copier un fichier avec les droits: srwx------ , j'obtiens le message:
cp : impossible d'ouvrir /chemin/fichier : Cette opération ne peut être effectuée sur la destination réseau.
même avec le compte root, ça marche pas.
Merci d'avance pour vostre aide.
Hicham
Salut,

As-tu les droits de lectures et d'écritures sur la destination réseau ?
Ce n'est pas un partage réseau, d'ailleurs je ne sais pas pourquoi il y a le mot réseau dans le message d'erreur, en fait je suis conetcté sur le serveur via ssh avec root, je me demande si ce n'est pas la lettre s dans les droits de ce fichier qui dérange la copie?!
Hicham
srwx------
à priori ce n'est pas un fichier ça.
La lettre 's' indique que le fichier (s'il est exécutable) doit être exécuté avec l'identité du propriétaire (su implicite).
Le 's' en première position indique que ton fichier est une socket (soquette?) qui sert principalement à des échanges réseau.
Normalement les sockets sont crées/effacées par un applicatif et je ne sais pas si cela a un sens de copier un tel fichier. Même dans une sauvegarde de répertoire il n'y a pas beaucoup de chance de pouvoir ré-utliser une sauvegarde de socket.

Peux-tu faire
ls -l ton_fichier
file ton_fichier
Sous Unix/Linux tout est sous la forme de fichier, mais les fichiers peuvent être de différents types (répertoire, réguliers, liens symboliques, pipe nommé, ....).

On confond souvent le fait que pratiquement tous les paramètres sont dans des fichiers plats (texte) (par opposition à des bases de registre abscons) et le fait qu'unix/linux utilisent d'autres types de fichier. Un exemple courant est le type de fichier répertoire qui n'est qu'un fichier mais d'un genre spécial). Et tu viens de découvrir les sockets je te laisse le soin de découvrir les autres.
Exemple
man find (paragraphe -type)

Essaie de faire un 'cat nom_repertoire' et tu verras que c'est logiquement interdit (bien que sur certains Unix on puisse faire un vidage hexadécimal d'un répertoire).

Pour les socket et pipes nommés, ces fichiers appartiennent à des applicatifs et sont réservés à ces applicatifs.

Il serait dangereux pour la confidentialité qu'un utilisateur (même si c'est root 'su -') puisse examiner des transaction SQL.

Pour le réseau, root peut examiner pas mal de choses (tcpdump, ...). C'est la raison pour laquelle il faut toujours privilégier ds outils comme ssh qui cryptent leurs données.
Merci, effectivement c'est fichier socket
Effectivement

# file /...../...../cgisock
/opt/rational/common/rwp/IHS/logs/cgisock: socket

Mais si je ne peux pas le sauvegarder, comment éviter ca sauvegarde. En en effet, j'ai une tache de sauvegarde qui s'exécute une fois par nuit pour sauvegarder un répertoire qui contient des fichiers dont celui-là (le fichier socket), à chaque sauvegarde j'obtient le message d'erreur. J'ai l'impression que la sauvegarde s'arrête et ne continue pas au moment où la commande cp -r ne peut pas sauvegarder le fichier socket.
Comment faire:
1- pour eviter la sauvegarde de ce fichier socket?
ou
2- est ce que la sauvegarde s'arret comme je pense au moment de l'erreur de copie (comme sous windwos).
Merci d'avance.
Hicham.
Normalement linux IS NOT windows et une copie du genre 'cp -r' ne s'arrête pas mais passe au suivant.

je ne connais pas le logiciel qui utilise une socket 'cgisock', mais si l'on prend l'exemple d'une base de données, ce n'est pas une bonne idée de copier le ou les répertoires contenant les fichiers d'une base de données par un simple 'cp -r' surtout si la base est en activité.

En cas de reprise à partir de la sauvegarde, il y a de grandes chances pour que la base redémarre avec des problèmes.

Si un logiciel est arrêté, normalement les sockets qu'il utilise sont supprimées. Et là on peut sauvegarder en toute sécurité.
pmarion wrote:Normalement linux IS NOT windows et une copie du genre 'cp -r' ne s'arrête pas mais passe au suivant.

je ne connais pas le logiciel qui utilise une socket 'cgisock', mais si l'on prend l'exemple d'une base de données, ce n'est pas une bonne idée de copier le ou les répertoires contenant les fichiers d'une base de données par un simple 'cp -r' surtout si la base est en activité.

En cas de reprise à partir de la sauvegarde, il y a de grandes chances pour que la base redémarre avec des problèmes.

Si un logiciel est arrêté, normalement les sockets qu'il utilise sont supprimées. Et là on peut sauvegarder en toute sécurité.
Au-delà de ça, si tu dois vraiment copier le contenu de ton répertoire mais sans les fichiers spéciaux, retourne dans le manuel de fin, section -type !
Un "find -type f" sur ton répertoire te retournera la liste des fichiers ordinaires contenus dans celui-ci.
Tu peux chaîner la commande find avec la commande cp pour ne copier que les fichiers inclus dans la liste retournée par le find.

Bon courage !
Merci bcp les amis pour l'aide et pour toutes ces information qui m'ont été très utiles.
Hicham du Maroc