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

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

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 ответов

Переосмысление этого вопроса (я надеюсь правильно понять вашу проблему, но исправьте меня, если я ошибаюсь), я нашел другое решение, и я думаю, что вам не нужно запускать приложение в виде www-данных или играть с разрешениями. Вы сказали, что:

DocumentRoot от Apache должен находиться под chown www-data: www-data / path / to / www

, но на самом деле это не совсем так: Apache DocumentRoot должен быть доступен для чтения www-data, но не обязательно принадлежит ему. По умолчанию в Ubuntu Desktop все файлы и каталоги, которые вы создаете, читаются всеми, поэтому вы можете установить DocumentRoot в каталог внутри вашей домашней папки, например:

DocumentRoot /home/user/my-project/my-document-root
4
ответ дан 26 May 2018 в 01:12
  • 1
    благодаря! это просто сработало. и ваше объяснение, почему это сработает, было очень полезно. поскольку это решило мою проблему, но мне все же интересно узнать, как я могу открыть krusader в качестве другого пользователя. другие решения просто не сработали. – Alexar 13 October 2010 в 21:10

Запуск графического приложения по www-данным дает вам несколько проблем. То, что вы можете сделать, это добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

sudo adduser $USER www-data

Примечание: возможно, вам нужно выйти из системы из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы по-прежнему не можете изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись:

sudo chown www-data:www-data /var/www/file chmod g+w /var/www/file
4
ответ дан 27 July 2018 в 03:00

Запуск графического приложения по www-данным дает вам несколько проблем. То, что вы можете сделать, это добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

sudo adduser $USER www-data

Примечание: возможно, вам нужно выйти из системы из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы по-прежнему не можете изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись:

sudo chown www-data:www-data /var/www/file chmod g+w /var/www/file
4
ответ дан 31 July 2018 в 10:40

Запуск графического приложения по www-данным дает вам несколько проблем. То, что вы можете сделать, это добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

sudo adduser $USER www-data

Примечание: возможно, вам нужно выйти из системы из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы по-прежнему не можете изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись:

sudo chown www-data:www-data /var/www/file chmod g+w /var/www/file
4
ответ дан 31 July 2018 в 11:43

Запуск графического приложения по www-данным дает вам несколько проблем. Вы можете добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

  sudo adduser $ USER www-data   

Примечание: возможно, вам нужно выйти из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы все еще неспособны изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись на них:

  sudo chown www-data: www-data / var / www / file chmod g + w / var / www  / file  
4
ответ дан 2 August 2018 в 04:28

Запуск графического приложения по www-данным дает вам несколько проблем. Вы можете добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

  sudo adduser $ USER www-data   

Примечание: возможно, вам нужно выйти из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы все еще неспособны изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись на них:

  sudo chown www-data: www-data / var / www / file chmod g + w / var / www  / file  
4
ответ дан 4 August 2018 в 21:01

Запуск графического приложения по www-данным дает вам несколько проблем. Вы можете добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

  sudo adduser $ USER www-data   

Примечание: возможно, вам нужно выйти из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы все еще неспособны изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись на них:

  sudo chown www-data: www-data / var / www / file chmod g + w / var / www  / file  
4
ответ дан 6 August 2018 в 04:33

Запуск графического приложения по www-данным дает вам несколько проблем. Вы можете добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

  sudo adduser $ USER www-data   

Примечание: возможно, вам нужно выйти из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы все еще неспособны изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись на них:

  sudo chown www-data: www-data / var / www / file chmod g + w / var / www  / file  
4
ответ дан 7 August 2018 в 22:42

Запуск графического приложения по www-данным дает вам несколько проблем. Вы можете добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

  sudo adduser $ USER www-data   

Примечание: возможно, вам нужно выйти из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы все еще неспособны изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись на них:

  sudo chown www-data: www-data / var / www / file chmod g + w / var / www  / file  
4
ответ дан 10 August 2018 в 10:48
[D3] Переосмысление об этом вопросе (я надеюсь, понял вашу проблему правильно, но поправьте меня, если я ошибаюсь), я нашел другое решение, и я думаю, что вам не нужно запускать приложение в WWW-данных, ни к играть с разрешениями. Вы сказали, что:

DocumentRoot Apache должен быть под CHOWN WWW-данных

: WWW-данные / путь / к / WWW

, но на самом деле, это ISN» т полностью верно: в Apache DocumentRoot должен быть доступен для чтения WWW-данные , но не обязательно принадлежит им. По умолчанию в Ubuntu Desktop, все файлы и каталоги, которые вы создаете читаемы всеми, так что вы можете установить DocumentRoot в директорию внутри вашей домашней папки, например:

  DocumentRoot / дом / пользователя [d5!]  / my-project / my-document-root  
4
ответ дан 13 August 2018 в 17:22
  • 1
    благодаря! это просто сработало. и ваше объяснение, почему это сработает, было очень полезно. поскольку это решило мою проблему, но мне все же интересно узнать, как я могу открыть krusader в качестве другого пользователя. другие решения просто не сработали. – Alexar 13 October 2010 в 21:10
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
ответ дан 26 May 2018 в 01:12

Если вы используете это из системы меню, вы захотите использовать 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
ответ дан 26 May 2018 в 01:12
  • 1
    спасибо, но он возвращает: Нет протокола definedkrusader: не удается подключиться к X-серверу: 0.0 – Alexar 10 October 2010 в 12:04
  • 2
    перед запуском команды gksudo, в терминале под управлением вашей учетной записи: xhost + – jet 28 January 2011 в 18:29

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

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

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

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

Чтобы стать 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
ответ дан 26 May 2018 в 01:12
  • 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

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

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

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

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

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

krusader

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

3
ответ дан 26 May 2018 в 01:12

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

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

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

Запуск графического приложения по www-данным дает вам несколько проблем. То, что вы можете сделать, это добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

sudo adduser $USER www-data

Примечание: возможно, вам нужно выйти из системы из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы по-прежнему не можете изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись:

sudo chown www-data:www-data /var/www/file
chmod g+w /var/www/file
0
ответ дан 26 May 2018 в 01:12
  • 1
    однако это не решение общей проблемы, но, похоже, это работает для моего дела; я дам ему попробовать и сообщить – Alexar 10 October 2010 в 22:51

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

xhost +SI:localuser:username

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

su - username

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

krusader

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

0
ответ дан 26 May 2018 в 01:12

Запуск графического приложения по www-данным дает вам несколько проблем. То, что вы можете сделать, это добавить себя в группу www-data, так что вы сможете изменить все необходимые вам файлы:

sudo adduser $USER www-data

Примечание: возможно, вам нужно выйти из системы из сеанса, чтобы изменения вступили в силу.

Если после этой команды вы по-прежнему не можете изменить некоторые файлы, просто убедитесь, что у вас есть разрешение на запись:

sudo chown www-data:www-data /var/www/file chmod g+w /var/www/file
0
ответ дан 25 July 2018 в 23:08
  • 1
    однако это не решение общей проблемы, но, похоже, это работает для моего дела; я дам ему попробовать и сообщить – Alexar 10 October 2010 в 22:51
  • 2
    благодаря! это просто сработало. и ваше объяснение, почему это сработает, было очень полезно. поскольку это решило мою проблему, но мне все же интересно узнать, как я могу открыть krusader в качестве другого пользователя. другие решения просто не сработали. – Alexar 13 October 2010 в 21:10
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
ответ дан 25 July 2018 в 23:08

Чтобы стать 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
ответ дан 25 July 2018 в 23:08
  • 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
ответ дан 25 July 2018 в 23:08
  • 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
ответ дан 25 July 2018 в 23:08
  • 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
ответ дан 25 July 2018 в 23:08

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

xhost +SI:localuser:username

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

su - username

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

krusader

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

0
ответ дан 25 July 2018 в 23:08

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

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

0
ответ дан 25 July 2018 в 23:08
  • 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
ответ дан 27 July 2018 в 03:00

Чтобы стать 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
ответ дан 27 July 2018 в 03:00
  • 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
ответ дан 27 July 2018 в 03:00
  • 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
ответ дан 27 July 2018 в 03:00
  • 1
    спасибо, но он возвращает: Нет протокола definedkrusader: не удается подключиться к X-серверу: 0.0 – Alexar 10 October 2010 в 12:04
  • 2
    перед запуском команды gksudo, в терминале под управлением вашей учетной записи: xhost + – jet 28 January 2011 в 18:29

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

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