4

TL; DR: Почему я получаю Операцию не разрешено? И как я могу решить это?


Я столкнулся с проблемой, которую не могу решить. Я создаю каталог как пользователь a:group a), который я хочу изменить на пользователя b:group a. Я не понимаю, почему эта операция не разрешена. Вот что происходит:

user a@foo:~$ mkdir /home/user b/foo/test             
uber a@foo:~$ chmod 0777 /home/user b/foo/test
user a@foo:~$ ls -alF /home/user b/foo/ | grep test
drwxrwxrwx 2 user a            group a 4096 Jan  6 19:53 test/
user a@foo:~$ chown user b:group a /home/user b/foo/test
chown: changing ownership of `/home/user b/foo/test': Operation not permitted

(Ради простоты я изменил имена пользователей и групп)

Другие вещи, которые могут иметь отношение к теме:

  • Пользователь A находится в группе A и группе B.
  • Пользователь B находится в группе B.
  • Каталог foo в /home /user b имеет 0750 и принадлежит пользователю B: группа A.

Мне не терпится понять, почему эта операция не разрешена и как я могу ее решить (решение без использования sudo - плюс)?

2 ответа2

11

Вы можете изменить владельца файла, только если вы являетесь пользователем root (или у вас есть возможность Posix CAP_CHOWN). Это связано с тем, что раздача файлов может вызвать некоторые проблемы с безопасностью (например, если квоты дисков включены, вы можете заполнить квоту пользователя b).

Используйте sudo chown, если вам разрешено это делать, и это сработает.

Однако вы можете изменить группу-владельца на группу, членом которой вы являетесь, так что вы должны иметь возможность chgrp "group b" "/home/user b/foo/test", что может быть альтернативой для обмена файлами с пользователем б, не становясь root, в зависимости от того, чего вы пытаетесь достичь.

Для более гибких разрешений вы можете посмотреть ACL.

0

Часть А:
Операция не разрешена, потому что только владелец и root (TBOMK).

Часть B: Ответ теперь очевиден. Либо пусть пользователь b сделает это, либо, возможно, вам придется прикусить пулю и использовать sudo. Если вы не хотите использовать sudo, я предполагаю, что это потому, что у вас нет root и вам нужно будет заставить кого-то другого сделать это, но, похоже, это единственные два решения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .