Как получить доступ к файлу chmod, но я не являюсь его владельцем?

2

Во-первых, почему я не могу это сделать?

% id -un
me
% ls -l
-rw-rw-r--+ bob bob 100 today foo
% chmod +x foo
chmod: changing permissions of `foo': Operation not permitted
% getfacl foo
# file: foo
# owner: bob
# group: bob
user::rw-
user:me:rwx
user:bob:rwx
group::rwx
mask::rw-
other::r--

У меня есть возможность, но я chmodпросто не хочу этого делать. Это работает, например:

% cp foo bar
% mv bar foo
% chmod +x foo
(success!)

С дополнительным побочным эффектом, который теперь есть у владельца файла me. (Это файл.) Это действительно самый короткий способ сделать это?

(Немного более короткая версия,

% cp foo foo

взять на себя ответственность также не работает. Если я абсолютно не могу открыть chmodфайл, который мне не принадлежит, есть ли способ «стать владельцем», который не включает полный ввод-вывод файла?)

Танатос
источник

Ответы:

2

Все просто: модель безопасности не позволяет этого. если ваша операционная система не имеет разрешения change_acl, только владелец файла или суперпользователь может вносить изменения в acl. Обходной путь, если у вас есть разрешения, - это взять на себя ответственность за файл, изменить разрешения и вернуть файл обратно. как правило, в системах Unix единственным, кто может передать или получить право собственности на файл, является root, но, поскольку вы нашли способ получить право собственности на файл, это скопировать файл, так что вы владеете копией и заменяете оригинал. с вашей копией. но теперь это твое. также посмотрите на sudo, это прекрасно работает для этого.

hildred
источник