- Что использовать для запуска GUI-программ от имени root?
- Запуск графического приложения от имени другого пользователя
- Re: Запуск графического приложения от имени другого пользователя
- Re: Запуск графического приложения от имени другого пользователя
- Re: Запуск графического приложения от имени другого пользователя
- Re: Запуск графического приложения от имени другого пользователя
- Re: Запуск графического приложения от имени другого пользователя
- linux-notes.org
- Запустить команду от другого пользователя в Unix/Linux
- Запустить команду от другого пользователя в Unix/Linux — способ 1
- Запустить команду от другого пользователя в Unix/Linux — способ 2
- Запустить команду от другого пользователя в Unix/Linux — способ 3
- 5 thoughts on “ Запустить команду от другого пользователя в Unix/Linux ”
- Добавить комментарий Отменить ответ
- Как я могу запустить приложение с графическим интерфейсом администратора в сеансе пользователя без прав администратора?
- PAM может позаботиться об этом
- терминология
- Проблема
- Решение
- Запуск GUI программа с правами ROOT
Что использовать для запуска GUI-программ от имени root?
Если su/sudo — корёжит права на файлы в хомяке, выставляя владельцем root. gksudo предлагается для gtk, kdesudo — для kde. В чём разница и есть ли универсальный вариант?
Что есть в системе, то и пользуйте.
Решение проще чем кажется. Не запускать GUI программы от root.
Я не спросил, запускать ли их. Я спросил, чем запускать.
всегда использовал gksu. оно работает как sudo, вроде ставится отдельным пакетом. Библиотека или gtk+ без темы, или что то на Х-виджетах
К стати тоже интресует относительно использования таких дистров, например, как Xubuntu с Xfce. Там даже вручную установленный gksu нифига не работает. А некоторый проги запускаются если в окошке Alt+F2 их запускать тупо через sudo. Другие же и так не запускаются. В общем как-то неочевидно.
xhost+ &&export DISPLAY=:0 &&program
Если su/sudo — корёжит права на файлы в хомяке, выставляя владельцем root.
Чтобы не забыть добавь alias в .bashrc
корёжит права на файлы в хомяке, выставляя владельцем root
А то ты делаешь от рута в своём хомяке?
sudo dolphin ломает права на временные файлы KDE до рестарта сессии.
лол, ничего подобного
su-to-root -X -c «название программы»
Пример с программой Synaptic
su-to-root -X -c synaptic
su-to-root -X -c bleachbit
Ага, спасибо, попробую. Кстати, в synaptic и gparted используется pkexec. Что это за зверь?
Debian Jessie Xfce
А права сабж не портит? Если я им открою файл юзера и что-то изменю, то что будет с правами?
наверное, как-то связано с policykit-1
С помощью команды запустить программу с правами администратора на протяжении всей сессии.
Что-то тебя глючит слегка.
Там даже вручную установленный gksu нифига не работает.
Потому что в окружениях не-KDE и не-GNOME проще использовать ktsuss.
Логинься в кеды рутом, тогда конфиги и все остальное будет в /root с владельцем root.
Корзина. Так — как я являюсь основным переводчик Xfce на болгарский язык, я позволил сделать себе собственный перевод, отличается от стандартной.
А если сделать sudo -H ?
ничего ни где не корежит.
Если надо писать в виндовс раздел, а у меня он специально на запись только от рута, то использую krusader, там кнопочка есть, запустить от рута
Долгое время пользовался gksu, но оно, хоть и умеет запоминать пароль, зависит от гномодемонов и временами отваливается. Слез, пробовал ktsuss, LXDE-шный polkit, ещё пару приблуд каких-то — задолбался, просто прописал себе NOPASSWD и запускаю всё через sudo. Мне б лучше способ из-под рутовой программы запускать софт под пользователем, поскольку ФМ держу только под рутом всегда, а файлы открываю из него — в результате дублирование настроек — пользую Geeqie, Atril, LibreOffice, SMPlayer под рутом, а M$O вообще только под рутом и ставил, ибо жирный. Уже плеер только под рутом не конает, поскольку пульса от рутовых прог ломается.
Источник
Запуск графического приложения от имени другого пользователя
Собственно есть графическая программа xprog, которую необходимо запустить от имени другого пользователя B в оконной среде пользователя A. Как это сделать? В голову приходит только
gksudo -u B xprog
Однако X сервер это не приемлет:
Xlib: connection to «:0.0» refused by server
Есть какие-то идеи?
Re: Запуск графического приложения от имени другого пользователя
xhost +
su -c xprog username
Re: Запуск графического приложения от имени другого пользователя
Это наверно потому, что прав на подключение к X-серверу нет.
Простой способ: «xhost +localhost», дальше если $DISPLAY стоит правильно то должно заработать.
Сложный способ: man xauth.
Re: Запуск графического приложения от имени другого пользователя
а вообще-то, безопаснее
xhost local:
Re: Запуск графического приложения от имени другого пользователя
Спасибо, то, что надо!
Re: Запуск графического приложения от имени другого пользователя
а еще лучше почитать man xauth. а то малоли кто там на local: сидит.
Источник
linux-notes.org
Запустить команду от другого пользователя в Unix/Linux
Иногда, просто необходимо запустить команду от другого пользователя. И существует несколько способов, как это можно сделать. Я расскажу о них в своей статья «Запустить команду от другого пользователя в Unix/Linux».
Запустить команду от другого пользователя в Unix/Linux — способ 1
И так, можно использовать утилиту SUDO. Рассмотрим пример:
- -H YOUR_HOME: Задает HOME (Переменное окружение для хома конкретного юзера) и по умолчанию — это root.
- -u YOUR_USER: Задаем пользователя от которого будет выполнена команда.
- -c YOUR_COMMAND: Служит опцией для ввода команды.
Запустить команду от другого пользователя в Unix/Linux — способ 2
Можно использовать утилиту SU. И сейчас приведу несколько примеров.
Логин в root юзера
Чтобы получить рута, выполните:
Запустить команду как root юзер
Вот пример команды:
Выполнить команду от другого пользователя с помощью su
И так, вот пример:
Рассмотрим другой пример:
- — — Будет имитировать логин указанного пользователя.
- -c — Служит для указания команды для выполнения (для указанного юзверя).
Запустить команду от другого пользователя в Unix/Linux — способ 3
И так, можно использовать утилиту runuser. Команда runuser запускает оболочку с заменяющими идентификаторами пользователей и групп. Эта команда полезна только когда вы залогинены как пользователь root. Синтаксис выглядит следующим образом:
Как пример, я покажу следующую строку:
PS: Для использования команды runuser пароль не требуется, и он должен запускаться только пользователем root.
- -l: Создаст оболочку для входа в систему, используя файл runuser-l PAM вместо стандартного.
- -g: Указывает на основную группу.
- -G: Указывает на дополнительную группу.
- -c: Собственно, служит для указания команды.
- –session-command=COMMAND: Передает одну команду в оболочку с опцией «-c» и не создает новый сеанс.
- -m: Не сбрасывайте переменные среды (ENV).
Вот и все, тема «Запустить команду от другого пользователя в Unix/Linux» завершена.
5 thoughts on “ Запустить команду от другого пользователя в Unix/Linux ”
> $ sudo -H -u Your_another_user bash -c ‘ping linux-notes.org’
Смешались sudo и bash:
$ sudo -u user echo a
a
$ bash -c ‘echo a’
a
Да, уже поправил. Моя опечатки. Спасибо)
su asterisk -c «xxx»
This account is currently not available.
У меня вот проблема. Надо, чтобы звук из одной сессии (x2go)
Было слышно в другой сессии. Наверное даже не так.
Некоторые программы запускаются при загрузке ПК от user1.
Когда входишь через x2go тем же user1 звук (сигнализация) от этих демонов не слышно. Всю башку сломал. Подскажите пож как решить.
sudo -u www-data pwd
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник
Как я могу запустить приложение с графическим интерфейсом администратора в сеансе пользователя без прав администратора?
Я определил 2 учетные записи пользователей:
- один с правами администратора (с sudo правом) => давайте позвоним adminuser .
- 2-й без каких-либо привилегий => давайте вызовем его, и я настраиваю автологин для этого 2-го пользователя . normaluser
normaluser
Поэтому, когда я открываю normaluser сеанс и хочу запустить приложение с правами администратора,
я открываю терминал Ctrl + Alt + T и:
Он работает нормально, без необходимости выходить из normaluser сеанса (не нужно открывать adminuser сеанс).
Но что мне делать, если приложение должно работать с графическим интерфейсом пользователя?
Я хоть об этом
PAM может позаботиться об этом
Это работает для меня на Ubuntu 16.04 (редактировать: это работает на 18.04 LTS):
и затем, выполняя «su -» или «sudo su -», я могу использовать графические приложения в качестве пользователя root.
терминология
- normaluser обычный пользователь, который не является администратором и не может выполнять команды, как root с sudo .
- admin является администратором, который может запускать команды как root с sudo . (Конечно, любые графические команды должны использовать графический интерфейс типа gksu / gksudo , а не sudo напрямую.)
- anyapplication имя графического приложения, которое normaluser хочет запустить как root . normaluser знает admin пароль и ему (предположительно) сказали, что он / она может использовать его для этой цели.
Проблема
Причиной вашей проблемы, и причина большинства других ответов до сих пор не работают (за исключением Marty Фрид «s отличный ответ ), это:
- gksu может быть настроен на использование либо sudo или su в качестве внутреннего интерфейса. Поведение по умолчанию gksu в Ubuntu — выступать в качестве интерфейса для sudo , а не для su . То есть, по умолчанию, gksu и gksudo ведут себя точно так же . Смотрите справочную страницу .
- normaluser не является администратором и поэтому не может запускать команды как root с sudo . sudo запрашивает пароль пользователя, который его запускает , а не пароль пользователя, которым он хочет стать . Неспособность использовать свой пароль для выполнения действий, если вы не являетесь пользователем, это значит не быть администратором .
- normaluser , При условии , что это не учетная запись гостя, может выполнять команды , как другой пользователь с su , поставив в пароль другого пользователя . Но gksu выступает как фронтенд sudo , а не su .
- normaluser не может напрямую выполнить какую-либо команду root , потому что normaluser не может использовать sudo , и никто не может стать root с, su потому что нет root пароля .
Решение
Решение требует написания команды, которая выполняет два шага аутентификации:
- normaluser должен стать admin для запуска графической команды. Для этого normaluser необходимо запустить gksu с -w флагом, чтобы он работал в su-режиме вместо стандартного sudo-mode , а также с -u флагом, чтобы admin вместо команды выполнить команду root .
- Команда запуска , как admin должен вызывать gksu без с -w флагом использовать , sudo чтобы стать root .
Вот команда (да, я проверял это 😉 ):
Вам будет предложено ввести пароль дважды :
- Во-первых, вы должны ввести admin пароль, чтобы normaluser запустить команду как admin с su бэкэндом.
- Во-вторых, вы должны ввести admin пароль, чтобы admin запустить команду как root с sudo бэкэндом.
Это верно. Вы вводите admin пароль дважды.
- Если вы хотите, вы можете заменить вторую gksu с , gksudo чтобы сделать его менее запутанным. В Ubuntu они эквивалентны. (Вы также можете заменить первое gksu на gksudo , но это будет крайне нелогичным и запутанным.)
- -w это короткая форма —su-mode .
- -S является краткой формой, —sudo-mode но ни один из них не должен использоваться, потому что по умолчанию используется режим sudo .
- Вы можете сначала проверить это с помощью довольно безобидной команды, чтобы убедиться, что она выполняет то, что вам нужно. (Это произойдет, но вам не нужно верить мне в этом.) Например: xclock хорошее простое приложение с окном часов
Источник
Запуск GUI программа с правами ROOT
Здравствуйте , подскажите пожалуйста . Есть к примеру файловый менеджер, в нем захожу на смонтированный виндовый NTFS раздел , но не могу ничего редактировать,сохранять и т.д. Или вот к примеру QT запускаю, а он пишет, что не может записать какой-то файл и так далее. Есть ли какой-то способ ,чтобы к примеру сразу с ярлыка запустить прогу и она запросит рут права.Постоянно через терминал запускать неудобно. З.Ы Использую Debian+LXDE. Спасибо .
в нем захожу на смонтированный виндовый NTFS раздел , но не могу ничего редактировать,сохранять
В lxde можно свои пункты меню? Если да так и запили gksu thunar, например.
В свойствах ярлыка припиши gksu перед программой, например gksu gedit.
Монтируешь его как? Покажи /etc/fstab.
Создать .desktop файл, в котором вызывается: gksudo .
Как уже сказали, монтируй ntfs на запись. man mount, man fstab в помощь.
Вот интересно — все дружно посоветовали череззадный метод — запускать гуй под рутом, но решить проблему в корне, правильно смонтировав раздел, никто не подсказал.
Правильный вариант — дать конкретному пользователю права при монтировании фс. Ну или свалить на венду и там запускать файлменеджеры под админом.
А, то есть, монтировать можно и не под рутом, так?
Причём здесь это? Хотя и можно, но зачем?
У команды mount есть опции, например: uid, gid и rw. Используя их, можно смонтировать всё правильно.
А с qt надо конкретно смотреть, что и куда оно не может записать.
Прописываешь во фстабе, чтоб были права на запись у обычного пользователя.
Пускать программы под рутом ради записи на нтфс — глупость.
Как это никто? Направление поиска уже дано, если ТС вдруг не разберется, тогда уж ткнем носом (уже ткнули в нужные опции). Да и обсасывали эту кость уже не раз.
Он просто всех игнорирует, наверное ☺
users флаг емнип
Пробовал дописывать в ярлыке gksu не помогло. Диск смонтирован такUUID=01CF4FEE06CC3250 /media/CROSP ntfs defaults,nls=utf8,umask=0222 0 0 Подскажите как правильно надо ?
Точнее открываются с помощью gksu не все программы. Если прописано в таком формате (без полного пути) Exec=x-terminal-emulator -e synaptic-pkexec , то не открываются .
Спросим на LOR о чем нибудь — прибежит какое-нибудь говно типа MiniRoboDancer и начнет вы$#ываться
Лучше задавать вопросы по линуксу и прочему OpenSource на Opennet, Unix-forum и других ресурсах
man mount или man ntfs-3g (смотря что используешь):
в 3g можно еще так:
umask=0222 — это походу запрет на запись для всех.
Спасибо большое umask=000 сработало. Скажите пожалуйста по поводу того как запускать программы которые насколько я понимаю в PATH прописаны от рута ? x-terminal-emulator -e synaptic-pkexec
А если я и туда нагряну?
Сам призвал и ещё и возмущается. К твоему сведению, ники можно и без каста писать.
Тогда уж MiniRoboDancer
Попробуй запускать GUI программу через эмулятор терминала от суперюзера.
Вот, еще один предлагатор. =)
Складывается такое ощущение, что людей, нормально разбирающихся в ОС, становится все меньше и меньше, а ЛОР заполоняют какие-то сбежавшие с винды индивиды, посмотревшие на линукс только из-за его «бесплатности», при этом узнавшие пару каких-то банальных вещей из разряда «в линуксе есть рут», и советующие таким же людям какие-то глупости.
Ну и напоследок цитата, одна из любимых:
«всю жизнь знал, что главная беда линукса — в ламерах виндовозных, у которых млять указательный палец к мышке прирос. за*бали уже. » (с) gr_buza 2003
или прописать правильную строчку с NOPASSWD в sudoers и через sudo.
Источник