Есть ли разделы, которые можно настроить только для чтения?

Если ваш $ 1 является чистым ASCII, а ваш grep имеет параметр -P (чтобы включить PCRE), вы можете сделать это:

#!/bin/bash

line_start="$1"
line_start_raw=$(printf '%s' "$line_start" | od -v -t x1 -An)
line_start_hex=$(printf '\\x%s' $line_start_raw)
grep -P "^$line_start_hex"

Идея в том, что grep -P позволяет регулярным выражениям с \ xXX указывать буквенные символы, где XX - шестнадцатеричное значение ASCII этого символа. Символ соответствует буквально, даже если в противном случае это специальный символ регулярного выражения.

od используется для преобразования ожидаемого начала строки в список шестнадцатеричных значений, которые затем объединяются вместе, каждое с префиксом \ x с помощью printf. Затем к этой строке добавляется ^ для построения необходимого регулярного выражения.


Если ваш $ 1 является юникодом, то это становится немного сложнее, потому что не существует соответствия 1: 1 символов шестнадцатеричным байтам, выводимым с помощью od .

0
29.01.2017, 01:10
2 ответа

/ boot , / usr и / usr / local доступны только для чтения, кроме когда вы добавляете или обновляете программное обеспечение. Остальным нужен постоянный доступ для записи.

1
29.04.2021, 00:04

Из тех, что вы перечислили, иерархии root, /boot и /usr/usr/local как часть /usr) могут быть смонтированы только для чтения, если только не требуется обновление установленного программного обеспечения.

/var по определению является переменными данными и должен быть доступен для записи, /tmp также должен быть доступен для записи, чтобы иметь возможность создавать временные файлы, и пользователи будут расстроены, если /home будет смонтирован только для чтения...

Корень (/) может быть смонтирован только для чтения, если все каталоги, которые требует записи, смонтированы отдельно и на разделах с возможностью записи.

Каталоги, которые требуют записи, это: /etc, /home, /srv, /tmp, и /var.

Дальнейшее чтение: https://wiki.debian.org/ReadonlyRoot

1
29.04.2021, 00:04

Теги

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