Когда я входил в команду
su > echo "sachin"
он просил пароль. Когда я дал свой пароль, произошли некоторые странные вещи, как вы можете видеть:
Еще одна вещь: есть еще один пользователь, Hadoop , на моем ноутбуке, но когда я делаю
su > echo "Hadoop"
это говорит
нет записи passwd для Hadoop
Что это значит?
command-line
bash
sudo
Сачин Сетия
источник
источник
echo
не выполняется. это после команды перенаправления ">", поэтому оно читается как имя файла. Остальные аргументы передаютсяsu
как обычно!su $(echo "sachin")
. Это сделало бы то, что вы говорите.Ответы:
Ах! Хорошая головоломка!
Просто скажите «
exit
», и все ваши файлы будут там (и вывод, который вы пропустите в файле, называетсяecho
).Экспликация:
такой же как
Итак, вы запускаете (под) оболочку с
su
(переключением пользователя) для вашего пользователя, и весь вывод перенаправляется в файл с именемecho
!Посмотрите:
источник
su user > echo
все время, и> echo su user
с некоторой частотой, ноsu > echo user
почти никогда, потому что редко есть какая-либо практическая причина написать команду таким запутанным способом. (Однако такой синтаксис иногда бывает полезен при автоматической генерации команд из программы или скрипта.)su > stdout.txt user
не было бы так сложно ...