如何阻止某些应用程序在某些帐户上打开(例如:阻止帐户 John 打开 Firefox 或 Gimp)。假设这是针对 GUI 而不是终端,并且仅适用于特定用户,因此例如用户 X 可以打开 Gimp 但不能打开 Firefox,用户 Z 可以打开软件中心但不能打开 VirtualBox。
对于 Ubuntu 的新用户,有什么好的和简单的方法可以做到这一点。
Jac*_*ijm 15
如果该阻止旨在阻止经验不足的用户使用某些应用程序,则编辑(本地副本)应用程序的桌面文件(如 中所述[1])可能是最快和最简单的方法。
可以做一些额外的事情来创建额外的障碍和/或防止用户太容易发现我们所做的事情来阻止应用程序([2]和[3])。
该设置不适用于有经验用户的无人值守情况。在普通用户的“家庭”情况下,在许多情况下就足够了。
将应用程序的桌面文件复制/usr/share/applications到~/.local/share/applications:
cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
Run Code Online (Sandbox Code Playgroud)编辑文件:通过将它拖到打开的 gedit 窗口上,用 gedit 打开它(同时你仍然可以:))。
更换线
Exec=gedit %U
Run Code Online (Sandbox Code Playgroud)
经过:
Exec=zenity --info --text 'You are not allowed to use this application'
Run Code Online (Sandbox Code Playgroud)删除(可能的)快捷方式,以防止从快捷方式之一启动应用程序:
删除该行(对于 gedit 示例):
Actions=Window;Document;
Run Code Online (Sandbox Code Playgroud)
和部分(S)喜欢:
[Desktop Action Window]
Name=Open a New Window
Exec=gedit --new-window
OnlyShowIn=Unity;
Run Code Online (Sandbox Code Playgroud)从那时起(注销/登录后),如果用户尝试从 Dash 打开 gedit 或尝试打开链接到应用程序的文件,他或她将看到此消息:

从 Dash 隐藏应用程序(可选措施)
在我们进行上述更改后,在gedit.desktop文件仍然打开的情况下,我们可以添加一行:
NoDisplay=true
Run Code Online (Sandbox Code Playgroud)
通过添加这一行,gedit甚至不会出现在 Dash 中。
撤消
要撤消,只需.desktop从中删除本地文件~/.local/share/applications
虽然编辑.desktop文件后,应用程序将不再出现在 Dash 中,但 Dash搜索仍会显示我们新创建的gedit.desktop文件,这可能会无意中提示如何转义应用程序块。

为了避免这种情况,我们应该~/.local/share/applications从 Dash 搜索中排除该目录并清除搜索历史。
打开系统设置>“安全和隐私”>“文件和应用程序”(选项卡)。将目录添加~/.local/share/applications到列表中以从搜索中排除。

重定向gedit命令(1)
编辑.desktop文件会阻止从 Dash 使用应用程序,但如果用户知道AltF2组合和运行应用程序的命令,他或她仍然可以启动应用程序,就像使用终端一样。一个不错且易于设置的额外措施是创建(如果尚不存在)目录~/bin并在目录中创建一个小脚本:
cp /usr/share/applications/gedit.desktop ~/.local/share/applications/gedit.desktop
Run Code Online (Sandbox Code Playgroud)
使其可执行并以应用程序命名;gedit在这种情况下。
由于~/binis in PATH,运行该命令将调用脚本而不是“真实”gedit应用程序。结果,You are not allowed to use this application将出现相同的 -消息
重定向gedit命令(2)
重定向应用程序命令的另一种方法(效果更有限,请参阅注释)是向.bashrc文件添加别名:
gedit ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
添加行(gedit 示例):
alias gedit='zenity --info --text "You are not allowed to use this application"'
Run Code Online (Sandbox Code Playgroud)
注意:这仅用作额外措施,因为它只会阻止直接从终端调用应用程序。.txt然而,双击(例如)文件仍将打开应用程序。
使终端的使用变得困难或根本不可能
为了防止使用终端,您还可以对gnome-terminal.desktop- 文件执行与 中相同的技巧[1],和/或更改默认快捷键组合以运行终端(系统设置>“键盘”>“快捷方式”>“启动器” )
.desktop文件编辑版本的小工具(如 1.)如果您使用参数block或unblock(您必须使用任何一个运行它)运行下面的脚本,您将看到一个包含(全局)桌面文件的列表,代表您安装的应用程序:

选择一个,您的应用程序被阻止或解除阻止,取决于您运行它的参数。
笔记
您可能需要注销/登录才能使其工作。
剧本
Exec=gedit %U
Run Code Online (Sandbox Code Playgroud)
将脚本复制到一个空文件中,将其另存为block_apps.py并通过以下任一方式运行它:
python3 /path/to/block_apps.py block
Run Code Online (Sandbox Code Playgroud)
或者
python3 /path/to/block_apps.py unblock
Run Code Online (Sandbox Code Playgroud)
也可以通过在后台运行脚本来阻止某些应用程序。如果运行“禁止的”应用程序之一,脚本将必须采取某些操作。
下面的脚本提供了一种灵活的方式来阻止用户定义的应用程序。它使用一个简单的命令运行,以禁止的应用程序作为参数,例如(假设您使脚本可执行):
/path/to/block_apps.py firefox gedit gnome-terminal
Run Code Online (Sandbox Code Playgroud)
像这样阻塞应用程序的优点是它很灵活;即使在一个帐户中,也可以使用不同的设置,只需使用其他应用程序作为参数即可。
它能做什么
通过取消注释其中一行:
# action = "xrandr --output "+screen+" --brightness 0"
Run Code Online (Sandbox Code Playgroud)
或者
# action = "xrandr --output "+screen+" --rotate inverted"
Run Code Online (Sandbox Code Playgroud)
脚本要么:
使屏幕变黑 ( action = "xrandr --output "+screen+" --brightness 0"):

或者把它颠倒(action = "xrandr --output "+screen+" --rotate inverted"): (
?谁说团结不允许把发射器在右边)

剧本
Exec=zenity --info --text 'You are not allowed to use this application'
Run Code Online (Sandbox Code Playgroud)
如何使用
block_apps.py,使其可执行通过命令运行它:
/path/to/block_apps.py <application_1> <application_2> <application_3> etc...
Run Code Online (Sandbox Code Playgroud)重要的
要杀死的block_apps.py脚本,并恢复“正常”的设置,使用以下(使它成为一个快捷键组合获得)的脚本:
Actions=Window;Document;
Run Code Online (Sandbox Code Playgroud)
与脚本一样,将其复制到一个空文件中,将其另存为kill_blockapps.py,使其可执行并通过以下方式运行:
/path/to/kill_blockapps.py
Run Code Online (Sandbox Code Playgroud)
您可能希望在快捷键下使用这个:选择:系统设置 > “键盘” > “快捷方式” > “自定义快捷方式”。单击“+”并添加如上的命令。
| 归档时间: |
|
| 查看次数: |
7060 次 |
| 最近记录: |