Наконец, это работает на сервере 14.04.04!
(возможно, все версии 14.04)
В установщике выделите «Установить Ubuntu Server», затем нажмите F6 для «Другое Options ", затем нажмите Esc, чтобы вернуться из этого меню. Это отобразит синтаксис командной строки для каждого параметра установки. Если вы выбрали основную установку, в строке «Параметры загрузки» вы увидите следующее:
file=/cdrom/preseed/ubuntu-server.seed vga=788 initrd=/install/initrd.gz quiet --
Вам нужно добавить опцию oem-config/enable=true где-то перед --, чтобы получить ее фактически загрузитесь в OEM-режим установки, например:
file=/cdrom/preseed/ubuntu-server.seed oem-config/enable=true vga=788 initrd=/install/initrd.gz quiet --
Как только я добавил, что он загрузился с текстом OEM mode (for manufacturers only) в верхней части экрана процесса установки, он настроил только пользователя OEM и позволил мне использовать oem-config-prepare, когда я закончил настройку.
На самом деле следующий код почти работает:
#! /bin/bash
set -e
if [ -z "$1" ] ; then
echo "Application is not specified" ; exit
fi
if [ $XDG_SESSION_TYPE = "wayland" ]; then
if [[ -t 1 ]]; then
xhost +si:localuser:root
sudo -u root "$@"
xhost -
exit 0
fi
fi
gksu "$@"
(пожалуйста, извините меня за наивный стиль кодирования bash - я как бы новичок с этой темой). T не работает стабильно от Alt-F2, если последний выбор не был терминалом; в этом случае мы просто не можем установить фокус на диалог с паролем. Похоже, он работает из меню Gnome. В любом случае & Lt; 1. Это не 100% -ное решение. 2. Мне кажется, что архитекторы Ubuntu считают, что мы не должны искать какую-либо работу вокруг.
Лучше проверить, действительно ли wayland работает сначала, прежде чем предоставить root right
if [ $XDG_SESSION_TYPE = "wayland" ]; then
xhost +si:localuser:root
fi
Если вы используете Ubuntu 17.04 или выше, рекомендуется использовать брандмауэр gvfs. Просто добавьте admin: // в начало полного пути к файлу, который вы хотите открыть в приложении, например, в текстовом редакторе или в приложениях «Файлы».
Например, чтобы изменить настройки загрузки, откройте
admin:///etc/default/grub
Этот метод использует PolicyKit и по-прежнему будет работать с Ubuntu 17.10 по умолчанию Wayland, тогда как sudo и gksu для приложений с графическим интерфейсом не будут.
Для приложений, которые используют su-to-root и pkexec, вы можете захотеть добавить этот код в /etc/xdg/autostart (см. мой комментарий на панели запуска) на свой страх и риск:
cat <<EOF | sudo tee /etc/xdg/autostart/xhost.desktop
[Desktop Entry]
Name=xhost
Comment=Fix graphical root applications
Exec="xhost +si:localuser:root"
Terminal=false
Type=Application
EOF
Другие корневые приложения ( и ошибка 1713311). Если вы не хотите постоянного решения, вы можете использовать @ ravery's method:
В Wayland часто бывает сложно запускать графические приложения с повышенными разрешениями (sudo -H, gksu ...). Это хорошая идея для выполнения таких задач с помощью инструментов командной строки.
Но есть обходные пути, если у вас есть инструмент графического интерфейса, который хорошо подходит для вас и требует повышенных разрешений. (Я использую два таких стандартных инструмента: диспетчер пакетов Synaptic, synaptic и инструмент разделения Gparted, gparted. Я использую MakeUSB для создания USB-загрузочных дисков, mkusb тоже, но он может запускать части, которые требуют повышенных разрешений без графики.)
xhost +si:localuser:root
gksu и gksudo не связаны со стандартным Ubuntu и не работают здесь, но они работают в Xorg. Вместо этого вы можете использовать sudo -H
. Это хорошая идея предотвратить использование графических прикладных программ, принадлежащих другим пользователям, чем зарегистрированный пользователь, xhost -si:localuser:root
В Ubuntu 17.10 (gvfs> = 1.29.4) вы можете использовать брандмауэр администратора gvfs. Обратите внимание, что вам нужен полный путь,
gedit admin:///path/to/file
. Теоретически, метод поддержки gvfs-администратора (который использует polkit) лучше и безопаснее (чем xhost и xudo -H), независимо от пользовательского интерфейса вы используете.
Вы не запускаете все приложение как root. Эскалация привилегий происходит только в случае крайней необходимости. См. Следующую ссылку и ссылки на нее,
Ответ sisco311 в разделе «Форумы Ubuntu» «Какая наилучшая практика для использования gedit как root?» Это сообщение №4. См. Также сообщение № 6 в той же теме.Также возможно использовать nautilus-admin для операций с файлами с повышенными разрешениями и использовать gedit с повышенными разрешениями. Это описано в следующем ответе AskUbuntu,
Ответ sisco311 в разделе «Форумы Ubuntu» «Какая наилучшая практика для использования gedit как root?» Это сообщение №4. См. Также сообщение # 6 в том же потоке.Пожалуйста, избегайте sudo GUI-program. Это может привести к тому, что система перезапишет файлы конфигурации для вашего обычного идентификатора пользователя с конфигурацией root и установит права собственности и разрешения, чтобы они соответствовали root и заблокировали ваш обычный идентификатор пользователя. Вы должны запускать GUI-приложения с помощью sudo -H, который записывает файлы конфигурации в домашний каталог root /root. Пример:
sudo -H gedit myfile.txt
Но есть риск, что вы забудете -H. Вместо этого вы можете создать функцию, например gks
gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
и сохранить ее в своем ~/.bashrc рядом с псевдонимами. Затем вы можете запустить
gks gedit myfile.txt
таким же образом, как раньше gksudo.
Вы можете проверить, как sudo, sudo -H и gks работают со следующими командами
sudodus@xenial32 ~ $ sudo bash -c "echo ~"
/home/sudodus
sudodus@xenial32 ~ $ sudo -H bash -c "echo ~"
/root
sudodus@xenial32 ~ $ gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
sudodus@xenial32 ~ $ gks bash -c "echo ~"
localuser:root being added to access control list
/root
localuser:root being removed from access control list
sudodus@xenial32 ~ $
и, конечно,
gks gedit myfile.txt
в соответствии с примером в предыдущем разделе.
Вместо добавления простой однострочной функции к ~/.bashrc вы можете создать систему, которая также работает без bash. Это может быть удобно использовать, но сложнее настроить. Обратите внимание, что вы должны установить только один из альтернатив, потому что однолинейная функция будет беспокоить, используя эту более сложную систему.
Оболочка synaptic :
#!/bin/bash
xhost +si:localuser:root
if [ $# -eq 0 ]
then
xterm -T "gks console - enter command and password" \
-fa default -fs 14 -geometry 60x4 \
-e bash -c 'echo "gks lets you run command lines with GUI programs
with temporary elevated permissions in Wayland."; \
read -p "Enter command: " cmd; \
cmdfile=$(mktemp); echo "$cmd" > "$cmdfile"; \
sudo -H bash "$cmdfile"; rm "$cmdfile"'
else
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H "$@"
fi
xhost -si:localuser:root;
Рабочий файл gks.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gks
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gks %f
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Файл значка gks.desktop выглядит так: [ ! d47]
Вы можете загрузить файл значка или tarball со всеми тремя файлами по этой ссылке,
] Скопируйте [извлеченный или скопированный & amp; вставляемых] в следующие места,
sudo cp gks /usr/bin
sudo cp gks.desktop /usr/share/applications/
sudo cp gks.svg /usr/share/icons
Выход из системы / вход в систему или перезагрузка, а также рабочий значок рабочего стола. Он будет работать в терминальном окне, например, с помощью простого решения с функцией.
Блок Alt F2:
[!d51]
Gnome Shell меню:
gks console and gparted:
Если у вас есть только несколько графических приложений, которым необходимы повышенные разрешения, вы можете создать для них собственные скрипты и файлы рабочего стола и не вводить команду (имя приложения). Вы только вводите пароль, который не сложнее по сравнению с предыдущими версиями Ubuntu (вы все равно должны вводить пароль).
Пример с простой программой GUI xlogo, которая поставляется вместе с программным пакетом x11-apps:
Сводный текст Alt F2 (упрощенный по сравнению с gks),
#!/bin/bash
xhost +si:localuser:root
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H xlogo
xhost -si:localuser:root;
Рабочий файл gkslogo.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gkslogo
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gkslogo
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Я ленился и использовал один и тот же файл значков gkslogo.desktop
Скопировал [скопированный & amp; вставляемые] в следующие места,
sudo cp gkslogo /usr/bin
sudo cp gkslogo.desktop /usr/share/applications/
консоль gks [logo] и xlogo:
Это особенность, а не ошибка! Это особенность дизайна Wayland, что вы не можете запускать графические приложения как root из терминала.
Основные обсуждения, конечно же, на сайтах Fedora. См. Ошибка Fedora # 1274451, а графические приложения не могут запускаться как root в wayland (например, gedit, beesu, gparted, nautilus) в Ask Fedora.
Отчет об ошибке Ubuntu: Ошибка Fedora # 1274451 Ошибка в Ubuntu: Ошибка в Fedora # 1274451
Потенциальная работа. Если вы редактируете системные файлы с помощью графического редактора (например, gedit), используйте инструмент командной строки, например nano или vim или emacs. nano, как правило, проще для новых пользователей, vim является более мощным и имеет больше возможностей, см. этот учебник Vim или аналогичный.
Во всяком случае, если вы действительно хотите или хотите Потенциал работаем вокруг , сначала установите xhost, что вынуждает отказаться от Xserver.
Чтобы установить разрешения:
xhost si:localuser:root
По завершении удаления разрешений
xhost -si:localuser:root
Вы можете добавить графическую / настольную функцию для этого в соответствии с , это Vim Tutorial
Приложения pkexec'ed могут быть исцелены с помощью xhost +si:localuser:root в автозапуске XDG следующим образом:cat <<EOF | sudo tee /etc/xdg/autostart/xhost.desktop
[Desktop Entry]
Name=xhost
Comment=Fix graphical root applications
Exec="xhost +si:localuser:root"
Terminal=false
Type=Application
EOF
Вы можете добавить эту команду xhost в .bashrc, но я бы посоветовал пару псевдонимов
alias gsuon='xhost si:localuser:root'
alias gsuoff='xhost -si:localuser:root'
Вы можете назвать псевдонимы независимо вы хотите.
Подробнее см .:
https://bugs.launchpad.net/ubuntu/+source/backintime/+bug/1713313 https: //bugs.launchpad. net / ubuntu / + source / nmap / + ошибка / 1713311 Arch Wiki: Запуск X-приложений как root Arch Wiki: Xhost Что такое xhost и xhost + si?Если вы предпочитаете Xorg по любой причине, вы можете выбрать запуск на Xorg при входе в систему
См. Как вы переключаетесь с Wayland на Xorg в Ubuntu 17.10?
Если приложение поддерживает Wayland API, вы можете запустить его как root с помощью команды sudo -EH application.
. Переключатель -E сообщает sudo сохранять переменные среды (а также WAYLAND_SOCKET и XDG_RUNTIME_DIR), необходимые для приложений wayland , Всегда лучше использовать эту опцию из-за неприятного взлома xhost, предложенного в других ответах. xhost позволяет приложению запускаться из X-оболочки, которая менее безопасна, чем использование Wayland (общий буфер обмена, кейлоггеринг и т. д.). Трюк sudo -EH не будет работать с приложением, которое не было переписано для wayland, например gparted, но будет работать с gedit и т. Д.
На самом деле следующий код почти работает:
#! /bin/bash
set -e
if [ -z "$1" ] ; then
echo "Application is not specified" ; exit
fi
if [ $XDG_SESSION_TYPE = "wayland" ]; then
if [[ -t 1 ]]; then
xhost +si:localuser:root
sudo -u root "$@"
xhost -
exit 0
fi
fi
gksu "$@"
(пожалуйста, извините меня за наивный стиль кодирования bash - я как бы новичок с этой темой). T не работает стабильно от Alt-F2, если последний выбор не был терминалом; в этом случае мы просто не можем установить фокус на диалог с паролем. Похоже, он работает из меню Gnome. В любом случае & Lt; 1. Это не 100% -ное решение. 2. Мне кажется, что архитекторы Ubuntu считают, что мы не должны искать какую-либо работу вокруг.
Лучше проверить, действительно ли wayland работает сначала, прежде чем предоставить root right
if [ $XDG_SESSION_TYPE = "wayland" ]; then
xhost +si:localuser:root
fi
Если вы используете Ubuntu 17.04 или выше, рекомендуется использовать брандмауэр gvfs. Просто добавьте admin: // в начало полного пути к файлу, который вы хотите открыть в приложении, например, в текстовом редакторе или в приложениях «Файлы».
Например, чтобы изменить настройки загрузки, откройте
admin:///etc/default/grub
Этот метод использует PolicyKit и по-прежнему будет работать с Ubuntu 17.10 по умолчанию Wayland, тогда как sudo и gksu для приложений с графическим интерфейсом не будут.
Для приложений, которые используют su-to-root и pkexec, вы можете захотеть добавить этот код в /etc/xdg/autostart (см. мой комментарий на панели запуска) на свой страх и риск:
cat <<EOF | sudo tee /etc/xdg/autostart/xhost.desktop
[Desktop Entry]
Name=xhost
Comment=Fix graphical root applications
Exec="xhost +si:localuser:root"
Terminal=false
Type=Application
EOF
Другие корневые приложения ( и ошибка 1713311). Если вы не хотите постоянного решения, вы можете использовать @ ravery's method:
В Wayland часто бывает сложно запускать графические приложения с повышенными разрешениями (sudo -H, gksu ...). Это хорошая идея для выполнения таких задач с помощью инструментов командной строки.
Но есть обходные пути, если у вас есть инструмент графического интерфейса, который хорошо подходит для вас и требует повышенных разрешений. (Я использую два таких стандартных инструмента: диспетчер пакетов Synaptic, synaptic и инструмент разделения Gparted, gparted. Я использую MakeUSB для создания USB-загрузочных дисков, mkusb тоже, но он может запускать части, которые требуют повышенных разрешений без графики.)
xhost +si:localuser:root
gksu и gksudo не связаны со стандартным Ubuntu и не работают здесь, но они работают в Xorg. Вместо этого вы можете использовать sudo -H
. Это хорошая идея предотвратить использование графических прикладных программ, принадлежащих другим пользователям, чем зарегистрированный пользователь, xhost -si:localuser:root
В Ubuntu 17.10 (gvfs> = 1.29.4) вы можете использовать брандмауэр администратора gvfs. Обратите внимание, что вам нужен полный путь,
gedit admin:///path/to/file
. Теоретически, метод поддержки gvfs-администратора (который использует polkit) лучше и безопаснее (чем xhost и xudo -H), независимо от пользовательского интерфейса вы используете.
Вы не запускаете все приложение как root. Эскалация привилегий происходит только в случае крайней необходимости. См. Следующую ссылку и ссылки на нее,
Ответ sisco311 в разделе «Форумы Ubuntu» «Какая наилучшая практика для использования gedit как root?» Это сообщение №4. См. Также сообщение № 6 в той же теме.Также возможно использовать nautilus-admin для операций с файлами с повышенными разрешениями и использовать gedit с повышенными разрешениями. Это описано в следующем ответе AskUbuntu,
Ответ sisco311 в разделе «Форумы Ubuntu» «Какая наилучшая практика для использования gedit как root?» Это сообщение №4. См. Также сообщение # 6 в том же потоке.Пожалуйста, избегайте sudo GUI-program. Это может привести к тому, что система перезапишет файлы конфигурации для вашего обычного идентификатора пользователя с конфигурацией root и установит права собственности и разрешения, чтобы они соответствовали root и заблокировали ваш обычный идентификатор пользователя. Вы должны запускать GUI-приложения с помощью sudo -H, который записывает файлы конфигурации в домашний каталог root /root. Пример:
sudo -H gedit myfile.txt
Но есть риск, что вы забудете -H. Вместо этого вы можете создать функцию, например gks
gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
и сохранить ее в своем ~/.bashrc рядом с псевдонимами. Затем вы можете запустить
gks gedit myfile.txt
таким же образом, как раньше gksudo.
Вы можете проверить, как sudo, sudo -H и gks работают со следующими командами
sudodus@xenial32 ~ $ sudo bash -c "echo ~"
/home/sudodus
sudodus@xenial32 ~ $ sudo -H bash -c "echo ~"
/root
sudodus@xenial32 ~ $ gks () { xhost +si:localuser:root; sudo -H "$@"; xhost -si:localuser:root; }
sudodus@xenial32 ~ $ gks bash -c "echo ~"
localuser:root being added to access control list
/root
localuser:root being removed from access control list
sudodus@xenial32 ~ $
и, конечно,
gks gedit myfile.txt
в соответствии с примером в предыдущем разделе.
Вместо добавления простой однострочной функции к ~/.bashrc вы можете создать систему, которая также работает без bash. Это может быть удобно использовать, но сложнее настроить. Обратите внимание, что вы должны установить только один из альтернатив, потому что однолинейная функция будет беспокоить, используя эту более сложную систему.
Оболочка synaptic :
#!/bin/bash
xhost +si:localuser:root
if [ $# -eq 0 ]
then
xterm -T "gks console - enter command and password" \
-fa default -fs 14 -geometry 60x4 \
-e bash -c 'echo "gks lets you run command lines with GUI programs
with temporary elevated permissions in Wayland."; \
read -p "Enter command: " cmd; \
cmdfile=$(mktemp); echo "$cmd" > "$cmdfile"; \
sudo -H bash "$cmdfile"; rm "$cmdfile"'
else
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H "$@"
fi
xhost -si:localuser:root;
Рабочий файл gks.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gks
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gks %f
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Файл значка gks.desktop выглядит так: [ ! d47]
Вы можете загрузить файл значка или tarball со всеми тремя файлами по этой ссылке,
] Скопируйте [извлеченный или скопированный & amp; вставляемых] в следующие места,
sudo cp gks /usr/bin
sudo cp gks.desktop /usr/share/applications/
sudo cp gks.svg /usr/share/icons
Выход из системы / вход в систему или перезагрузка, а также рабочий значок рабочего стола. Он будет работать в терминальном окне, например, с помощью простого решения с функцией.
Блок Alt F2:
[!d51]
Gnome Shell меню:
gks console and gparted:
Если у вас есть только несколько графических приложений, которым необходимы повышенные разрешения, вы можете создать для них собственные скрипты и файлы рабочего стола и не вводить команду (имя приложения). Вы только вводите пароль, который не сложнее по сравнению с предыдущими версиями Ubuntu (вы все равно должны вводить пароль).
Пример с простой программой GUI xlogo, которая поставляется вместе с программным пакетом x11-apps:
Сводный текст Alt F2 (упрощенный по сравнению с gks),
#!/bin/bash
xhost +si:localuser:root
xterm -T "gks console - enter password" -fa default -fs 14 -geometry 60x4 -e sudo -H xlogo
xhost -si:localuser:root;
Рабочий файл gkslogo.desktop:
[Desktop Entry]
Version=1.0
Categories=Application;System;
Type=Application
Name=gkslogo
Description=Run program with temporary elevated permissions in Wayland
Comment=Run program with temporary elevated permissions in Wayland
Exec=gkslogo
Icon=/usr/share/icons/gks.svg
Terminal=false
StartupNotify=false
GenericName[en_US.UTF-8]=Run program with temporary elevated permissions in Wayland
Я ленился и использовал один и тот же файл значков gkslogo.desktop
Скопировал [скопированный & amp; вставляемые] в следующие места,
sudo cp gkslogo /usr/bin
sudo cp gkslogo.desktop /usr/share/applications/
консоль gks [logo] и xlogo:
Это особенность, а не ошибка! Это особенность дизайна Wayland, что вы не можете запускать графические приложения как root из терминала.
Основные обсуждения, конечно же, на сайтах Fedora. См. Ошибка Fedora # 1274451, а графические приложения не могут запускаться как root в wayland (например, gedit, beesu, gparted, nautilus) в Ask Fedora.
Отчет об ошибке Ubuntu: Ошибка Fedora # 1274451 Ошибка в Ubuntu: Ошибка в Fedora # 1274451
Потенциальная работа. Если вы редактируете системные файлы с помощью графического редактора (например, gedit), используйте инструмент командной строки, например nano или vim или emacs. nano, как правило, проще для новых пользователей, vim является более мощным и имеет больше возможностей, см. этот учебник Vim или аналогичный.
Во всяком случае, если вы действительно хотите или хотите Потенциал работаем вокруг , сначала установите xhost, что вынуждает отказаться от Xserver.
Чтобы установить разрешения:
xhost si:localuser:root
По завершении удаления разрешений
xhost -si:localuser:root
Вы можете добавить графическую / настольную функцию для этого в соответствии с , это Vim Tutorial
Приложения pkexec'ed могут быть исцелены с помощью xhost +si:localuser:root в автозапуске XDG следующим образом:cat <<EOF | sudo tee /etc/xdg/autostart/xhost.desktop
[Desktop Entry]
Name=xhost
Comment=Fix graphical root applications
Exec="xhost +si:localuser:root"
Terminal=false
Type=Application
EOF
Вы можете добавить эту команду xhost в .bashrc, но я бы посоветовал пару псевдонимов
alias gsuon='xhost si:localuser:root'
alias gsuoff='xhost -si:localuser:root'
Вы можете назвать псевдонимы независимо вы хотите.
Подробнее см .:
https://bugs.launchpad.net/ubuntu/+source/backintime/+bug/1713313 https: //bugs.launchpad. net / ubuntu / + source / nmap / + ошибка / 1713311 Arch Wiki: Запуск X-приложений как root Arch Wiki: Xhost Что такое xhost и xhost + si?Если вы предпочитаете Xorg по любой причине, вы можете выбрать запуск на Xorg при входе в систему
См. Как вы переключаетесь с Wayland на Xorg в Ubuntu 17.10?
Если приложение поддерживает Wayland API, вы можете запустить его как root с помощью команды sudo -EH application.
. Переключатель -E сообщает sudo сохранять переменные среды (а также WAYLAND_SOCKET и XDG_RUNTIME_DIR), необходимые для приложений wayland , Всегда лучше использовать эту опцию из-за неприятного взлома xhost, предложенного в других ответах. xhost позволяет приложению запускаться из X-оболочки, которая менее безопасна, чем использование Wayland (общий буфер обмена, кейлоггеринг и т. д.). Трюк sudo -EH не будет работать с приложением, которое не было переписано для wayland, например gparted, но будет работать с gedit и т. Д.