如何仅从登录屏幕禁用访客会话?

Geo*_*rge 9 guest-session login lightdm 12.04

我确实想:

登录到我的管理员帐户后,能够从用户菜单中选择访客会话,以防有人需要使用我的计算机。

我不想

有人能够打开我的计算机并登录到访客会话

我听说过一种方法,其中一个编辑/etc/lightdm/lightdm.conf要包含allow-guest=false(然后重新启动 lig​​htdm)

与该方法的问题是,我特别希望完全禁用来宾帐户。我只想禁用从登录菜单访问它,同时仍然保留(在登录到我的管理员帐户时)手动启动访客会话的能力。

有这样的修复吗?我似乎无法通过搜索引擎找到一个(而且很难说要搜索)

编辑:是的。Ubuntu 12.04 LTS(桌面),最新版本。

由于它的运作方式,它需要是一个访客帐户。我希望能够允许其他人使用我可以从我的主帐户轻松启动的访客帐户,因为它的功能(没有密码,并且在会话结束时其上的所有内容都将被删除),而无需公开密码 -任何打开我电脑的人都可以使用免费帐户。

虽然如果我可以通过标准的有限帐户实现这一点,那也是可以接受的,因为我可以更改大多数软件的设置而不保存任何内容。当我登录到我的主帐户时,它必须是无密码的并且可以通过用户列表访问,但从主登录屏幕不可见/无法访问

这是我提到的代码。如您所见,结构非常相似,但存在一些关键差异。没有auto required pam_unix.so,链接说要添加一行,auth optional pam_permit.so但我已经有了auth required pam_permit.so和其他一些小区别。

#%PAM-1.0
auth    requisite       pam_nologin.so
auth    required        pam_env.so readenv=1
auth    required        pam_env.so readenv=1 envfile=/etc/default/locale
auth    required        pam_permit.so
@include common-account
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so close
session required        pam_limits.so
@include common-session
session [success=ok ignore=ignore module_unknown=ignore default=bad] pam_selinux.so open
@include common-password
Run Code Online (Sandbox Code Playgroud)

ubu*_*FTW 2

我现在有一个与 PAM 相关的开放问题,所以我可以根据经验说,修改任何 PAM 模块都可以快速获得针对您正在使用的 Ubuntu 版本的特定信息。适用于 Precise 的方法可能并不总是适用于 Quantal 等。

也就是说,您的问题的答案可能不需要对 PAM 模块进行任何更改。事实上,你几乎已经拥有了。

将此行添加到底部/etc/lightdm/lightdm.conf

greeter-allow-guest=false
Run Code Online (Sandbox Code Playgroud)

我的lightdm.conf看起来像这样:

[SeatDefaults]<br>
greeter-session=unity-greeter<br>
user-session=ubuntu<br>
greeter-allow-guest=false<br>
Run Code Online (Sandbox Code Playgroud)

现在重新启动您的机器。

在 12.10 上,我测试了这会将 Guest 从用户菜单中删除,但在登录另一个帐户后将其保留为手动选项。

很确定这在 12.04 上也适用。


dav*_*id6 1

可能的解决方案:(未测试)

基于ArchLinux::LightDM

  • 启用访客
  • 通过调整 PAM 行为来阻止 Guest 成功登录。

(请参阅启用自动登录,但颠倒建议的逻辑)