Я установил Ubuntu 20.04.02 LTS на моей малиновой Pi 4 и настроил SSH ключ. Теперь проблема в том, что я пытаюсь изменить имя моей сети с помощью sudo echo pumpkin > /etc/hostname
. Это дает мне ошибку, говоря -bash: /etc/hostname: Permission denied
. Я нахожусь в Ubuntu пользователя по умолчанию, который я использовал для входа в систему в начале. Могу ли я изменить разрешения на чтение и запись определенных файлов?
Как указано @Terrance, у вас не было необходимого разрешения, потому что только echo pumpkin
был запущен с повышенными привилегиями. Перенаправление >
не поддерживает перенаправление с повышенными привилегиями. Поэтому команда после >
была запущена с привилегиями пользователя, в который вы вошли в систему. Вот почему используется tee
в сочетании с |
. Pipe передает данные команде sudo tee / etc / hostname
, которая записывает эти данные с повышенными привилегиями в / etc / hostname
и на экран. (При условии, что вы не забыли sudo
)
Я подумал, что это достойно упоминания, потому что, если это одна из распространенных проблем с правами доступа . Понимание того, что >
не может пересылать sudo, может помочь вам избежать той же проблемы с другим набором команд.