TGViewer
DevOps Ready | IT DevOps Ready | IT @devops_ready · 7.62K subscribers
Post #1152 1.12K
Почему sudo echo всё равно может вернуть Permission denied?

Часто системный файл пытаются изменить так:
sudo echo "PORT=8080" \
> /etc/myapp/app.conf


Но команда может завершиться ошибкой доступа, хотя перед echo указан sudo.

Причина в порядке выполнения. sudo запускает с повышенными правами только echo, а перенаправление > обрабатывает текущий shell ещё до запуска команды.

Именно обычный пользователь пытается открыть системный файл для записи.

Для таких случаев удобно использовать tee:

echo "PORT=8080" |
sudo tee /etc/myapp/app.conf \
> /dev/null


Здесь файл открывает уже tee, запущенный через sudo.

Чтобы не перезаписывать файл, а добавить строку в конец, используйте -a:
echo "LOG_LEVEL=info" |
sudo tee -a /etc/myapp/app.conf \
> /dev/null


Многострочный конфиг можно записать через heredoc:
sudo tee /etc/myapp/app.conf \
> /dev/null <<'EOF'
PORT=8080
LOG_LEVEL=info
CACHE_ENABLED=true
EOF


Кавычки вокруг 'EOF' запрещают shell подставлять переменные и выполнять команды внутри блока. Содержимое будет записано буквально.

➡️ DevOps Ready | #совет
  • ❤ 7
  • 👍 4
  • 🔥 2
More from @devops_ready
  1. Oct 2, 2026Знали, почему настройки systemd-сервиса лучше менять через systemctl edit? Допустим, прило…
  2. Oct 2, 2026⚡️5 фундаментальных курсов по ИБ по цене одного Это предложение для тех, кто готов войти в…
  3. Oct 2, 2026Этот инструмент поможет поять из чего на самом деле состоит Docker-образ! Он содержит терм…
  4. Oct 1, 2026Проверяем итоговую конфигурацию Docker Compose перед запуском! Когда проект использует баз…
  5. Oct 1, 2026🔄 Безопасный арсенал практических инструкций, курсов и инструментов 👩‍💻 Linux & Bash 🤔…
  6. Oct 1, 2026Шпаргалка по жизненному циклу Pod в Kubernetes! На картинке показано, как запрос проходит…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →