Как автоматически изменить владельца каждого файла в каталоге - PullRequest
0 голосов
/ 26 апреля 2019

Есть внешний сервер, который хранит некоторые файлы в папке моего компьютера.Мне нужно автоматически изменить владельца пользователя для каждого файла, созданного в этой папке.

Я видел много ответов, в которых говорилось, что я могу просто изменить владельца группы с помощью setfacl (из моего исследования невозможноизменить владельца USER через setfacl).

В этом случае я не могу, потому что есть скрипт, принадлежащий пользователю A (не root), который собирается chmod для этого депонированного файла, принадлежащего пользователю B,и вы можете только chmod файл, который у вас есть.

Вместо этого (внутри скрипта):

chmod 777 /folder/file.txt

Я попробовал это:

sudo chmod 777 /folder/file.txt

Носпрашивается пароль и БАМ!

У вас есть идеи, как с этим справиться?

Я что-то упустил?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

Я не уверен, чего вы хотите достичь, поэтому вот несколько советов:

  • , если цель состоит в том, чтобы файл имел определенные настройки разрешений, а изменение владельцавторичный, вы могли бы правильно установить разрешения на исходном компьютере и затем использовать метод передачи, который сохраняет разрешения (scp -p или что-то подобное)

  • обратите внимание, что скрипт принадлежит для A все еще может быть выполнять для B, если A правильно установил разрешения (групповой и другой исполняемый бит).Когда B запускает сценарий A, он запускается с разрешениями B, поэтому изменение битов разрешений файла B будет работать

  • , если изменение владельца является обязательным, вы можете перенести файл в B, убедитесь, что Aимеет разрешение на чтение (см. выше), а затем попросил А сделать копию файла в собственный каталог А с помощью команды cp.Копия будет принадлежать A, и, следовательно, A может изменять права доступа к копии.После этого запустите обычный процесс очистки каталога B, чтобы сэкономить место, если это проблема

  • в качестве альтернативы, вы можете иметь B на исходном компьютере, войти в учетную запись A на получающемкомпьютер, а затем файл оказывается в собственности А.Если вы не хотите давать B пароль A, вы можете сделать это, используя ssh сертификат.Но, конечно, это сопряжено с другими рисками безопасности, поэтому приведенный выше метод cp безопаснее

  • наконец, в Unix вообще не рекомендуется делать файлы доступными для записи для «других», и частодаже не для «группы», поэтому настройки разрешений 775 или 755 намного безопаснее и предпочтительнее.В противном случае любой пользователь на одном компьютере может изменить файл или сделать его пустым.Даже на частном компьютере это хорошая практика, потому что рано или поздно один из этих файлов будет скопирован в многопользовательскую систему, и никто не помнит, чтобы проверить разрешения

Надеюсь, некоторыеэти подсказки полезны.

0 голосов
/ 26 апреля 2019

Одним из способов может быть использование группового залипания в родительском каталоге.Это гарантирует, что при создании файлам будет предоставлено то же владение группой, что и каталогу, в котором они находятся.

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

Вы можете закрепить идентификатор пользователя каталога, но это почти всегда неправильно в организации, так как для этого требуется только этот человек.быть в стороне, и каталог переполнен.

...