我正在使用下一个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-1
(PolicyKit 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
答案 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。