如何限制用户更改壁纸?


11

我不希望我的用户更改系统墙纸。如何锁定墙纸?

更新资料

  • 用户通过右键单击图片并选择设置为墙纸来更改墙纸。如何限制这种行为?

  • 是否可以从外观首选项中删除“背景”选项卡?如果是,怎么办?

在此处输入图片说明


确定,因此您希望它们能够打开图像但不能将其设置为墙纸吗?另外,他们是否需要访问“设置”(gnome-control-center)?
ish 2012年

@izx是,他们需要访问设置,但不能将其设置为墙纸。
karthick87 2012年

ubuntu 10.10和gnome经典桌面环境。
karthick87 2012年

@ karthick87-背景选项卡是由/usr/share/gnome-control-center/ui/appearance.ui绘制的(在该文件中搜索“背景”)...。到目前为止,要编辑哪些位以隐藏标签。有空的时候我会再深入一点。谢谢。
fossfreedom

@ karthick87-好的-不是完全删除选项卡-但是更新了我对此选项卡功能的回答,不执行任何操作。希望这可以帮助。
fossfreedom

Answers:


5

eog(侏儒之眼)

11.04和以前版本的ubuntu

当您提到可以右键单击图像并将其设置为墙纸时,此答案假设您的意思是-将jpeg图像打开到eog,右键单击并选择“设置为桌面背景”。

在此处输入图片说明

有了这个答案,您可以删除此选项:

在此处输入图片说明

考虑到这一假设,您可以通过直接编辑源代码(如果要分发软件包)或在每个客户端上修改GTK窗口数据来删除菜单选项和右键单击选项。

解决方案1-编辑GTK窗口数据

首先备份GTK窗口数据:

sudo cp /usr/share/eog/eog-ui.xml ~/
gksudo gedit /usr/share/eog/eog-ui.xml

现在搜索“墙纸”-删除包含该关键字的每一行并保存。

要还原更改:

sudo cp ~/eog-ui.xml /usr/share/eog

解决方案2-分发Deb程序包

这可以通过以下配方完成:

apt-get source eog
sudo apt-get build-dep eog
sudo apt-get install devscripts

如果要求配置您的邮件-选择不配置

cd eog-2*/data
gedit eog-ui.xml

现在搜索“墙纸”-删除包含该关键字的每一行。

保存。

cd ..
gedit debian/changelog

添加+ppakarthick到第一行,以便它显示为:

eog (2.32.1-0ubuntu2+ppakarthick) natty; urgency=low

debuild -us -uc
cd ..
sudo dpkg -i eog_*.deb

注意-仅安装一个deb软件包-32位或64位,具体取决于您安装的ubuntu体系结构。另一个deb的产物是调试包和开发包,您都可以忽略它们。

要还原更改:

sudo apt-get purge eog
sudo apt-get install eog

这将删除完整的eog程序包。然后,第二个命令将从当前eog软件包的存储库中重新下载。

注意-它可能要删除meta包ubuntu-desktop。这样做的唯一影响是,如果您打算升级到Natty。如果要升级,只需ubuntu-desktop在升级前安装即可。

侏儒控制中心的背景标签

该选项卡的GTK Window数据在文件中,/usr/share/gnome-control-center/ui/appearance.ui但是我没有在此文件中找到一个方便的位置,您可以隐藏背景选项卡本身。

在此处输入图片说明

更改源代码后-您可以获取背景标签及其按钮,使其既不显示墙纸,又在单击按钮时不执行任何操作。

此解决方案与上面的解决方案2非常相似。

apt-get source gnome-control-center
sudo apt-get build-dep gnome-control-center
sudo apt-get install devscripts

如果要求配置您的邮件-选择不配置

cd gnome*/capplets/appearance
gedit appearance-desktop.c

现在寻找以下功能并添加return;如下所示:

void
desktop_init (AppearanceData *data,
          const gchar **uris)
{
  GtkWidget *add_button, *w;
  GtkCellRenderer *cr;
  char *url;

  data->wp_update_gconf = TRUE;

  data->wp_uris = NULL;

  return;

保存。

cd ../..
gedit debian/changelog

添加+ppakarthick到第一行,以便它显示为:

gnome-control-center (1:2.30.1-0ubuntu2+ppakarthick) lucid-proposed; urgency=low

debuild -us -uc
cd ..
sudo dpkg -i capplets*.deb
sudo dpkg -i libgnome-window-settings1*.deb
sudo dpkg -i gnome-control-center_*.deb

要还原更改:

sudo apt-get purge gnome-control-center libgnome-window-settings1 capplets-data
sudo apt-get install ubuntu_desktop

这将删除完整的gnome-control-center软件包和其他一些软件包。然后,第二个命令将从存储库中重新下载先前已删除的所有软件包。


上的错误debuild -us -uc以下是错误pastebin.ubuntu.com/1040147
karthick87

应该已经安装的那些“不能满足的依赖”的每一个你这么做的时候sudo apt-get build-dep gnome-control-center-如果你安装这些单独如发生了什么sudo apt-get install libxss-dev以及sudo apt-get install libgnome-menu-dev等等等等?
fossfreedom

7

有两种方法,我知道的:

1.以root身份运行gconf编辑:gksudo gconf-editor。在左窗格中找到/ desktop / gnome / background。在右侧面板上,找到picture_filename,右键单击并选择Set as Mandatory

2.另一种方法是简单地阻止普通用户通过运行(以root用户身份)执行壁纸更换程序:chmod 744 /usr/bin/gnome-appearance-properties


gconf编辑是我想要的。是否可以Set as Mandatory从终端设置该选项?这样我就可以制作脚本并在所有主机中执行它。
karthick87

一种可能性是用户打开墙纸并右键单击并设置为墙纸应用墙纸。有什么办法限制这个吗?
karthick87 2012年

7

马克的答案的命令行版本为:

sudo gconftool-2 --direct --config-source xml:readwrite:/etc/gconf/gconf.xml.mandatory --type string --set /desktop/gnome/background/picture_filename "/usr/share/backgrounds/Tri_Narwhal_by_momez.jpg"

我已经做到了,但是如何还原呢?
karthick87

0

我找到了一种在每次登录时轻松设置墙纸(桌面背景)的方法。使用以下命令在“启动应用程序”中创建一个新的登录程序。

gsettings set org.gnome.desktop.background picture-uri "file:///usr/share/backgrounds/edubuntu_default.png"

当然,您可以简单地通过将“ edubuntu_default.png”替换为图像来指定任何图像。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.