Вопрос или проблема
Мне нужно запустить sudo firefox
, чтобы открыть браузер Firefox. Если я пытаюсь открыть его нормально, это не работает.
Когда я не использую sudo
, сообщение об ошибке выглядит так:
Ваш профиль Firefox не может быть загружен, возможно, он отсутствует или недоступен.
Вывод самой команды: Permission denied
. Это с Firefox 50.1.0. Как это исправить?
Хотя, вероятно, вполне приемлемо (пере)взять на себя право собственности на все в вашей домашней директории, конкретная причина, по которой вы не могли запустить Firefox, заключается в том, что ваш профиль Firefox был недоступен, когда вы не запускали firefox
с sudo
. Поэтому я рекомендую взять на себя право собственности только на папку, содержащую ваш профиль Firefox и другие специфичные для пользователя данные Firefox (например, ваши расширения для Firefox):
sudo chown -R $USER:$USER ~/.mozilla
Это сработает, если вы введете его точно так, как написано. Или, если хотите, вы можете заменить $USER
на ваше имя пользователя. Если вы это сделаете, убедитесь, что вы не оставляете знак $
.
(Вы также можете использовать $(whoami):$(whoami)
вместо $USER:$USER
, как в ответе L.D. James, если хотите.)
Убедитесь, что Firefox не запущен, когда вы выполняете эту команду.
Затем откройте Firefox. Он должен запуститься сейчас.
Ваша проблема, скорее всего, была вызвана запуском Firefox с sudo
изначально. В случае программы, такой как Firefox, вы просто не должны запускать ее от имени администратора — на самом деле никогда не будет ситуации, в которой это будет полезно.
В общем, однако, если вы обнаружите, что вам необходимо запускать графическое приложение от имени администратора, вы почти никогда не должны использовать обычный sudo
для этого, так как это приводит к тому, что любые конфигурационные файлы, которые создает приложение, будут принадлежать пользователю root, но все равно будут созданы в вашей домашней директории, а не в директории root.
Вместо этого вы можете использовать gksu
, gksudo
, kdesudo
(на Kubuntu), sudo -H
или sudo -i
, когда вы сталкиваетесь с ситуацией, когда вам необходимо запустить графическую программу от имени администратора. Однако я подчеркиваю, что запуск программ от имени администратора предназначен для системного администрирования. Вы можете решить запустить текстовый редактор от имени администратора, чтобы редактировать конфигурационные файлы системы, но вам никогда не нужно и не следует запускать такие программы, как веб-браузер или текстовый процессор, от имени администратора.
У вас есть конфигурационные файлы в вашей домашней директории, к которым у вас нет доступа.
Это результат выполнения sudo
в программах, использующих ваше личное пространство. Sudo следует выполнять только тогда, когда вы намеренно вносите изменения в систему.
Вы можете проверить это с помощью:
(Я бы не рекомендовал использовать sudo в вашем личном пространстве. Вы можете найти файлы и папки, которые не принадлежат вашей учетной записи без повышенного доступа. Если вывода нет, нет необходимости выполнять sudo. Некоторые пользователи могут даже не иметь доступа к sudo и получат предупреждение и уведомление для администратора просто протестировав это.)
$ find ~/ -mount ! -user $(whoami)
Вы можете исправить это с помощью:
$ sudo chown -R $(whoami):$(whoami) ~/
Примечание:
Проблема, с которой вы сталкиваетесь в данном случае, связана с вашим приложением Firefox. Вы замечаете это, потому что у вас теряется функциональность из-за этой проблемы. Взятие на себя права собственности на все личные файлы в вашем пространстве может исправить другие проблемы, с которыми вы сталкиваетесь, но еще не идентифицировали.
Обычно принято использовать пространство вне вашей домашней папки для файлов с доступом вне вашей собственности. Обычное место для хранения этих файлов — это /opt
или /usr/local/bin
для исполняемых файлов. Маловероятно, что вы сломаете свою систему, владея своими файлами в своей домашней папке. Вероятно, некоторые компоненты могут быть повреждены из-за того, что вы не владеете файлами в своем домашнем пространстве.
Запуск sudo является причиной многих проблем и должен выполняться с осторожностью.
У меня также была эта проблема с firefox у пользователей, не имеющих прав администратора.
Проблема была исправлена с помощью команды useradd без определения домашней директории.
useradd user1
просит вас ввести пароль для “user1” и продолжает запрашивать дополнительную информацию для “user1”. Вы можете просто нажать клавишу “enter” для этих вопросов (если не хотите добавить больше информации для “user1”).
Ответ или решение
Firefox работает только с правами суперпользователя (sudo): как это исправить?
Проблема
Если при запуске Firefox без sudo
вы видите сообщение об ошибке: "Ваш профиль Firefox не может быть загружен, он может отсутствовать или быть недоступным," а при использовании sudo
браузер открывается, это свидетельствует о проблемах с правами доступа к вашей личной папке пользователя.
Причины
Данная проблема, скорее всего, возникла из-за использования sudo
для запуска Firefox. Когда вы запускаете программы с правами суперпользователя, а затем они создают или модифицируют файлы и папки в вашем домашнем каталоге, эти файлы и папки становятся владельцем пользователя root
. Следовательно, при следующем запуске Firefox без sudo
, у него нет необходимого доступа к своему профилю, что и вызывает ошибку.
Для подтверждения этой проблемы вы можете выполнить следующую команду:
find ~/ -mount ! -user $(whoami)
Эта команда будет искать все файлы в вашем домашнем каталоге, которые не принадлежат вашему пользователю. Если команда возвращает результаты, это подтверждает наличие проблем с правами доступа.
Решение
Для восстановления нормального функционирования Firefox и исправления прав доступа к вашему профилю, необходимо изменить владельца файлов и папок, касающихся Firefox. Выполните следующую команду в терминале:
sudo chown -R $USER:$USER ~/.mozilla
Эта команда изменит владельца всех файлов и папок внутри каталога .mozilla
(где хранятся профили Firefox) на вашего пользователя. Убедитесь, что Firefox не работает в момент выполнения этой команды.
Рекомендации
-
Избегайте использования
sudo
для графических приложений: Программы, такие как браузеры, не требуют прав суперпользователя для своей работы. Это связано с тем, что запуск таких программ с правамиroot
может привести к созданию конфигурационных файлов с правами владельцаroot
, что усугубляет проблемы с доступом. -
Используйте альтернативные команды: Если возникнет необходимость запуска графических программ с правами администратора, используйте команды, такие как
gksu
,gksudo
,kdesudo
(для Kubuntu) илиsudo -H
. Но помните, что использование прав суперпользователя должно быть оправданным и связано с административными задачами. -
Проверьте права доступа к домашнему каталогу: Если вы обнаружили, что некоторые файлы имеют неправильные права доступа, и это привело к проблемам, может быть целесообразно выполнить команду:
sudo chown -R $(whoami):$(whoami) ~/
Это изменит владельца всех файлов в вашем домашнем каталоге на вас. Однако будьте осторожны с этой командой из-за её возможного воздействия на систему.
Заключение
Проблема запуска Firefox только с sudo
является следствием неправильного управления правами доступа, и её можно легко устранить с помощью изменения владельца необходимых файлов. Всегда проводите действия с sudo
осторожно, чтобы предотвратить дальнейшие проблемы с доступом и конфигурацией в ваших пользовательских директориях.