polkit-gnome-authentication-agent-1无法在没有特权标志的docker中启动

时间:2017-02-24 13:43:02

标签: docker ubuntu-16.04 centos6 apparmor

我正在使用下一个docker gui容器:

FROM centos:6

RUN yum -y install epel-release
RUN yum -y groupinstall "X Window System" "Desktop" "General Purpose Desktop"
RUN yum -y install openssh-server x2goserver x2goserver-xsession x2goserver-fmbindings x2goserver-printing pwgen
RUN yum reinstall glibc-common # fix some issues
RUN chkconfig sshd on
RUN sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config
RUN sed -i "s/#PermitRootLogin/PermitRootLogin/g" /etc/ssh/sshd_config
RUN adduser vagrant
RUN echo 'root:vagrant' | chpasswd
RUN echo 'vagrant:vagrant' | chpasswd
RUN service sshd restart
RUN echo '#!/bin/bash' > /run.sh
RUN echo 'mkdir -p /tmp/.X11-unix' >> /run.sh
RUN echo 'chmod 1777 /tmp/.X11-unix' >> /run.sh
RUN echo 'service messagebus start' >> /run.sh
RUN echo 'exec /usr/sbin/sshd -D' >> /run.sh
RUN chmod +x /run.sh
EXPOSE 22
CMD ["/run.sh"]

当我在没有--privileged标志的情况下运行它时,启动应用程序中的polkit-gnome-authentication-agent-1PolicyKit Authentication Agent)无法启动,而某些阶段需要root权限的应用程序(例如{{1} } - gpk-application菜单项)无法获得这些权限。

Add/Remove Software

我不想使用$ /usr/libexec/polkit-gnome-authentication-agent-1 (polkit-gnome-authentication-agent-1:772): polkit-gnome-1-WARNING **: Unable to determine the session we are in: Remote Exception invoking org.freedesktop.ConsoleKit.Manager.GetSessionForUnixProcess() on /org/freedesktop/ConsoleKit/Manager at name org.freedesktop.ConsoleKit: org.freedesktop.ConsoleKit.Manager.GeneralError: Unable to lookup session information for process '772' org.freedesktop.ConsoleKit.Manager.GeneralError Unable%20to%20lookup%20session%20information%20for%20process%20%27772%27 标记,因此我修改此类应用程序的桌面文件,添加--privileged作为解决方法:

beesu

提前询问root密码(即使您在此特定运行中不需要)并触发其他警告,即不应从root运行gpk-application。

是否有更好的解决方法(理想情况下允许RUN yum -y install beesu RUN sed -i "s/Exec=gpk-application/Exec=beesu gpk-application/g" /usr/share/applications/gpk-application.desktop 成功运行)?

我的docker主机是ESXi 6.5上的Ubuntu 16.04 VM,启用了apparmor。在我看来,我需要启用一些apparmor功能,但我没有在/var/log/kern.log中看到apparmor审计记录。

polkit-gnome-authentication-agent-1

1 个答案:

答案 0 :(得分:1)

我仍然没有看到apparmor审核记录,但发现将--cap-add=SYS_PTRACE添加到docker run可以解决问题,polkit-gnome-authentication-agent-1现在正在运行,以及在开始正常工作后请求root权限的应用程序

每次连接后,我必须使用另一种解决方法来禁用更新程序请求root密码:

RUN echo 'X-GNOME-Autostart-enabled=false' >> /etc/xdg/autostart/gpk-update-icon.desktop

我{app} asked separate question关于apparmor。