![如何限制用户更换壁纸?](https://linux22.com/image/808816/%E5%A6%82%E4%BD%95%E9%99%90%E5%88%B6%E7%94%A8%E6%88%B7%E6%9B%B4%E6%8D%A2%E5%A3%81%E7%BA%B8%EF%BC%9F.png)
我不想让我的用户更改系统壁纸。如何锁定壁纸?
更新
用户通过右键单击图片并选择设置为壁纸来更改壁纸。如何限制此行为?
是否可以从“外观偏好设置”中删除“背景”选项卡?如果可以,该怎么做?
答案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”替换为您的图像即可。