Проблема не в bash
, проблема в sort
.
Теперь sort
знает локаль.
Если вы выполните команду locale
, то она может сказать что-то вроде en_US
или подобное (если вы находитесь в США; для других языков существуют другие локали). Также может быть указана кодировка (en_US.UTF8
).
Теперь локали также влияют на упорядочивание.
Рассмотрим простой пример:
$ x="a\nA\nc\nC\nb\nB\n"
$ echo -ne "$x" | LANG=C sort
A
B
C
a
b
c
Это выглядит так, как нам нужно. Но...
$ echo -ne "$x" | LANG=en_US sort
a
A
b
B
c
C
О-о-о!
sort
- не единственная программа, которая может менять поведение в зависимости от локали.
Если вы хотите традиционное последовательное поведение в разных установках, то вам нужно установить LANG
самостоятельно.
В этом нет ничего необычного, и ваша ОС может уже делать это как часть своего собственного сценария.
Например...
На RedHat/CentOS многие /etc/rc.d/init.d
скрипты делают это; например, /etc/rc.d/init.d/network
имеет
interfaces=$(ls ifcfg* | \
LANG=C sed -e "$__sed_discard_ignored_files" \
-e '/\(ifcfg-lo$\|:\|ifcfg-.*-range\)/d' \
-e '/ifcfg-[A-Za-z0-9#\._-]\+$/ { s/^ifcfg-//g;s/[0-9]/ & /}' | \
LANG=C sort -k 1,1 -k 2n | \
LANG=C sed 's/ //')
На debian, /etc/init. d/exim4
устанавливает LANG=C
в начале, а также различные программы в /usr/bin
.
LUKS не зависит от файловой системы. Он работает на более низком уровне, чем файловая система. LUKS - это то, как Android выполняет полное шифрование диска.
Из f2fscrypt справочная страница:
# mkfs.f2fs -O encrypt /dev/sdxx
# mount /dev/sdxx /encrypted/
# mkdir /encrypted/dir
Сначала создайте ключ в связке ключей, используя простую соль (или создать случайную соль ). Затем используйте его, чтобы установить политику для каталога, который будет зашифрован.
# f2fscrypt add_key -S 0x1234
Enter passphrase (echo disabled):
Added key with descriptor [28e21cc0c4393da1]
# f2fscrypt set_policy 28e21cc0c4393da1 /encrypted/dir
Key with descriptor [28e21cc0c4393da1] applied to /encrypted/dir.
# touch /encrypted/dir/test.txt
# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Mar 5 21:41 test.txt
После каждой перезагрузки можно использовать одну и ту же команду для установки ключа для расшифровка каталога и его потомков.
# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Mar 5 21:41 zbx7tsUEMLzh+AUVMkQcnB
# f2fscrypt get_policy /encrypted/dir/
/encrypted/dir/: 28e21cc0c4393da1
# f2fscrypt add_key -S 0x1234
Enter passphrase (echo disabled):
Added key with descriptor [28e21cc0c4393da1]
# ls -l /encrypted/dir/
-rw-r--r--. 1 root root 0 Mar 5 21:41 test.txt
Показать наборы ключей процесса.
# keyctl show
Session Keyring
084022412 --alswrv 0 0 keyring: _ses
204615789 --alswrv 0 65534 \_ keyring: _uid.0
529474961 --alsw-v 0 0 \_ logon: f2fs:28e21cc0c4393da1
Выяснение того, как реализовать это во время загрузки