如何限制用户更换壁纸?

如何限制用户更换壁纸?

我不想让我的用户更改系统壁纸。如何锁定壁纸?

更新

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

  • 是否可以从“外观偏好设置”中删除“背景”选项卡?如果可以,该怎么做?

在此处输入图片描述

答案1

我知道有两种方法:

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

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

答案2

Mark 的答案的命令行版本是:

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"

答案3

eog(侏儒之眼)

Ubuntu 11.04 及之前版本

当您提到可以右键单击图像并将其设置为墙纸时,此答案假定您的意思是 - 将 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 包。

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

Gnome-控制中心背景标签

此选项卡的 GTK 窗口数据位于文件中,/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 软件包和一些其他软件包。然后,第二条命令将从存储库重新下载所有先前删除的软件包。

答案4

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

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

当然,您可以指定任何图像,只需将“edubuntu_default.png”替换为您的图像即可。

相关内容