设置没有特定工作目录的系统用户的主目录时的最佳实践是什么。
我经常需要创建用户来运行特定的二进制文件或脚本。假设我的二进制文件位于 /usr/bin 中,并且我的用户只能由我的 init 脚本使用来运行该二进制文件,我可以简单地运行:
useradd --no-create-home
或者在 /var、/tmp 或其他目录中指定目录更安全?
答案1
您可以创建类似的内容/var/empty
并将其用于所有系统用户,或者仅指定类似的内容/dev/null
作为他们的主目录。我将后者用于仅运行一个二进制文件(通常是服务)的系统用户。如果程序想要存储某些内容,我会指定程序名称的/srv/app
位置app
并为其创建目录。
如果像这样的程序useradd
要求您指定主目录,请指定/var/empty
并创建该目录为 root:root 0755。否则,只需指定一些无效但肯定存在的内容,无论是文件还是目录。它还建议指定 a/bin/false
作为登录 shell,尽管它很容易被覆盖。
或者只是指定/
.不管他们的 PWD 指向哪里,如果你不希望他们写东西,那么 in/
就是正常的,就像 in 一样/var/empty
。