Как запустить приложение в качестве другого пользователя?

Не удалось заставить другие ответы работать, кроме этого, которые работали безупречно. Вот пошаговое руководство, запрошенное комментариями.

A. Учебник

1. Создайте монитор

(Обратите внимание: измените настройку разрешения по умолчанию 1280x1024 по умолчанию 1280 и 1024. Возможно, вам потребуется изменить LVDS1, если имя монитора по умолчанию отличается). [!d4 ]

Запустить в терминале:

$ gtf 1280 1024 60.

На выходе есть строка, аналогичная Modeline "1280x1024_60.00" 108.88 1280 1360 1496 1712 1024 1025 1028 1060 -HSync +Vsync. Скопируйте все после слова Modeline (исключить его) в следующую команду.

$ gtf 1280 1024 60. xrandr --addmode VIRTUAL1 1280x1024_60.00 xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1

2. Начать VNC

xrandr --addmode VIRTUAL1 1280x1024_60.00

3.

xrandr --addmode VIRTUAL1 1280x1024_60.00

xrandr --output VIRTUAL1 --mode 1280x1024_60.00 --left-of LVDS1

Замечания

Кредиты: kjans, содержимое редактируется. ПРЕДУПРЕЖДЕНИЕ: данные не зашифрованы! (Соответствует использованию Wi-Fi и не LAN). ПРЕДУПРЕЖДЕНИЕ. Любая подключенная к сети сеть, к которой вы можете подключиться к порту 5900, может подключаться к вашему монитору! (Не проблема при использовании USB и ограничение интерфейса, добавив опцию -listen <IP_ADDR> к x11vnc (где <IP_ADDR> - это адрес компьютера в сети, который вы хотите предоставить эксклюзивный доступ)). Выполнение любого из 1 - 4 шагов в два раза может привести к выходу ошибки. После успешного использования, 5. шаг должен быть повторен для другого соединения.

B. Сценарий

Найдите IP-адрес вашего компьютера с помощью ifconfig (при подключении к локальной сети).

#!/bin/bash
W=1280
H=800
O=VIRTUAL1
if [ "$1" == "create" ]; then
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | xargs xrandr --newmode
    # sed: get third line, delete 'Modeline', get first word, remove first and last characters
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --addmode $O
    gtf $W $H 60 | sed '3q;d' | sed 's/Modeline//g' | awk '{print $1;}' | sed 's/^.\(.*\).$/\1/' | xargs xrandr --output $O --left-of LVDS1 --mode
elif [ "$1" == "on" ]; then
    x11vnc -listen 192.168.42.149 -clip ${W}x${H}+0+0
    # For use in Wi-Fi LAN.
    #x11vnc -clip ${W}x${H}+0+0 #**WARNING** Unencrypted stream. VNC accessible without password through port 5900 in all internet interfaces.
else
    echo "missing argument: [create | on]"
fi
17
задан 13 October 2010 в 21:14

90 ответов

Я полагаю, вам нужно запустить на терминале следующее:

xhost +SI:localuser:<user-to-run-as>

Тогда вы можете сделать:

sudo su - <user-to-run-as>

И, наконец, запустите приложение:

krusader

Это должно сделать это, просто обязательно замените <user-to-run-as> своим именем пользователя, конечно.

3
ответ дан 27 July 2018 в 03:00

Вдохновленный Антоном Сергеевичем Краевым, я использовал аналогичное решение, которое работает для меня. В пользователе, который использует Krusader, я добавил нового пользователя в xhhost:

xhost +SI:localuser:username

Чем любезно входить в систему:

su - username

Thr krusader запускается должным образом в качестве нового экземпляра в новом user:

krusader

Обратите внимание, что новая конфигурация будет создана в ~ / .kde / share / config / krusaderrc.

0
ответ дан 27 July 2018 в 03:00

Оба «gksu» и «kdesu» являются графическими интерфейсами для «sudo», который является инструментом, который вы должны использовать, когда находитесь в среде только для текста. Инструменты «gksu» и «kdesu» требуют, чтобы вы были в графическом режиме, что объясняет ошибки «не удается подключиться к X-серверу».

, если вы хотите выполнить консольную команду как другой пользователь, используйте команду 'sudo -u username command'.

0
ответ дан 27 July 2018 в 03:00
  • 1
    Спасибо, я запустил это, и он говорит что-то вроде [1] 12100, который, похоже, является идентификатором процесса; но ничего не вижу в действии. – Alexar 10 October 2010 в 22:49
xhost +SI:localuser:uname gksudo -u uname -l "firefox" xhost -SI:localuser:uname

Где uname = имя выданного пользователя. Видел там: http://ubuntuforums.org/showthread.php?p=10399617

Работает на моей панели maverick, нет звука в разветвленном скайпе и ~ / .profile.d не выполняется, поскольку он может.

6
ответ дан 31 July 2018 в 10:40

Чтобы стать www-данными с вашим собственным паролем, используйте это:

$ sudo su www-data [sudo] password for <your username>: [enter your password] $ whoami (you should see www-data here)

Но я не думаю, что вы сможете запускать приложения для графического интерфейса отсюда ..

Я обычно просто владею всем в /var/www, но разрешаю читать доступ всем:

/var/www$ sudo chown -R [your-username]\:[your-group] * /var/www$ find . -type d -exec chmod a+rx {} \; /var/www$ find . -type f -exec chmod a+r {} \;

Надеюсь, что это облегчит вашу боль:)

4
ответ дан 31 July 2018 в 10:40
  • 1
    как вы догадались, я не смог запустить приложения GUI оттуда. он сказал No protocol specified krusader: cannot connect to X server :0.0 – Alexar 11 October 2010 в 18:10
  • 2
    Второе решение не является для вас вариантом? У вас нет данных , чтобы принадлежал www-данным, хотя, я думаю, это предпочтительнее. – dr Hannibal Lecter 11 October 2010 в 20:01

Как упоминалось в Марко, вы можете использовать gksudo -u www-data <command> для запуска команд в качестве другого пользователя. Я обычно использую это для запуска команд как gdm, и до сих пор он никогда не спрашивал меня ни о чем другом, кроме моего собственного пароля.

Если вы используете kde, то это эквивалент kdesu -u www-data krusader. Я думаю, поскольку krusader - приложение kde, оно может работать лучше с kdesu. Подробнее о kdesu здесь.

Я использовал gksudo для запуска команд как других «человеческих» пользователей в системе, и когда мне будет предложено ввести пароль, я нахожу свой.

4
ответ дан 31 July 2018 в 10:40
  • 1
    спасибо, но результат такой же как gksudo: Нет протокола definedkrusader: не удается подключиться к X-серверу: 0.0 – Alexar 10 October 2010 в 12:05
  • 2
    Вероятно, для krusader (приложение kde), kdesu - лучший выбор. Я обновил свой ответ. Можете ли вы попробовать это? – koushik 10 October 2010 в 19:30

Если вы используете это из системы меню, вы захотите использовать alacarte (System> Preferences> Main Menu) и изменить запись для krusader и добавить перед ней: gksudo -u www-data, который должен что-то создать например:

gksudo -u www-data krusader

Это запустит окно командной строки административной задачи, которое, согласно GKSudo Manpage, является

GTK + Frontend для su и sudo

Используя только gksudo без переключателя -u, вы запустите команду как root.

5
ответ дан 31 July 2018 в 10:40
  • 1
    спасибо, но он возвращает: Нет протокола definedkrusader: не удается подключиться к X-серверу: 0.0 – Alexar 10 October 2010 в 12:04
  • 2
    перед запуском команды gksudo, в терминале под управлением вашей учетной записи: xhost + – jet 28 January 2011 в 18:29

Я полагаю, вам нужно запустить на терминале следующее:

xhost +SI:localuser:<user-to-run-as>

Тогда вы можете сделать:

sudo su - <user-to-run-as>

И, наконец, запустите приложение:

krusader

Это должно сделать это, просто обязательно замените <user-to-run-as> своим именем пользователя, конечно.

3
ответ дан 31 July 2018 в 10:40

Вдохновленный Антоном Сергеевичем Краевым, я использовал аналогичное решение, которое работает для меня. В пользователе, который использует Krusader, я добавил нового пользователя в xhhost:

xhost +SI:localuser:username

Чем любезно входить в систему:

su - username

Thr krusader запускается должным образом в качестве нового экземпляра в новом user:

krusader

Обратите внимание, что новая конфигурация будет создана в ~ / .kde / share / config / krusaderrc.

0
ответ дан 31 July 2018 в 10:40

Оба «gksu» и «kdesu» являются графическими интерфейсами для «sudo», который является инструментом, который вы должны использовать, когда находитесь в среде только для текста. Инструменты «gksu» и «kdesu» требуют, чтобы вы были в графическом режиме, что объясняет ошибки «не удается подключиться к X-серверу».

, если вы хотите выполнить консольную команду как другой пользователь, используйте команду 'sudo -u username command'.

0
ответ дан 31 July 2018 в 10:40
  • 1
    Спасибо, я запустил это, и он говорит что-то вроде [1] 12100, который, похоже, является идентификатором процесса; но ничего не вижу в действии. – Alexar 10 October 2010 в 22:49
xhost +SI:localuser:uname gksudo -u uname -l "firefox" xhost -SI:localuser:uname

Где uname = имя выданного пользователя. Видел там: http://ubuntuforums.org/showthread.php?p=10399617

Работает на моей панели maverick, нет звука в разветвленном скайпе и ~ / .profile.d не выполняется, поскольку он может.

6
ответ дан 31 July 2018 в 11:43

Чтобы стать www-данными с вашим собственным паролем, используйте это:

$ sudo su www-data [sudo] password for <your username>: [enter your password] $ whoami (you should see www-data here)

Но я не думаю, что вы сможете запускать приложения для графического интерфейса отсюда ..

Я обычно просто владею всем в /var/www, но разрешаю читать доступ всем:

/var/www$ sudo chown -R [your-username]\:[your-group] * /var/www$ find . -type d -exec chmod a+rx {} \; /var/www$ find . -type f -exec chmod a+r {} \;

Надеюсь, что это облегчит вашу боль:)

4
ответ дан 31 July 2018 в 11:43
  • 1
    как вы догадались, я не смог запустить приложения GUI оттуда. он сказал No protocol specified krusader: cannot connect to X server :0.0 – Alexar 11 October 2010 в 18:10
  • 2
    Второе решение не является для вас вариантом? У вас нет данных , чтобы принадлежал www-данным, хотя, я думаю, это предпочтительнее. – dr Hannibal Lecter 11 October 2010 в 20:01

Как упоминалось в Марко, вы можете использовать gksudo -u www-data <command> для запуска команд в качестве другого пользователя. Я обычно использую это для запуска команд как gdm, и до сих пор он никогда не спрашивал меня ни о чем другом, кроме моего собственного пароля.

Если вы используете kde, то это эквивалент kdesu -u www-data krusader. Я думаю, поскольку krusader - приложение kde, оно может работать лучше с kdesu. Подробнее о kdesu здесь.

Я использовал gksudo для запуска команд как других «человеческих» пользователей в системе, и когда мне будет предложено ввести пароль, я нахожу свой.

4
ответ дан 31 July 2018 в 11:43
  • 1
    спасибо, но результат такой же как gksudo: Нет протокола definedkrusader: не удается подключиться к X-серверу: 0.0 – Alexar 10 October 2010 в 12:05
  • 2
    Вероятно, для krusader (приложение kde), kdesu - лучший выбор. Я обновил свой ответ. Можете ли вы попробовать это? – koushik 10 October 2010 в 19:30

Если вы используете это из системы меню, вы захотите использовать alacarte (System> Preferences> Main Menu) и изменить запись для krusader и добавить перед ней: gksudo -u www-data, который должен что-то создать например:

gksudo -u www-data krusader

Это запустит окно командной строки административной задачи, которое, согласно GKSudo Manpage, является

GTK + Frontend для su и sudo

Используя только gksudo без переключателя -u, вы запустите команду как root.

5
ответ дан 31 July 2018 в 11:43
  • 1
    спасибо, но он возвращает: Нет протокола definedkrusader: не удается подключиться к X-серверу: 0.0 – Alexar 10 October 2010 в 12:04
  • 2
    перед запуском команды gksudo, в терминале под управлением вашей учетной записи: xhost + – jet 28 January 2011 в 18:29

Я полагаю, вам нужно запустить на терминале следующее:

xhost +SI:localuser:<user-to-run-as>

Тогда вы можете сделать:

sudo su - <user-to-run-as>

И, наконец, запустите приложение:

krusader

Это должно сделать это, просто обязательно замените <user-to-run-as> своим именем пользователя, конечно.

3
ответ дан 31 July 2018 в 11:43

Вдохновленный Антоном Сергеевичем Краевым, я использовал аналогичное решение, которое работает для меня. В пользователе, который использует Krusader, я добавил нового пользователя в xhhost:

xhost +SI:localuser:username

Чем любезно входить в систему:

su - username

Thr krusader запускается должным образом в качестве нового экземпляра в новом user:

krusader

Обратите внимание, что новая конфигурация будет создана в ~ / .kde / share / config / krusaderrc.

0
ответ дан 31 July 2018 в 11:43

Оба «gksu» и «kdesu» являются графическими интерфейсами для «sudo», который является инструментом, который вы должны использовать, когда находитесь в среде только для текста. Инструменты «gksu» и «kdesu» требуют, чтобы вы были в графическом режиме, что объясняет ошибки «не удается подключиться к X-серверу».

, если вы хотите выполнить консольную команду как другой пользователь, используйте команду 'sudo -u username command'.

0
ответ дан 31 July 2018 в 11:43
  • 1
    Спасибо, я запустил это, и он говорит что-то вроде [1] 12100, который, похоже, является идентификатором процесса; но ничего не вижу в действии. – Alexar 10 October 2010 в 22:49

Оба «gksu» и «kdesu» являются графическими интерфейсами для «sudo», который является инструментом, который вы должны использовать, когда находитесь в среде только для текста. Инструменты «gksu» и «kdesu» требуют, чтобы вы были в графическом режиме, что объясняет ошибки «не удается подключиться к X-серверу».

, если вы хотите выполнить консольную команду как другой пользователь, используйте команду 'sudo -u username command'.

0
ответ дан 2 August 2018 в 04:28

Вдохновленный Антоном Сергеевичем Краевым, я использовал подобное решение, которое работает для меня. В пользователе, который использует Krusader, я добавил нового пользователя в xhhost:

  xhost + SI: localuser: имя пользователя  

Чем любезно зарегистрирован:

  su - имя пользователя  

Thr krusader правильно запускается как новый экземпляр нового пользователя:

  krusader  [  ! d9] 

Обратите внимание, что новая конфигурация будет создана в ~ / .kde / share / config / krusaderrc.

0
ответ дан 2 August 2018 в 04:28

Я полагаю, вам нужно запустить на терминале следующее:

  xhost + SI: localuser: & lt; user-to-run-as & gt;   

Тогда вы можете сделать:

  sudo su - & lt; user-to-run-as & gt;   

И, наконец, запустите ваше приложение:

  krusader  

Это должно сделать это, просто обязательно замените & lt; user-to-run-as & gt; с вашим именем пользователя, конечно.

3
ответ дан 2 August 2018 в 04:28

Если вы используете это из системы меню, вы захотите использовать alacarte (System> Preferences> Main Menu) и изменить запись для krusader и добавить перед ней: gksudo -u www-data , который должен вызывать нечто вроде:

gksudo -u www-data krusader

Это запустит административный окно запроса задачи, которое в соответствии с GKSudo Manpage является

GTK + Frontend для su и sudo

Используя только gksudo без переключателя -u будет запускаться команда как root.

5
ответ дан 2 August 2018 в 04:28

Как упоминал Марко, вы можете использовать gksudo -u www-data & lt; command & gt; для запуска команд в качестве другого пользователя. Я обычно использую это для запуска команд как gdm , и до сих пор он никогда не спрашивал меня ни о чем другом, кроме моего собственного пароля.

Если вы используете kde, то эквивалент kdesu -u www-data krusader . Думаю, поскольку krusader является приложением kde, он может работать лучше с kdesu . Подробнее о kdesu здесь .

Я использовал gksudo для запуска команд как других «человеческих» пользователей в системе, и когда мне будет предложено ввести пароль , Я печатаю свое.

4
ответ дан 2 August 2018 в 04:28

Чтобы стать www-данными с вашим собственным паролем, используйте это:

  $ sudo su www-data [sudo] пароль для & lt; ваше имя пользователя & gt ;: [введите свой пароль] $ whoami  (здесь вы должны увидеть www-данные)  

Но я не думаю, что вы сможете запускать приложения GUI отсюда ..

Обычно я просто / var / www , но разрешить доступ для чтения всем:

  / var / www $ sudo chown -R [ваше имя пользователя] \: [ваш  -группа] * / var / www $ find.  -type d -exec chmod a + rx {} \;  / var / www $ find.  -type f -exec chmod a + r {} \;   

Надеюсь, это облегчит вашу боль:)

4
ответ дан 2 August 2018 в 04:28
  xhost + SI: localuser: uname gksudo -u uname -l "firefox" xhost -SI: localuser: uname  

Где uname = имя олицетворяемого пользователя. Видел там: http://ubuntuforums.org/showthread.php?p=10399617

Работает на моем блоке maverick, нет звука в разветвленной скайпе и ~ / .profile .d не выполняется, как могло бы.

6
ответ дан 2 August 2018 в 04:28

Оба «gksu» и «kdesu» являются графическими интерфейсами для «sudo», который является инструментом, который вы должны использовать, когда находитесь в среде только для текста. Инструменты «gksu» и «kdesu» требуют, чтобы вы были в графическом режиме, что объясняет ошибки «не удается подключиться к X-серверу».

, если вы хотите выполнить консольную команду как другой пользователь, используйте команду 'sudo -u username command'.

0
ответ дан 4 August 2018 в 21:01

Я полагаю, вам нужно запустить на терминале следующее:

  xhost + SI: localuser: & lt; user-to-run-as & gt;   

Тогда вы можете сделать:

  sudo su - & lt; user-to-run-as & gt;   

И, наконец, запустите ваше приложение:

  krusader  

Это должно сделать это, просто обязательно замените & lt; user-to-run-as & gt; с вашим именем пользователя, конечно.

3
ответ дан 4 August 2018 в 21:01

Вдохновленный Антоном Сергеевичем Краевым, я использовал подобное решение, которое работает для меня. В пользователе, который использует Krusader, я добавил нового пользователя в xhhost:

  xhost + SI: localuser: имя пользователя  

Чем любезно зарегистрирован:

  su - имя пользователя  

Thr krusader правильно запускается как новый экземпляр нового пользователя:

  krusader  [  ! d9] 

Обратите внимание, что новая конфигурация будет создана в ~ / .kde / share / config / krusaderrc.

0
ответ дан 4 August 2018 в 21:01

Если вы используете это из системы меню, вы захотите использовать alacarte (System> Preferences> Main Menu) и изменить запись для krusader и добавить перед ней: gksudo -u www-data , который должен вызывать нечто вроде:

gksudo -u www-data krusader

Это запустит административный окно запроса задачи, которое в соответствии с GKSudo Manpage является

GTK + Frontend для su и sudo

Используя только gksudo без переключателя -u будет запускаться команда как root.

5
ответ дан 4 August 2018 в 21:01

Как упоминал Марко, вы можете использовать gksudo -u www-data & lt; command & gt; для запуска команд в качестве другого пользователя. Я обычно использую это для запуска команд как gdm , и до сих пор он никогда не спрашивал меня ни о чем другом, кроме моего собственного пароля.

Если вы используете kde, то эквивалент kdesu -u www-data krusader . Думаю, поскольку krusader является приложением kde, он может работать лучше с kdesu . Подробнее о kdesu здесь .

Я использовал gksudo для запуска команд как других «человеческих» пользователей в системе, и когда мне будет предложено ввести пароль , Я печатаю свое.

4
ответ дан 4 August 2018 в 21:01

Чтобы стать www-данными с вашим собственным паролем, используйте это:

  $ sudo su www-data [sudo] пароль для & lt; ваше имя пользователя & gt ;: [введите свой пароль] $ whoami  (здесь вы должны увидеть www-данные)  

Но я не думаю, что вы сможете запускать приложения GUI отсюда ..

Обычно я просто / var / www , но разрешить доступ для чтения всем:

  / var / www $ sudo chown -R [ваше имя пользователя] \: [ваш  -группа] * / var / www $ find.  -type d -exec chmod a + rx {} \;  / var / www $ find.  -type f -exec chmod a + r {} \;   

Надеюсь, это облегчит вашу боль:)

4
ответ дан 4 August 2018 в 21:01

Другие вопросы по тегам:

Похожие вопросы: