Разрешения, необходимые для перемещения файла в другой каталог в Unix/Linux

Мне хотелось бы уточнить требуемые разрешения, чтобы переместить файл A из каталога B в каталог C (команда, по-моему, будет "mv B/AC/A" ), с именем без изменений.

Правильно ли я считаю, что требуется следующее:

  • Пользователь/группа, выполняющая перемещение, должна иметь разрешение на запись для каталога B (или B должен иметь флаг разрешения, позволяющий всем пользователям/группам писать его)
  • Пользователь/группа, выполняющая перемещение, должна иметь разрешение на запись для каталога C (или C должен иметь флаг разрешения, позволяющий всем пользователям/группам писать его)
  • Пользователь/группа, выполняющая перемещение, должна иметь разрешение на запись для файла A (или A должен иметь флаг разрешения, разрешающий всем пользователям/группам писать его)

Спасибо.

Ответ 1

Фактически, перемещение файла - это либо переименование файла в одной файловой системе, либо создание копии и удаление оригинала (обычно это делается только в том случае, если перемещение происходит из одной файловой системы в другую).

В любом случае вам нужно выполнить и, конечно, написать разрешения для целевого каталога и исходного каталога. Однако для простого переименования (и перехода из одного каталога в другой может быть именно это) в одной файловой системе вам не нужны any разрешения для самого файла. Он может быть очищен от всех разрешений, и вы можете переместить его (переименовать) (если у вас есть написать и выполнить) для каталогов).

Для реальной копии (как это необходимо при перемещении файла в другую файловую систему) вам нужны читать разрешения для самого файла. Не требуется писать права на оригинал, поскольку удаление файла не записывается (но в каталог, в котором он находится).