Безопасность папки

В bash, как и в ksh, где $var— массив, $varна самом деле является сокращением от ${var[0]}.

Так в:

var=([1]=whatever [2]=blah)

${var+set}не расширится до set, а [[ -v var ]]вернет false, потому что $varне имеет элемента с индексом 0 (обратите внимание, что в bash, как и в ksh, но в отличие от большинства других оболочки и языки, массивы — это разреженные массивы или ассоциативные массивы с ключами, ограниченными положительными целыми числами ).

В bash(, по крайней мере, начиная с версии 4.3 ), когда вы объявляете переменную как массив с помощью:

typeset -a var

varизначально не установлено. Он даже не установлен в пустой список. В 4.3, typeset -p varвернет ошибку. В версии 4.2 и раньше он выводил:

declare -a a='()'

(как если бы массиву присваивался пустой список, как вzsh)

В 4.4 выводит:

declare -a var

Итак, начиная с версии 4.3, неустановленный (, но объявленный )массив отличается от массива, которому назначен пустой список.

Тем не менее, программно трудно провести различие между ними. Но на практике это различие не очень полезно. Скорее всего, вам нужно знать, сколько элементов в массиве:

((${#array[@]})) || echo array has no element

См. zsh, rc, fishи yashдля оболочек с лучшей конструкцией решетки.

0
04.07.2019, 14:58
2 ответа

Нет, это невозможно с использованием разрешений на доступ к файлам в Linux.

Администратор/root имеет доступ к любому файлу и каталогу в вашей системе. Вы можете использовать шифрование (, например. контейнер «Люкс» ).

1
28.01.2020, 02:39

По определению пользователь root должен иметь полные права абсолютно на все, в системе, :если что-то пойдет не так, root должен быть надежным.

Вы можете создать группу администраторов, которую вы назначите своим системным администраторам. Затем вы можете использовать разрешения Linux для уточнения прав доступа к вашим папкам.

0
28.01.2020, 02:39

Теги

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