2 votes

Comment modifier les autorisations d'un fichier auquel j'ai accès, mais dont je ne suis pas le propriétaire?

Tout d'abord, pourquoi est-ce que je ne peux pas faire cela?

% id -un
me
% ls -l
-rw-rw-r--+ bob bob 100 aujourd'hui foo
% chmod +x foo
chmod: changement des permissions de `foo' : Opération non permise
% getfacl foo
# fichier : foo
# propriétaire : bob
# groupe : bob
user::rw-
user:me:rwx
user:bob:rwx
group::rwx
mask::rw-
other::r--

Je suis capable de le faire, mais chmod refuse de le faire. Cela fonctionne, par exemple:

% cp foo bar
% mv bar foo
% chmod +x foo
(succès!)

Avec l'effet secondaire supplémentaire que le propriétaire du fichier est maintenant me. (Ce qui est bien.) Est-ce vraiment la façon la plus courte d'accomplir cela?

(La version légèrement plus courte,

% cp foo foo

pour prendre possession ne fonctionne pas non plus. Si je ne peux absolument pas chmod un fichier que je ne possède pas, y a-t-il un moyen de "prendre possession" qui ne nécessite pas une copie complète du fichier?)

2voto

student Points 41

C'est simple : le modèle de sécurité ne le permet pas. À moins que votre système d'exploitation dispose d'une autorisation de modification des ACL, seul le propriétaire d'un fichier ou le superutilisateur peut apporter des modifications aux ACL. La solution, si vous avez les autorisations, est de prendre possession du fichier, de modifier les autorisations et de rendre le fichier. Typiquement, dans les systèmes Unix, seul root peut attribuer ou retirer la propriété d'un fichier, mais comme vous avez trouvé un moyen de prendre possession d'un fichier en le copiant, vous possédez la copie et pouvez remplacer l'original par la copie que vous possédez. Mais maintenant c'est à vous. Regardez également sudo, il fonctionne à merveille pour cela.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X