是否可以阻止用户在 Ubuntu 12.04 LTS 中打开/保存文件对话框

是否可以阻止用户在 Ubuntu 12.04 LTS 中打开/保存文件对话框

我公司的许多信息亭计算机都安装了使用 Firefox 作为前端用户界面的应用程序。用户只需停留在 Firefox 上即可完成工作。但是,当他们单击 Firefox 的“文件”菜单并单击“打开”或“另存为”时,文件对话框就会出现,这样他们就可以浏览文件系统,包括我的后端应用程序文件和映射的网络驱动器,出于安全原因,我真的想隐藏它们。我找到了使用 .hidden 文件在 nautilus 中隐藏它们的方法,但它在文件/保存对话框中不起作用。

由于我对 Linux 还很陌生,我为他们创建了标准用户账户,我认为所有用户默认都具有文件系统的读取权限(他们是否需要它来使操作系统和应用程序正常运行?)那么我不能从他们那里拿走读取权限吗?如果我错了,请纠正我。

那么我可以阻止用户打开文件对话框吗?我现在能想到的一种方法就是,是否有任何文件系统或库文件可以处理这些文件/保存对话框?这样我就可以编辑它们的权限,而用户将得到权限被拒绝的对话框。

例如,在下面的情况下

http://ubuntuforums.org/showthread.php?t=1363852

他们删除了文件:/usr/lib/gtk-2.0/2.10.0/printbackends/libprintbackend-file.so 以禁用“打印到文件”功能。

另一个案例

https://answers.launchpad.net/ubuntu/+source/nautilus/+question/186540

他们编辑文件夹的权限:/usr/lib/gvfs/gvfsd-smb-browse,以阻止用户点击 Nautilus 中的“浏览网络”按钮。

如果不可能,有没有建议在文件对话框中隐藏文件系统和映射网络文件夹?请提供帮助,我们将不胜感激。提前致谢。

答案1

最简单的方法是使用权限。Linux 和类似系统上的文件和目录权限有 3 个基本级别,即文件所有者的权限、其组和其他所有人的权限。

例如,在我的系统上,我创建了一个名为foo

sudo adduser foo

这个新创建的用户仅属于该组foosudo -u foo让我以用户身份运行命令foo,在本例中,groups列出了用户所属的组):

$ sudo -u foo groups
foo

因此,让我们创建一个文件:

sudo -u foo touch /tmp/file

并查看其权限:

$ ls -l /tmp/file 
-rw-r--r-- 1 foo foo 0 Apr  2 17:49 /tmp/file
---------    --- --- =================================> The file's group
 |  |  |      |=======================================> The file's owner
 |  |  ------> Others (everyone else): read only
 |  |--------> Group permissions: read only
 |-----------> Owner permissions: read/write

因此,如上例所示,一个文件有 3 个权限级别。由于该文件是以用户身份创建的foo,因此我的普通用户terdon无法对其进行写入:

$ echo "hello" > /tmp/file
bash: /tmp/file: Permission denied

为了列出目录的内容,用户需要权限,为了搬进去,他们需要执行权限。因此,要隐藏目录的内容,只需删除读取和执行权限。举/media个例子:

$ ls -dl /media
drwxr-xr-x 9 root root 4096 Mar 25 20:15 /media

如上所示,所有者、组和其他所有人都对该目录具有执行权限(这就是其含义x)。我们想要做的是,只有所有者和组成员才能访问它,因此我们需要从“其他”字段中删除读取和执行权限:

$ sudo chmod o-rx /media
$ ls -dl /media
drwxr-x--- 9 root root 4096 Mar 25 20:15 /media

正如您上面看到的,/media现在在“其他”字段中没有执行权限,这意味着只有组成员root和用户root自己才能访问它。

所有这些意味着,您可以创建用户并对其进行微调,使其只能访问特定文件。但是,非常小心权限,更改系统文件夹的权限非常危险,不应这样做。相反,如果您有想要隐藏的特定目录,只需更改其权限并保留系统目录。因此,在您的例子中,如果您在 /backend an d your mapped network drive somewhere in/media 中有后端文件,只需运行此命令即可阻止对这些目录的读取访问:

sudo chmod o-rx /media /foo/

有关如何设置权限的更多信息,请参阅man chmod或您可以在网上找到的许多教程,这个例如。

相关内容