用户 nobody 的主目录 - Ubuntu 20.04

用户 nobody 的主目录 - Ubuntu 20.04

我发现 Ubuntu 18.04 和 Ubuntu 20.04 之间用户“nobody”的行为存在差异。

在两个版本(18.04 和 20.04)中,用户 nobody 都配置为:

nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin

在 18.04 中,对于 crontab 应用程序,nobody 的主目录将被定义为HOME=/。在 20.04 中,crontab 应用程序将报告 nobody 的主目录不存在,例如

Failed to create secure directory (/nonexistent/.config/pulse): No such file or directory.

这是另一个例子:

Ubuntu 18.04:

su - nobody
No directory, logging in with HOME=/
This account is currently not available.

Ubuntu 20.04:

su - nobody
su: warning: cannot change directory to /nonexistent: No such file or directory
This account is currently not available.

我猜想在 20.04 中没有为未定义有效主目录的用户提供默认定义。我们如何修复 Ubuntu 20.04,使其行为类似于 18.04(无目录,使用 HOME=/ 登录)。

答案1

我不知道如何让 Ubuntu 20.04su表现得像 Ubuntu 18.04 su

不同之处在于,在 Ubuntu 20.04/Focal 中,它su由软件包提供util-linux。在 Ubuntu 18.04/Bionic 中,su它由软件包提供login(从源软件包构建shadow)。

root@ubuntu:~# lsb_release -r
Release:        18.04
root@ubuntu:~# dpkg -S /bin/su
login: /bin/su
root@ubuntu:~# lsb_release -r
Release:        20.04
root@ubuntu:~# dpkg -S /bin/su
util-linux: /bin/su

一个关键的实现差异似乎是对 的DEFAULT_HOME支持/etc/login.defsBionic 的手册页su在其配置部分

       DEFAULT_HOME (boolean)
           Indicate if login is allowed if we can't cd to the home directory. Default is no.

           If set to yes, the user will login in the root (/) directory if it is not possible to
           cd to her home directory.

Focal 版本的手册页su没有提到DEFAULT_HOME

我在变更日志对于shadow

  * Use explicit --without-su configure flag
 -- Balint Reczey <[email protected]>  Fri, 20 Dec 2019 16:39:40 +0100
...
  * Drop Lintian override for su, it is not shipped in login anymore
 -- Balint Reczey <[email protected]>  Mon, 08 Jul 2019 15:58:46 +0200
...
  * Stop shipping su and break old util-linux version. (See #833256)
 -- Andreas Henriksson <[email protected]>  Fri, 27 Jul 2018 10:07:37 +0200

看起来这一变化是在 Debian 上游进行的,并由https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=833256。文中提到了缺乏DEFAULT_HOME支持,但并未将其视为阻碍因素。

相关内容