${!b[*]}
расширяется до индексов, используемых в массиве b
.
То, что Вы хотели бы, должно быть сделано на двух шагах, таким образом, eval
поможет: eval echo \${$b[*]}
. (Отметьте \
который гарантирует что первое $
передаст первый шаг, переменное расширение, и будет только расширен на втором шаге со стороны eval
.)
Согласно расширению параметра !
оба используется для косвенного расширения ({!a}
), Имена, соответствующие префиксу (${!a*}
) и Список ключей массива (${!a[*]}
). Поскольку Список ключей массива имеет тот же синтаксис, поскольку Ваше намеченное косвенное expansion+array расширение элемента, позже не поддерживается, как.
Если проблемой являются файлы журнала, удостоверьтесь, что они принадлежат корню и не имеют мировых полномочий чтения. chmod o-r logfile
Если проблемой является исполняемый файл, удостоверьтесь, что это не имеет мира, выполняют полномочия. chmod o-x program
Чтобы проверить, является ли это корень, который запускает программу, необходимо звонить getuid()
.
chown root:root /path/to/logfile /path/to/program
chmod go-strwx /path/to/logfile /path/to/program
Если это настолько важно, мог бы хотеть изолировать данные в VM, domU, тюрьме/контейнере или на центральном поле по специализированной частной сети. AppArmor или SELinux могли быть оценены.
В то время как я посещал RAID2001 в Davis, был разговор от HP на полностью оснащенном ядре Linux со скрытыми вызовами системы регистрации NIC к отдельному основному полю.