Как сделать так, чтобы файлы, извлеченные из архива, наследовали разрешение от родительской папки

Запуск нескольких команд с помощью sudo можно выполнить разными способами, см.https://www.cyberciti.biz/faq/how-to-run-multiple-commands-in-sudo-under-linux-or-unix/

Например, следующее крыло выдаст две строки вывода, первая из которых будет содержать метку времени вашей локальной машины, а вторая — «root».

sudo -- sh -c 'date; whoami'

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

ssh [options] "sudo -- sh -c 'date; whoami'"

[Параметры] следует заменить любыми параметрами, которые вы хотите указать для ssh, включая имя удаленного хоста.

3
20.08.2020, 20:35
2 ответа

Я все еще ищу лучшее решение, но пока я создал скрипт, который передает вывод tar в команду chmod

#!/bin/bash -
set -o pipefail
tar xvf "$@" | xargs -rd '\n' chmod 770 --

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

--no-same-permissions

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

1
28.04.2021, 23:21

Вы можете использоватьstarреализациюtarи ее опцию -chmodдля установки прав доступа к файлам при извлечении:

star -x -o -f file.tar -find -chmod ug+rwX
0
28.04.2021, 23:21

Теги

Похожие вопросы