Вопрос: Невозможно изменить владельца (пользователя или группу) каталога, на который у меня есть все права?


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 in / home / user b имеет 0750 и принадлежит Пользователю B: Группа A.

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


4
2018-01-06 16:12


Источник


попробуйте sudo перед вашей командой chown - kobaltz
Каковы разрешения для папки «foo»? - TheCompWiz


Ответы:


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

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

Тем не менее вы можете изменить группу, принадлежащую вам, к группе, членом которой вы являетесь, поэтому вы должны иметь возможность chgrp «group b» «/ home / user b / foo / test», что может быть альтернативой обмениваться файлами с пользователем b, не становясь root, в зависимости от того, чего вы пытаетесь достичь.

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


11
2018-01-06 17:38



Спасибо за ваше объяснение. Пока я пошел с sudo для очень небольшого подмножества команд. Я собираюсь посмотреть на chgrp. - Bjorn
Нет, для меня не работает следующее: You can however change the owning group to a group you're a member of, so you should be able to chgrp "group b" "/home/user b/foo/test" - проблема с той же «операцией не разрешена». - Ayrat


Часть A:
Операция не допускается, поскольку только владелец и корень (TBOMK).

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


0
2018-01-06 17:28