我是 Linux 新手,正在学习如何添加新用户

我是 Linux 新手,正在学习如何添加新用户

我正在尝试创建一个用户,其名字和姓氏以及主目录位于Users/username,具有到期日期,处于非活动状态,并且在 DKEL_dir 中具有默认 UID 和 GID /etc/skel2。这是我在 CentOS 上运行的:

sudo useradd -m -d /Users/username -s /bin/default/useradd -e $(date. -d "2 days ago" "+%Y-%m-%d") -f -k /etc/skel2 Scott walker

我得到的结果是:

useradd:invalid numeric argument '-k'

答案1

我真的不知道为什么您想要将其放在/Users非标准目录中。您绝对确定您想要这样吗?在 Linux 系统上,主目录通常位于 下/home,我只在 macOS 上看到过/Users,或者有时在有集中式服务器处理用户的情况下看到过。

不管怎样,假设你确实想要它/Users,第一个问题是-f需要一个参数。从man useradd

       -f, --inactive INACTIVE
           defines the number of days after the password exceeded its maximum
           age where the user is expected to replace this password. The value
           is stored in the shadow password file. An input of 0 will disable
           an expired password with no delay. An input of -1 will blank the
           respective field in the shadow password file. See shadow(5)for
           more information.

           If not specified, useradd will use the default inactivity period
           specified by the INACTIVE variable in /etc/default/useradd, or -1
           by default.

因此,-f设置密码到期日期结束后用户将处于非活动状态的天数。但是,您在此处给出的值无效,因为您已写入-f -k,因此-k被读取为赋予 的值-f。要使用户处于非活动状态,请指定过去的到期日期,就像您所做的那样,然后直接使用-f 0以使密码立即到期。

下一个问题是登录名不能包含空格,因此您不能使用Scott Walker.要使用 设置名字和姓氏useradd,您需要-c--comment选项。再次,来自man useradd

       -c, --comment COMMENT
           Any text string. It is generally a short description of the
           account, and is currently used as the field for the user's full
           name.

接下来,-s用于定义用户的 shell,并且/bin/default/useradd不是 shell,它甚至不应该存在,因为不应该有/bin/default目录(或 中的任何子目录/bin)。我不知道你想要什么,但不包括-s将默认为系统的默认 shell。所以,把所有这些放在一起:

sudo useradd -m -d /Users/scott  \
   -e $(date -d "2 days ago" "+%Y-%m-%d") \
   -f -1 \
   -k /etc/skel2 \
   -c "Scott Walker" \
   scott

这将创建一个名为 的用户scott,其全名Scott Walker、主目录/Users/scott、到期日期为 2 天前,非活动日期为昨天。

欲了解更多详情,请参阅CentOS 官方文档

答案2

尝试使用 -f 标志指定 0 或 -1。如果没有 -f 标志,useradd 将使用 /etc/default/useradd 中“INACTIVE”变量中配置的任何内容,默认情况下为 -1。绝对建议在生产环境中根据您的喜好编辑 /etc/default/useradd conf 文件,以便每个新帐户都以相同的基本“shell”启动。

从联机帮助页:

> -f, --inactive INACTIVE
>        The number of days after a password expires until the account is permanently disabled. A value of 0
>        disables the account as soon as the password has expired, and a value of -1 disables the feature.

我通常只使用 useradd 创建用户的基本 shell,然后修改组以及与帐户关联的所有 .conf 文件。不过,我完全赞成使用所有功能!有太多的胖手指变量,我不想承担风险。

相关内容