sudo
поддерживает это.
$ echo hello world | sudo cat
SUDO password:
hello world
Разница в том, что sudo
запрашивает пароль вашего пользователя, а не root
(целевого пользователя). Однако, если вы захотите, вы можете изменить это поведение с помощью директивы targetpw
(или runaspw
или rootpw
) в sudoers.conf
.
Однако, читая то, что вы пытаетесь сделать, хотя это и решит проблему эскалации прав, это не сделает того, что вы ожидаете. То есть /output/file
не будет создан от имени пользователя root, он будет создан/изменен от имени вашего пользователя.
Причина этого в том, что перенаправление вывода shell выполняется до вызова каких-либо команд. Поэтому оболочка открывает /output/file
и затем передает этот открытый файл командам su
/ sudo
(и, соответственно, cat
).
Однако вы можете использовать tee
для этого, так как утилита tee
сама откроет файл.
echo "hello world" | sudo tee /output/file >/dev/null
В основном tee
копирует вывод в /output/file
и STDOUT, однако STDOUT перенаправляется в /dev/null
.
Вы также можете сделать:
echo "hello world" | sudo sh -c 'cat > /output/file'
... что менее загадочно.
В SSL Labs четко понимают причину рейтинга, и вы получите высокий балл только при использовании Диффи Хеллмана
TLS _AES _256 _GCM _SHA384
— единственное известное мне исключение.