Корпус
while true ; do cat > $(( $RANDOM * $RANDOM )).file & done;
Вы, вероятно, достигнете предела максимального процесса, если не root. Если это так, используйте один процесс perl для открытия файлов. Вы можете понизить maxfiles с помощью sysctl, хотя я не знаю эту переменную с руки -.
Очень часто ваш пароль указывается в curl
аргументах командной строки. Возможно, это не самый безопасный способ использования пароля, но нет ничего идеального, и в большинстве случаев других вариантов не так много.
Ваша функция получения пароля совершенно не нужна. Вы можете просто сделать это:
read -rsp "Enter pw: " pw
curl -u "$(logname)":"$pw" "$url"
Примечание. :Я добавил аргумент -r
к вашей команде read
, так как он позволит вам буквально читать escape-символы обратной косой черты, что вы наверняка захотите использовать для паролей.
Несмотря на все эти танцы с read, cat и heredocs, в конечном итоге подстановка команд приведет к замене $(provide_pw)
фактическим паролем. Затем это будет частью деталей процесса.
Из man curl
, о-u
:
On systems where it works, curl will hide the given option argument from process listings.
Таким образом, в таких системах, а также в системах Linux с установленным соответствующим образом hidepid
пароль будет скрыт от других пользователей, но в других местах каждый может увидеть пароль, просмотрев командную строку процесса curl, используя ps
, top
и т. д.
Если вы хотите read
пароль, пусть curl
сделает это за вас:
If you simply specify the user name, curl will prompt for a password.
См. также:Как curl защищает пароль от появления в выводе ps? Здесь есть состояние гонки :между запуском curl и чисткой командной строки, пароль будет виден, и если он не скрыт другими способами (например hidepid
в Linux ), будут видны всем в течение этого окна.