Если пользователь запускает команду с sudo
, затем они запускают команду, как если бы они были root, потому что они root. Таким образом, вы не можете запретить пользователю, который может использовать sudo, переключиться в каталог.
Если вы не хотите, чтобы пользователи получали доступ к файлам в каталоге, вы не можете предоставить им root-доступ на машине.
Регулярное выражение Bash не привязано. Это означает, что они могут совпадать в любом месте строки. Это зависит от вашего механизма регулярных выражений. Здесь совпадение начинается со знака равенства, как показано BASH_REMATCH [0]
.
Решение: добавьте ^
в начало строки регулярного выражения
.
[update] Как сказано выше, bash
использует ваш механизм регулярных выражений ( man 3 regex
), который может отличаться от одного платформу к другой. Если у вас возникли проблемы с регулярным выражением, избегайте ярлыков \ letter
и используйте вместо них их эквивалент в Posix.
Например, вместо regex = "^ \ s * (\ w *) \ s * = \ s * (. *)"
используйте regex = "^ [[: space :]] * ([_ [: alnum:]] *) [[: space:]] * = [[: space:]] * (. *) "