Позвольте корневому чтению все файлы на каталоге NFS, даже при том, что сервер имеет включенный root_squash

cat[117509] объединяет файлы, переданные в качестве аргументов в командной строке в стандартный вывод, он читает байты за раз, а по умолчанию не выполняет никакой интерпретации прочитанных им байтов.

curl -JLO http://www.vim.org/scripts/download_script.php?src_id=9750

В первом примере вы перенаправляете stdout в файл, поэтому получаете новый файл.

Во втором примере байты записываются на терминал, и именно терминал интерпретирует последовательности символов как управляющие последовательности для терминала, поэтому вы получаете необычное поведение на вашем терминале. Это никак не связано с [117510]cat[117511] как таковым, [117512]cat[117513] не знает, что вы собираетесь делать с его выводом. Возможно, вы посылаете его через трубу в другую программу для интерпретации/процессирования/печати или воспроизведения "Пения под дождём".

Так что следуя философии уникс,


делайте одно, делайте только одно, но делайте это хорошо

cat[117517] не должен пытаться угадать, что вы пытаетесь сделать.

отредактируйте 1 ответ на 1-й комментарий @kiwy ниже.


Да и нет, позвольте мне объяснить,

Нет, если вы [117518]cat[117519] на терминал, потому что он (терминальное программное обеспечение) посылает выход на ваш экран или интерпретирует управляющие последовательности (он эмулирует старое оборудование, т.е. [117520]устройство телетайпа [117521]).

но,

Да, если вы кошка в трубе и получающая программу может интерпретировать символы как команды.


посмотрите на это как на пример, [117522]кошка anyOldShellScript | bash[117523] bash будет интерпретировать то, что он получает как команды.[117240]

2
20.02.2015, 01:35
1 ответ

Вы можете требовать, чтобы все ваши пользователи устанавливали разрешения по умолчанию для других = чтение (файлы) и другие = чтение + выполнение (каталоги), Так что ваша учетная запись «root» может прочитать их.

Вы можете изменить поставщики серверов NFS где-то, что позволяет NO_ROOT_SQUASH .

Вы можете создать набор «поддельных» userids на вашем клиентском компьютере, а затем итерации по ним, работает что-то вроде Найти / mnt / nfs -user "$ fake_userid" ... | Тара --но-рекурсия --files-from = - для каждой учетной записи. Это будет генерировать несколько талборов, но вы избегаете перекрывающихся резервных копий ( находятся разделы файлов владельцем, поэтому каждый файл появится только в Tarball для пользователя, который принадлежит этому файлу).

1
27.01.2020, 22:21

Теги

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