Я пишу сценарий оболочки bash, который должен запускаться с правами администратора (sudo).Почему я не могу перенаправить текст в текстовый файл?
Я бегу следующие команды
sudo -u $SUDO_USER touch /home/$SUDO_USER/.kde/share/config/kcmfonts > /dev/null
sudo -u $SUDO_USER echo "[General]\ndontChangeAASettings=true\nforceFontDPI=96" >> /home/$SUDO_USER/.kde/share/config/kcmfonts
Первая команда успешно и создает файл. Однако вторая команда продолжает erroring со следующим:
не может создать /home/username/.kde/share/config/kcmfonts: Отказано в
Я не могу понять, почему это держит erroring на разрешениях. Я запускаю команду как пользователь, который вызвал sudo, поэтому у меня должен быть доступ к записи в этот файл. Файл kcmfonts создается успешно.
Может кто-нибудь помочь мне?
Даже суперпользователю требуется явное разрешение на запись. Если в режиме файла 444, root не поможет ... – Floris
См. Http://stackoverflow.com/questions/82256/how-do-i-use-sudo-to-redirect-output-to-a-location -i-dont-have-permission-to-wr – shf301
umask может быть установлен в 0666, что приводит к появлению новых файлов 0444. Кроме того, почему вы перенаправляете вывод в/dev/null в первой строке? –