Как я могу переключить пользователя в оболочке и использовать существующий сеанс отображения gnome?

Попробуйте получить доступ как гость и введите

cat /etc/passwd

Вы должны найти свое имя пользователя

4
задан 28 June 2011 в 18:50

16 ответов

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

xauth nextract - $DISPLAY | sudo -u bob xauth nmerge -

Thius использует команду xauth для извлечения информацию аутентификации для текущего пользователя (первая часть команды перед |), а затем объединить ее в файл bob пользователя bob пользователя bob. Обратите внимание, что для этого требуется /etc/sudoers, чтобы вы могли запускать команды как пользователь bob (это по умолчанию, если вы пользователь admin в поле Ubuntu).

Вы можете затем переключитесь на пользователя bob с помощью su -l.

В качестве альтернативы вы можете выпустить эти отдельные команды:

xauth nextract - $DISPLAY > /tmp/xauth.temporary.file
su -l bob -c 'xauth nmerge - < /tmp/xauth.temporary.file'
rm /tmp/xauth.temporary.file

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь bob мог его прочитать (что часто означает, что любой пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любой пользователь, который может прочитайте временный файл, чтобы получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo, поскольку он не имеет этих недостатков.

3
ответ дан 25 May 2018 в 20:03
  • 1
    Я получил это для работы, но: su: должно быть запущено с терминала – z7sg 28 June 2011 в 18:34
  • 2
    @ z7sg: Да, конечно, он должен запускаться в терминале. Разве это не вопрос, о котором вы говорите? Как переключиться на другого пользователя в терминале и все еще иметь возможность запускать X-приложения с того же терминала? – Riccardo Murri 28 June 2011 в 18:44
  • 3
    @Ricardo Да, но su не нравится, когда запускается из трубы. Это проблема безопасности. – z7sg 28 June 2011 в 18:47
  • 4
    @ z7sg О, я вижу. Вы правы, но вы можете использовать sudo вместо su и не столкнуться с этой проблемой. Я отредактирую свой ответ с подробностями. – Riccardo Murri 28 June 2011 в 19:03
  • 5
    С моего рабочего стола, на котором работает xubuntu, я запускаю ssh -X otherhost. С этого хоста DISPLAY является «localhost: 10.0». Когда я пытаюсь извлечь xauth extract - $ DISPLAY, я получаю сообщение об ошибке, не найдено совпадений, файл полномочий " - " не написано – djb 27 November 2013 в 02:25

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

xauth nextract - $DISPLAY | sudo -u bob xauth nmerge -

Thius использует команду xauth для извлечения информацию аутентификации для текущего пользователя (первая часть команды перед |), а затем объединить ее в файл bob пользователя bob пользователя bob. Обратите внимание, что для этого требуется /etc/sudoers, чтобы вы могли запускать команды как пользователь bob (это по умолчанию, если вы пользователь admin в поле Ubuntu).

Вы можете затем переключитесь на пользователя bob с помощью su -l.

В качестве альтернативы вы можете выпустить эти отдельные команды:

xauth nextract - $DISPLAY > /tmp/xauth.temporary.file su -l bob -c 'xauth nmerge - < /tmp/xauth.temporary.file' rm /tmp/xauth.temporary.file

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь bob мог его прочитать (что часто означает, что любой пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любой пользователь, который может прочитайте временный файл, чтобы получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo, поскольку он не имеет этих недостатков.

3
ответ дан 25 July 2018 в 21:39

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

xauth nextract - $DISPLAY | sudo -u bob xauth nmerge -

Thius использует команду xauth для извлечения информацию аутентификации для текущего пользователя (первая часть команды перед |), а затем объединить ее в файл bob пользователя bob пользователя bob. Обратите внимание, что для этого требуется /etc/sudoers, чтобы вы могли запускать команды как пользователь bob (это по умолчанию, если вы пользователь admin в поле Ubuntu).

Вы можете затем переключитесь на пользователя bob с помощью su -l.

В качестве альтернативы вы можете выпустить эти отдельные команды:

xauth nextract - $DISPLAY > /tmp/xauth.temporary.file su -l bob -c 'xauth nmerge - < /tmp/xauth.temporary.file' rm /tmp/xauth.temporary.file

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь bob мог его прочитать (что часто означает, что любой пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любой пользователь, который может прочитайте временный файл, чтобы получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo, поскольку он не имеет этих недостатков.

3
ответ дан 2 August 2018 в 03:15

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

xauth nextract - $DISPLAY | sudo -u bob xauth nmerge -

Thius использует команду xauth для извлечения информацию аутентификации для текущего пользователя (первая часть команды перед |), а затем объединить ее в файл bob пользователя bob пользователя bob. Обратите внимание, что для этого требуется /etc/sudoers, чтобы вы могли запускать команды как пользователь bob (это по умолчанию, если вы пользователь admin в поле Ubuntu).

Вы можете затем переключитесь на пользователя bob с помощью su -l.

В качестве альтернативы вы можете выпустить эти отдельные команды:

xauth nextract - $DISPLAY > /tmp/xauth.temporary.file su -l bob -c 'xauth nmerge - < /tmp/xauth.temporary.file' rm /tmp/xauth.temporary.file

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь bob мог его прочитать (что часто означает, что любой пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любой пользователь, который может прочитайте временный файл, чтобы получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo, поскольку он не имеет этих недостатков.

3
ответ дан 4 August 2018 в 19:10

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

xauth nextract - $DISPLAY | sudo -u bob xauth nmerge -

Thius использует команду xauth для извлечения информацию аутентификации для текущего пользователя (первая часть команды перед |), а затем объединить ее в файл bob пользователя bob пользователя bob. Обратите внимание, что для этого требуется /etc/sudoers, чтобы вы могли запускать команды как пользователь bob (это по умолчанию, если вы пользователь admin в поле Ubuntu).

Вы можете затем переключитесь на пользователя bob с помощью su -l.

В качестве альтернативы вы можете выпустить эти отдельные команды:

xauth nextract - $DISPLAY > /tmp/xauth.temporary.file su -l bob -c 'xauth nmerge - < /tmp/xauth.temporary.file' rm /tmp/xauth.temporary.file

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь bob мог его прочитать (что часто означает, что любой пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любой пользователь, который может прочитайте временный файл, чтобы получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo, поскольку он не имеет этих недостатков.

3
ответ дан 6 August 2018 в 03:27

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

  xauth nextract  - $ DISPLAY |  sudo -u bob xauth nmerge -  

Thius использует команду xauth для извлечения информации об аутентификации для текущего пользователя (первая часть команды перед ] | ), а затем объединить его в файл bob $ HOME / .Xauthority . Обратите внимание, что для этого требуется / etc / sudoers , чтобы вы могли запускать команды как пользователь bob (это значение по умолчанию, если вы являетесь пользователем admin на Ubuntu).

Затем вы можете переключиться на пользователя bob с помощью su -l .

В качестве альтернативы вы можете опубликовать эти отдельные команды:

  xauth nextract - $ DISPLAY & gt;  /tmp/xauth.temporary.file su -l bob -c 'xauth nmerge - & lt;  /tmp/xauth.temporary.file 'rm /tmp/xauth.temporary.file  

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь может читать bob (что часто означает, что пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любое пользователь, который может прочитать временный файл, может получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo , поскольку он не имеет этих недостатков.

3
ответ дан 7 August 2018 в 21:14

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

  xauth nextract  - $ DISPLAY |  sudo -u bob xauth nmerge -  

Thius использует команду xauth для извлечения информации об аутентификации для текущего пользователя (первая часть команды перед ] | ), а затем объединить его в файл bob $ HOME / .Xauthority . Обратите внимание, что для этого требуется / etc / sudoers , чтобы вы могли запускать команды как пользователь bob (это значение по умолчанию, если вы являетесь пользователем admin на Ubuntu).

Затем вы можете переключиться на пользователя bob с помощью su -l .

В качестве альтернативы вы можете опубликовать эти отдельные команды:

  xauth nextract - $ DISPLAY & gt;  /tmp/xauth.temporary.file su -l bob -c 'xauth nmerge - & lt;  /tmp/xauth.temporary.file 'rm /tmp/xauth.temporary.file  

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь может читать bob (что часто означает, что пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любое пользователь, который может прочитать временный файл, может получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo , поскольку он не имеет этих недостатков.

3
ответ дан 10 August 2018 в 09:32

Если вы хотите разрешить пользователю bob получить доступ к существующему сеансу X из командной строки, вы можете ввести эти команды в приглашении терминала:

  xauth nextract  - $ DISPLAY |  sudo -u bob xauth nmerge -  

Thius использует команду xauth для извлечения информации об аутентификации для текущего пользователя (первая часть команды перед ] | ), а затем объединить его в файл bob $ HOME / .Xauthority . Обратите внимание, что для этого требуется / etc / sudoers , чтобы вы могли запускать команды как пользователь bob (это значение по умолчанию, если вы являетесь пользователем admin на Ubuntu).

Затем вы можете переключиться на пользователя bob с помощью su -l .

В качестве альтернативы вы можете опубликовать эти отдельные команды:

  xauth nextract - $ DISPLAY & gt;  /tmp/xauth.temporary.file su -l bob -c 'xauth nmerge - & lt;  /tmp/xauth.temporary.file 'rm /tmp/xauth.temporary.file  

Обратите внимание:

1) временный файл должен иметь разрешения, чтобы пользователь может читать bob (что часто означает, что пользователь в системе может его прочитать);

2) есть временное окно, в течение которого любое пользователь, который может прочитать временный файл, может получить доступ к вашему X-дисплею.

Поэтому лучше использовать подход sudo , поскольку он не имеет этих недостатков.

3
ответ дан 13 August 2018 в 15:42
  • 1
    Я получил это для работы, но: su: должен быть запущен из терминала – z7sg 28 June 2011 в 18:34
  • 2
    @ z7sg: Да, конечно, он должен запускаться в терминале. Разве это не вопрос, о котором вы говорите? Как переключиться на другого пользователя в терминале и все еще иметь возможность запускать X-приложения с того же терминала? – Riccardo Murri 28 June 2011 в 18:44
  • 3
    @Ricardo Да, но su не нравится запускаться из трубы. Это проблема безопасности. – z7sg 28 June 2011 в 18:47
  • 4
    @ z7sg О, я вижу. Вы правы, но вы можете использовать sudo вместо su и не столкнуться с этой проблемой. Я отредактирую свой ответ с подробностями. – Riccardo Murri 28 June 2011 в 19:03
  • 5
    С моего рабочего стола, на котором работает xubuntu, я запускаю ssh -X otherhost. С этого хоста DISPLAY является «localhost: 10.0». Когда я пытаюсь извлечь xauth extract - $ DISPLAY, я получаю сообщение об ошибке, не найдено совпадений, файл полномочий & quot; - & quot; не написано – djb 27 November 2013 в 02:25

Другой способ, после выполнения xhost +:

dbus-launch gedit --sm-client-disable
0
ответ дан 25 May 2018 в 20:03

Другой способ, после выполнения xhost +:

dbus-launch gedit --sm-client-disable
0
ответ дан 25 July 2018 в 21:39

Другой способ, после выполнения xhost +:

dbus-launch gedit --sm-client-disable
0
ответ дан 2 August 2018 в 03:15

Другой способ, после выполнения xhost +:

dbus-launch gedit --sm-client-disable
0
ответ дан 4 August 2018 в 19:10

Другой способ, после выполнения xhost +:

dbus-launch gedit --sm-client-disable
0
ответ дан 6 August 2018 в 03:27

Другой способ, после выполнения xhost + :

  dbus-запуск gedit -sm-client-disable  
0
ответ дан 7 August 2018 в 21:14

Другой способ, после выполнения xhost + :

  dbus-запуск gedit -sm-client-disable  
0
ответ дан 10 August 2018 в 09:32

Другой способ, после выполнения xhost + :

  dbus-запуск gedit -sm-client-disable  
0
ответ дан 13 August 2018 в 15:42

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

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