Как заархивировать папку, сохранив владельцев и разрешения нетронутыми?

от склонный человек - добирается

   -y, --yes, --assume-yes
       Automatic yes to prompts; assume "yes" as answer to all prompts and run non-interactively. If an
       undesirable situation, such as changing a held package, trying to install a unauthenticated package or
       removing an essential package occurs then apt-get will abort. Configuration Item: APT::Get::Assume-Yes.

, вы попробовали?

редактируют

мое предложение по install.sh

 sudo apt-get -y update
 sudo apt-get -y install default-jdk
 sudo apt-get -y install expect
 sudo apt-get install lftp

 # rest unchanged
0
22.06.2017, 13:58
2 ответа

Режим tar по умолчанию - сохранить право собственности и разрешения на создание архива; Я не верю, что есть возможность вообще не хранить данные. Когда вы распаковываете архив, если вы обычный пользователь, по умолчанию используются сохраненные разрешения без umask, а владельцем устанавливается тот, кто распаковывает; если вы суперпользователь, по умолчанию используются сохраненные разрешения и владение дословно. Существуют варианты управления восстановлением этих метаданных при извлечении (см. Справочную страницу).

4
28.01.2020, 02:17

Это сработало для меня, с awk :

awk '/with_ajax_wait/,/end/{          # match the lines between the blocks
  i=substr($0,0,match($0, "[^ ]")-1); # i contains the indented spaces
  if($0~/with_ajax_wait/){            # if it is the starting block
    $0=i"it \"waits\" do\n  "$0       # ... add the starting block before the line
  }else if($0~/end/){                 # if it is the ending block
    $0="  "$0"\n"i"end"               # ... add the end block after the line
  }else{                              # else
    $0="  "$0                         # just indent the line with 2 spaces
  }
}1' file

Объяснение в комментариях. 1 в конце всего оператора является просто истинным условием, так что awk печатает все строки.

-121--133120-

Возможно, вам захочется пропустить всю идею путаницы с ключами ~/.ssh/authorized _ keys и просто использовать функцию SSH CA, как описано, например, здесь: https://www.digitalocean.com/community/tutorials/how-to-create-an-ssh-ca-to-validate-hosts-and-clients-with-ubuntu (прокрутите вниз до «How to Configure User Keys»).

Прелесть этого заключается в том, что вы настраиваете контейнер один раз (путем добавления TrustedUserCAKeys/ etc/ssh/users_ca.pub, где users _ ca.pub содержит общедоступную часть ключа ЦС, созданного на локальном компьютере) и с этого момента, если вы хотите предоставить доступ к контейнеру любому ключу, вы просто подписываете открытую часть этого ключа своим закрытым ключом ЦС и указываете, какие учетные записи разрешены для подписываемого ключа. Работает как магия:)

-121--155620-

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

1) вы находитесь в HP-UX, где это обычно разрешено. Это рассматривается как угроза безопасности.

2) вы имеете разрешение на изменение владельца локальных файлов и работаете с локальной файловой системой. См., например, man privileges и типичные разрешения с высокой степенью детализации PRIV _ FILE _ CHOWN и PRIV _ FILE _ CHOWN _ SELF

3) Каталог, в котором извлекаются файлы, имеет наследуемый ACL write _ владелец наборов.

1
28.01.2020, 02:17

Теги

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