系统用户的主目录

系统用户的主目录

设置没有特定工作目录的系统用户的主目录时的最佳实践是什么。

我经常需要创建用户来运行特定的二进制文件或脚本。假设我的二进制文件位于 /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

相关内容