我公司的许多信息亭计算机都安装了使用 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
这个新创建的用户仅属于该组foo
(sudo -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
或您可以在网上找到的许多教程,这个例如。