Question

Est-ce que SCP a un problème pour définir les autorisations de fichiers ou est-ce que mon serveur est mal configuré?

Mise à jour (19 / Mars / 09) : En fait: il n'y a pas de problème - j'ai simplement mal compris le fonctionnement des autorisations - elles ne changent pas lorsque le contenu du fichier est modifié

Cas d'utilisation:

Je souhaite modifier un fichier sur un serveur, appelé "importantFichier.txt". Le fichier a le propriétaire et le groupe de "maître":

ls -l importantFile.txt:
-rw-rw-r--  1 master master     7 Mar 18 08:11 importantFile.txt

Je suis appelé "esclave". mais heureusement, je suis dans le groupe " maître " afin que je puisse éditer le fichier comme bon me semble. Cependant, je suis un esclave paresseux et je ne peux pas être dérangé pour éditer le fichier sur le serveur. Je préférerais éditer le fichier sur ma machine locale et le transférer vers le serveur:

echo "bored slave info" > importantFile.txt
scp importantFile.txt slave@theServerAddress:/pathToFile/importantFile.txt

Si je le fais, le contenu du fichier sur le serveur est correctement téléchargé et l’horodatage du fichier est mis à jour, mais les autorisations du fichier ne changent pas, le fichier est toujours la propriété de "maître". Ceci est un problème car si " esclave " Envoyé du mauvais contenu, personne ne saurait qu'il était "esclave". qui a causé le problème, " maître " aurait l'air coupable.

Peut-être que je dois définir un umask? si oui où? J'ai essayé .bash_profile sans succès et je n'ai rien trouvé sur umask dans / etc / ssh / sshd_config .

Était-ce utile?

La solution

Cela n'a rien de particulier à propos de scp - essayez de vous connecter en tant qu'esclave au serveur et d'éditer le fichier à l'aide de votre éditeur de texte préféré ... Vous constaterez que le même problème se produit ... L'écriture dans un fichier ne vous rend pas le même. propriétaire du fichier.

Exemple:

en tant que racine

#cd /tmp
#mkdir fubar
#chgrp vboxusers fubar
#cd fubar/
#touch testfile
#chgrp vboxusers testfile 
#chmod g+w . testfile
#ls -al
total 16
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     0 2009-03-19 10:30 testfile
#echo foo > testfile 
#ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     4 2009-03-19 10:30 testfile

en tant qu'utilisateur (dans le groupe vboxusers)

>cd /tmp/fubar
>ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     4 2009-03-19 10:30 testfile
>echo bar >> testfile 
>ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:30 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:29 ..
-rw-rw-r--  1 root vboxusers     8 2009-03-19 10:31 testfile
>vim testfile
>ls -al
total 20
drwxrwxr-x  2 root vboxusers  4096 2009-03-19 10:31 .
drwxrwxrwt 15 root root      12288 2009-03-19 10:31 ..
-rw-rw-r--  1 root vboxusers    12 2009-03-19 10:31 testfile
>cat testfile 
foo
bar
baz

Autres conseils

Vous devez supprimer le fichier pour le remplacer. Dans la mesure du possible, cela dépend des autorisations et de la propriété du répertoire. Détourner la propriété d'un fichier déjà existant n'est pas possible. L’autorisation d’écriture dont vous disposez n’est appliquée que sur le contenu du fichier.

Il semble que vous puissiez configurer la manière dont Emacs gère cela à l'aide de la variable sauvegarde par copie lorsque le décalage (voir le manuel Emacs ou tapez Chv sauvegarde par copie lorsque -mismatch dans Emacs).

J'ai en fait déposé un rapport de bogue à ce sujet, car je pensais c'était un bug dans Tramp.

J'avais mal compris le fonctionnement des fichiers, leur modification ne changeant pas le propriétaire ni le groupe.

Pourquoi cette confusion? EMACS : chaque fois que je modifiais un fichier, j'utilisais Emacs et Emacs change le propriétaire et le groupe en utilisateur actuel. Pour ce faire, il crée un fichier de sauvegarde en gagnant du temps en déplaçant le "nom de fichier". to " filename ~ " et créer un nouveau fichier appelé "nom de fichier". - comme il s’agit d’un nouveau fichier, il dispose des autorisations de fichiers de l’utilisateur actuel. Je suppose que c’est 1pour les fans de VI?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top