我正在开发旨在实时运行的 Ubuntu/Mint 发行版。有多个帐户分为三个常规组:管理员、互联网和安全。
其他帐户是安全帐户。在任何情况下都不允许使用任何网络 Internet、打印机、蓝牙、WiFi 设备等。
我想做的是从内核中删除网络驱动程序,但这会禁用需要 Internet 的帐户。
为这些安全帐户禁用 Internet 的最低级别方法是什么?我正在寻找无法连接的解决方案。
如何将 upstart 脚本的输出发送到终端以便在 python 代码中找到回溯?过去只需一秒钟,我就可以在没有追溯的情况下做事。我不得不放置几个文件写入调用来跟踪错误。以前用回溯找到的东西现在变成了几分钟。这是悲惨的。这种情况已经持续了几个星期,我已经厌倦了。请一些人谈谈这个。我觉得我再次使用没有调试器的程序集。
在我问这个问题之前,请有人帮助为这两个看似相同但不同的术语规定 Ubuntu 定义(我已经给出了草稿。):
自动登录 - 当您启动计算机时,您可以直接登录您的帐户。
无密码登录- 当您在迎宾处选择一个用户并且您在没有输入密码提示的情况下登录。
现在,对于这个问题。我们如何通过命令行更改每个?所有当前支持的版本的解决方案是否相同?
对于那些宁愿使用 gui 方法的人来说,这是怎么做的?
在这张图片的底部是无密码登录的复选框。它说:
不要在登录时询问密码
如何使用命令行执行此操作?

我想创建一个启动潜力,它允许根据启动时的特定按键(或组合)加载不同的新贵/运行级别配置。如何使用 upstart 脚本检测按键事件?
如果有帮助,我在 10.04。
实现相同结果的替代方法是可以接受的,即,我如何使用 grub 来做到这一点?
为了帮助提供更多清晰度,我正在根据 Tuminoid 和 Lumbric 给出的两个答案创建一个分步说明。(请帮助我改进这一点,我对 Tuminoid 答案的解释不起作用。)
注意:每个人都必须有这样做的理由。为了赋予以下两个分步解决方案的意义,我将描述我希望在启动时决定新贵脚本的目的。
我正在制作名为 Surfer 的用于网上冲浪的 Live DVD。为了安全起见,我想禁用管理员帐户并保留一个非特权帐户来上网。我还想让自己和用户能够重新制作 Surfer,这样他们就可以添加更多在线应用程序并自定义他们的 Surfer 帐户,然后刻录他们自己的实时自定义 Surfer iso。所以我需要两个引导配置文件:Surfer 和 Remaster。一个用于安全在线冲浪,另一个用于重新制作和开发。
创建自定义 grub 文件
1. 要将自定义条目添加到 grub,请使用 gedit 打开此文件进行编辑:
gksudo gedit /etc/grub.d/40_custom
如果您在其中看到以下文本,您将拥有正确的文件:
#!/bin/sh
exec tail -n +3 $0
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# …Run Code Online (Sandbox Code Playgroud) 我有一个在桌面会话启动时启动的脚本。启动后第一个以图形方式登录的人将调用此脚本。我希望它调用一次,而不是每次有人登录时调用。如何让脚本只执行一次?
# one time script
start on desktop-session-start
stop on somebodystopme
script
...
end script
Run Code Online (Sandbox Code Playgroud) 我想运行允许我通过发送 Windows 事件与 gui 交互的脚本,例如:
Ubuntu 有什么可以做到这一点的吗?
iptables 似乎不想阻止用户。
我使用重新制作的 10.04 live 和 Firestarter 作为防火墙。除了更新、升级和为我的管理员用户 dev 添加此 iptable 行之外,我没有对发行版进行任何根本性更改:
sudo iptables -A OUTPUT -p all -m owner --uid-owner dev -j DROP
Run Code Online (Sandbox Code Playgroud)
我已经允许我的管理员 dev 作为另一个用户使用 Firefox:
gksudo -u browserUser /usr/bin/firefox
注意:这样做的目的是停止向管理员帐户开放浏览器脚本,而是使用没有权限的干净帐户作为代理。
现在,我测试一下 iptables 是否被阻塞,以防管理员不小心尝试连接而不使用其他用户。所以我直接尝试 Midori 浏览器:
/usr/bin/midori
Run Code Online (Sandbox Code Playgroud)
Midori 启动并连接到互联网。我很困惑。我的 iptables 条目似乎不起作用。
我添加了我重新制作的同一行:
sudo iptables -A OUTPUT -p all -m owner --uid-owner dev -j DROP
Run Code Online (Sandbox Code Playgroud)
我仍然没有被阻止。所以,我尝试重置表格:
sudo /etc/init.d/networking restart
Run Code Online (Sandbox Code Playgroud)
我得到输出:
* Reconfiguring network interfaces...
Ignoring unknown interface wlan0=wlan0.
Run Code Online (Sandbox Code Playgroud)
我再次尝试用 Midori 浏览器连接,我的 iptable 规则仍然被忽略。
发生了什么?
我有一个 python gtk 应用程序,我需要在用户登录时运行。即使 x 正在运行,我也无法启动任何 gui 应用程序。
当我登录 X 时,我从下面的 upstart 脚本中发出事件
guitest
Run Code Online (Sandbox Code Playgroud)
使用 initctl,我得到
initctl: Event failed
Run Code Online (Sandbox Code Playgroud)
这是我的脚本示例,除了我用我的应用程序替换了 gedit。如何修改此脚本以便 gedit 或我的 python gtk 应用程序将启动?
task
start on desktop-session-start or guitest
script
gedit
end script
Run Code Online (Sandbox Code Playgroud) upstart ×4
automation ×1
boot ×1
command-line ×1
console ×1
debug ×1
gdm ×1
iptables ×1
networking ×1
password ×1
scripts ×1