Как открыть файл с правами root в TextEdit? Я пробовал эти команды как root
, но TextEdit всегда говорит, что он заблокирован:
open -e /etc/apache2/httpd.conf
open -e -F /etc/apache2/httpd.conf
open -e -F -W /etc/apache2/httpd.conf
И, конечно, sudo !!
не имеет значения.
sudo /Applications/Textedit.app/Contents/MacOS/TextEdit
затем просто откройте файл из TextEditpico .bash_profile
добавьтеalias sudotext='sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"'
, сохраните файл, перезапустите Терминал. Теперь вы можете просто ввестиsudotext
TextEdit от имени пользователя root.open -t "/etc/hosts"
например. С TextWrangler вы можете просто напечататьedit /etc/hosts
.sudo -b "/Applications/Textedit.app/Contents/MacOS/TextEdit"
не работает :(BBEdit - это бесплатный инструмент для этого в 2019 году, который заменяет все функции TextErangler, и вы можете загрузить его из App Store и с сайта разработчика.
TextEdit не совсем подходящий инструмент для редактирования конфигурационных файлов - используйте вместо него TextWrangler . Он бесплатный, имеет встроенную возможность редактирования файлов с правами root из учетной записи администратора, а также такие вещи, как открытие невидимых файлов и каталогов, простое редактирование файлов через SFTP и т. Д.
источник
emacs
также имеет приятный режим conf с цветовой кодировкой.Вот способ избежать запуска TextEdit от имени пользователя root:
Вам нужно будет закрыть копию TextEdit после редактирования файла.
sudo -e
иногда известный какsudoedit
OS X, но делает временную копию файла с разрешением на запись для текущего пользователя, вызывает редактор обычным способом Unix и затем копирует его обратно.Параметр to
open
:-W
ожидает выхода TextEdit, поэтомуsudo
знает, когда скопировать файл обратно.-n
гарантирует, что он ожидает отдельный экземпляр TextEdit, а не тот, который у вас уже открыт, из которого вы, возможно, не захотите выходить. Вы также можете заменить-t
вместо,-e
если у вас есть любимый текстовый редактор, кроме TextEdit.Если у вас уже есть
EDITOR
переменная, настроенная на использование графического редактора с собственным инструментом командной строки с поддержкой ожидания (например, TextMate или BBEdit), то вам не нужны эти приемы, и вы можете просто использовать ихsudo -e <file>
напрямую.источник
Поскольку пользователь root отключен, единственный способ заставить произвольное приложение OS X иметь права root - включить root и войти в систему как root.
Приложения, конечно, могут использовать API, чтобы запросить у системы аутентификацию и вызвать диалоговое окно, которое вы ожидаете при запросе имени пользователя и пароля администратора. TextEdit не имеет этой функции, поэтому вам нужно работать с правами доступа к файлам до и после открытия и записи нужных файлов.
Вы пытались использовать,
sudo open -a textedit
чтобы открыть приложение?источник
sudo su -
чтобы запустить оболочку от имени пользователя root, и затем я могуopen "/Applications/Textedit.app/Contents/MacOS/TextEdit"
успешно работать . У меня не включен пользователь root, и я не вошел в систему как пользователь root.Должно сработать
источник
/etc/apache2/httpd.conf
имеет разрешения по умолчанию0444
. Я пытался все утро редактировать этот файл (emacs
удаленно), но никогда не думал проверять (новый Lion) разрешения.работает для льва
источник