在 Arch Linux 上的 Gnome 3.X 中创建来宾帐户

在 Arch Linux 上的 Gnome 3.X 中创建来宾帐户

我想要一个像 Ubuntu 中一样的访客帐户,它具有以下功能:

  1. 不需要密码即可登录
  2. /tmp每次都会创建一个没有数据的新主文件夹(如果可能的话)
  3. 用户注销后数据将被删除
  4. 用户无法使用sudo

我在 Arch Linux 上运行 Gnome 3.20

笔记:请不要关闭我的问题作为重复创建限制访问应用程序的访客帐户因为这个问题没有回答我的第二点和第三点

答案1

事实证明,使用 GDM 非常简单。我假设您正在使用 GDM,因为您也在使用 Gnome。首先,guest使用空白密码创建用户帐户:

sudo useradd -d /tmp/guest -p $(openssl passwd "") guest

openssl passwd "" 将返回空字符串的哈希值,从而将密码设置为空。

现在,您所需要的只是这两个脚本:

  • /etc/gdm/PostLogin/Default

这是在您登录后执行的,并将创建/tmp/$guestuser/tmp/guest默认情况下)目录并将默认文件复制到/etc/skel其中。要更改来宾用户的默认用户名,请guestuser在开始时设置为其他内容。

 <!-- language: lang-bash -->

    #!/bin/sh

    guestuser="guest"

    ## Set up guest user session
    if [ "$USER" = "$guestuser" ]; then
        mkdir /tmp/"$guestuser"
        cp /etc/skel/.* /tmp/"$guestuser"
        chown -R "$guestuser":"$guestuser" /tmp/"$guestuser"
    fi
    exit 0
  • /etc/gdm/PostSession/Default

此操作在您注销后执行,并将删除该/etc/$guestuser目录及其所有内容。确保guestuser在两个脚本中设置为相同的值。

 <!-- language: lang-bash -->

    #!/bin/sh

    guestuser="guest"

    ## Clear up the guest user session
    if [ "$USER" = "$guestuser" ]; then
        rm -rf /tmp/"$guestuser"
    fi

    exit 0

最后,使两个脚本可执行:

sudo chmod 755 /etc/gdm/PostLogin/Default  /etc/gdm/PostSession/Default

现在,只需注销,您就会看到您的新guest用户。您可以通过选择它并Enter在提示输入密码时点击来登录。用户guest将无法使用,sudo因为无论如何这是所有用户的默认设置。只有 中明确提到的用户/etc/sudoers或者是 中明确提到的组的成员sudoers(例如wheelsudo,具体取决于您的发行版)才能使用sudo


如果您使用的是最新版本的 GDM,当密码框为空时,它可能会禁用登录按钮。要解决此问题,您可以告诉 GDM 不要提示输入特定组的密码。需要注意的是,这也将绕过该组成员的会话选择菜单。如果你想这样做,你应该添加这一行一开始/etc/pam.d/gdm-password

auth sufficient pam_succeed_if.so user ingroup guest

答案2

你可以利用注销脚本。在那里,您可以删除访客帐户的主文件夹,并在注销时创建一个新文件夹。如有必要,您可以sudo通过访客帐户启用此功能visudo。添加yourguestacc ALL=(root) NOPASSWD: /path/to/script/recreating/the/home/folder。请参阅拱门维基了解更多信息。

相关内容