对群组和添加用户感到困惑

对群组和添加用户感到困惑

我已经编写了一个脚本来添加 chrooted sFTP 用户。

useradd 命令是:

sudo useradd -Ng sftponly -ms /bin/false "$USER"

它有效吗?

groups $USER
$USER : sftponly

是的,太棒了!

然后我查看了 /etc/group,发现 sftponly 中没有 $USER。我尝试登录和退出(应该不需要 - 我不是 $USER),但没有任何变化。(对于 $USER == yoko):

ftp:x:114:
sftponly:x:1003:george,john,paul,ringo
incron:x:115:

为什么在使用组时我在正确的组中看到 $USER,但在 /etc/group 中却看不到?

答案1

您不应使用useradd,而应使用adduser。但是,如果您坚持使用useradd,则应执行以下操作:

sudo useradd -Ng sftponly -G sftponly -ms /bin/false "$USER"

-g选项仅更改/etc/passwd文件,使“sftponly”成为用户的主要(登录)组 ID。-G 选项会修改/etc/groups

答案2

来自useradd 手册页

-g, --gid GROUP
    The group name or number of the user's initial login group.

用户的初始登录组是文件中第 4 个字段的组/etc/passwd。如果您在其中搜索“yoko”,/etc/passwd则会找到类似以下内容的内容:

yoko:x:<yoko's UID>:1003::<yoko's home>:/bin/false

其中1003是组的 GID sftponly

相关内容