O cliente do Dropbox que você está usando requer acesso a uma sessão X, que seu usuário não possui. Existe um CLI oficial do Dropbox que pode fazer o truque para você, mas a milhagem pode variar.
Eu quero deixar meu diretório do Dropbox protegido contra alterações inconscientes. Então eu fiz para o meu diretório e arquivos dentro das seguintes ações:
chown -R dropbox:dropbox Dropbox
A ideia é que eu trabalhe com um usuário comum, vamos chamar de USER. E eu começo o dropbox como usuário dropbox:
sudo -u dropbox dropbox start
Mas há um erro e não sei como lidar com isso:
Unable to access the X Display, is $DISPLAY set properly?
Como posso criar um novo usuário adequadamente, de maneira a atingir essa meta? Atualmente, os únicos arquivos de configuração no diretório /home/dropbox
são do diretório /etc/skel/
.
ATUALIZAÇÃO À sugestão de Eliah Kagan:
Não consigo iniciar o dropbox com o gksu. Quando estou tentando fazer isso, obtenho o seguinte:
gksu -u dropbox dropbox start -i
gksu: option requires an argument -- 'i'
Em usuário dropbox:
dropbox start -i
Starting Dropbox...No protocol specified
No protocol specified
/usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:57: GtkWarning: could not open display
warnings.warn(str(e), _gtk.Warning)
/usr/bin/dropbox:406: Warning: invalid (NULL) pointer instance
title = "Dropbox Installation")
/usr/bin/dropbox:406: Warning: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed
title = "Dropbox Installation")
/usr/bin/dropbox:414: GtkWarning: IA__gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
self.ok = ok = gtk.Button(stock=gtk.STOCK_OK)
/usr/bin/dropbox:414: Warning: g_object_get: assertion 'G_IS_OBJECT (object)' failed
self.ok = ok = gtk.Button(stock=gtk.STOCK_OK)
/usr/bin/dropbox:414: Warning: value "TRUE" of type 'gboolean' is invalid or out of range for property 'visible' of type 'gboolean'
self.ok = ok = gtk.Button(stock=gtk.STOCK_OK)
/usr/bin/dropbox:419: GtkWarning: IA__gtk_settings_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
cancel = gtk.Button(stock=gtk.STOCK_CANCEL)
/usr/bin/dropbox:419: Warning: g_object_get: assertion 'G_IS_OBJECT (object)' failed
cancel = gtk.Button(stock=gtk.STOCK_CANCEL)
/usr/bin/dropbox:419: Warning: value "TRUE" of type 'gboolean' is invalid or out of range for property 'visible' of type 'gboolean'
cancel = gtk.Button(stock=gtk.STOCK_CANCEL)
/usr/bin/dropbox:486: GtkWarning: Screen for GtkWindow not set; you must always set
a screen for a GtkWindow before using the window
dialog.show()
/usr/bin/dropbox:486: GtkWarning: IA__gdk_pango_context_get_for_screen: assertion 'GDK_IS_SCREEN (screen)' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_context_set_font_description: assertion 'context != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_context_set_base_dir: assertion 'context != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_context_set_language: assertion 'context != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_new: assertion 'context != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_set_text: assertion 'layout != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_set_attributes: assertion 'layout != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_set_alignment: assertion 'layout != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_set_ellipsize: assertion 'PANGO_IS_LAYOUT (layout)' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_set_single_paragraph_mode: assertion 'PANGO_IS_LAYOUT (layout)' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_set_width: assertion 'layout != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_get_extents: assertion 'layout != NULL' failed
dialog.show()
/usr/bin/dropbox:486: PangoWarning: pango_layout_set_wrap: assertion 'PANGO_IS_LAYOUT (layout)' failed
dialog.show()
/usr/bin/dropbox:486: GtkWarning: IA__gdk_screen_get_default_colormap: assertion 'GDK_IS_SCREEN (screen)' failed
dialog.show()
/usr/bin/dropbox:486: GtkWarning: IA__gdk_colormap_get_visual: assertion 'GDK_IS_COLORMAP (colormap)' failed
dialog.show()
/usr/bin/dropbox:486: GtkWarning: IA__gdk_screen_get_root_window: assertion 'GDK_IS_SCREEN (screen)' failed
dialog.show()
/usr/bin/dropbox:486: GtkWarning: IA__gdk_window_new: assertion 'GDK_IS_WINDOW (parent)' failed
dialog.show()
Segmentation fault
Esses erros dizem que algo está errado com a configuração do ambiente gráfico do usuário.
O cliente do Dropbox que você está usando requer acesso a uma sessão X, que seu usuário não possui. Existe um CLI oficial do Dropbox que pode fazer o truque para você, mas a milhagem pode variar.
Como Bryan Agee disse, dropbox
é um programa gráfico, então você não deve usar sudo
diretamente para executá-lo como root.
No entanto, você não deve ter problemas para executar programas graficamente como outro usuário, desde que faça corretamente:
gksu -u dropbox dropbox start
Para ficar claro, isso deve funcionar , onde sudo -u ...
não funciona. (Evitar a criação de root
-owned - ou neste caso, dropbox
-owned - arquivos de configuração no seu diretório inicial não é a única diferença entre gksu
/ gksudo
e sudo
; o primeiro também manipula .Xauthority
corretamente, o que provavelmente está impedindo você de "acessar [o] Monitor X".)
Tags configuration dropbox users