В Linux, почему необходимо быть корнем для записи в/proc/sysrq-trigger?

При разархивации папки без он - полная иерархия

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

Только 2 подхода, которые я видел, который может сделать это, должны создать цикл, который проходит индекс zip-файла, чего-то вроде этого:

Метод № 1

for i in $(unzip -l zipfile.zip); do

   # look for specific location
   # when there, make directory structure you want
   # unzip zipfile.zip $i -d /some/tmp/dir
   # move file from /some/tmp/dir to new directory

done

Вышеупомянутое может быть сделано на многих языках программирования, таких как Perl, Python, и т.д.

Метод № 2

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

При разархивации папки с он - полная иерархия

Если, с другой стороны, Вы просто пытаетесь извлечь единственную папку из zip-файла, можно использовать эту команду, чтобы сделать так:

$ unzip "/path/to/archive.zip" "in/archive/folder*" -d "/path/to/unzip/to"

Пример

Демонстрационная структура каталогов.

$ tree 
.
|-- 1
|   |-- 2
|   |   |-- 3
|   |   |   `-- 4
|   |   |       `-- 5
|   |   |           |-- file1
|   |   |           |-- file2
|   |   |           |-- file3
|   |   |           |-- file4
|   |   |           `-- file5
|   |   `-- afile
|   `-- afile
`-- afile

Заархивированный.

$ zip -r ../afile.zip .
  adding: afile (stored 0%)
  adding: 1/ (stored 0%)
  adding: 1/afile (stored 0%)
  adding: 1/2/ (stored 0%)
  adding: 1/2/afile (stored 0%)
  adding: 1/2/3/ (stored 0%)
  adding: 1/2/3/4/ (stored 0%)
  adding: 1/2/3/4/5/ (stored 0%)
  adding: 1/2/3/4/5/file1 (stored 0%)
  adding: 1/2/3/4/5/file2 (stored 0%)
  adding: 1/2/3/4/5/file3 (stored 0%)
  adding: 1/2/3/4/5/file5 (stored 0%)
  adding: 1/2/3/4/5/file4 (stored 0%)

Подтверждение содержания zip-файла.

$ unzip -l ../afile.zip 
Archive:  ../afile.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
        0  11-07-2013 16:43   afile
        0  11-07-2013 16:43   1/
        0  11-07-2013 16:43   1/afile
        0  11-07-2013 16:43   1/2/
        0  11-07-2013 16:43   1/2/afile
        0  11-07-2013 15:51   1/2/3/
        0  11-07-2013 15:51   1/2/3/4/
        0  11-07-2013 15:51   1/2/3/4/5/
        0  11-07-2013 15:51   1/2/3/4/5/file1
        0  11-07-2013 15:51   1/2/3/4/5/file2
        0  11-07-2013 15:51   1/2/3/4/5/file3
        0  11-07-2013 15:51   1/2/3/4/5/file5
        0  11-07-2013 15:51   1/2/3/4/5/file4
---------                     -------
        0                     13 files

Теперь мы разархивировали просто папку 5.

$ unzip afile.zip "1/2/3/4/5*" -d new/
Archive:  afile.zip
   creating: new/1/2/3/4/5/
 extracting: new/1/2/3/4/5/file1     
 extracting: new/1/2/3/4/5/file2     
 extracting: new/1/2/3/4/5/file3     
 extracting: new/1/2/3/4/5/file5     
 extracting: new/1/2/3/4/5/file4     

Подтверждение разархивировало:

$ tree .
.
`-- 1
    `-- 2
        `-- 3
            `-- 4
                `-- 5
                    |-- file1
                    |-- file2
                    |-- file3
                    |-- file4
                    `-- file5
2
13.04.2017, 15:36
2 ответа
[12197] Есть ли конкретная причина, почему она работает как не корневая с клавиатуры, а только как корневая с консоли?[12198] Насколько я понимаю, магическая последовательность SysRQ обрабатывается на очень низком уровне, который не знает, является ли пользователь на консоли [1132875]root[1132876] или нет. На самом деле, она работает даже когда ни один пользователь не входит в систему и даже во время загрузки.[12199]Если злоумышленник или кто-то, кто хочет сделать что-то неприятное, имеет физический доступ к вашей машине, вы все равно потеряли его с точки зрения безопасности.[1132295].
5
27.01.2020, 21:52
[1132286] Обычно локальный доступ к машине с Linux считается признаком того, что [1132871] это ваша система [1132872]. Считайте "присутствие" формой аутентификации. После того, как Вы вошли в систему, оболочка командной строки сама по себе не знает, откуда Вы пришли.[12196]Разрешения по умолчанию большинства дистрибутивов Linux отражают это. Если Ваша система находится в компьютерной лаборатории или в другой подобной ситуации, Вы можете захотеть изменить это.[1132289].
2
27.01.2020, 21:52

Теги

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