我正在尝试使用 将默认不活动期设置为 30 天sudo userdadd -D -f 30
。该命令没有给出任何错误,但是当我输入/usr/sbin/useradd -D | /bin/grep INACTIVE
以检查是否进行了更改时,我仍然得到 -1。
我去检查了一下/etc/default/useradd
,上面说不活跃=30,但是上面的 grep 命令仍然输出 INACTIVE -1。同样useradd -D
也输出 -1。
我猜想在 Ubuntu 系统(顺便说一下是 20.04)的某个地方,某些东西仍在将非活动期设置为 -1。有人能帮忙吗?
答案1
您在此处观察到的是,当由非特权用户执行时,useradd -D
无法读取该/etc/default/useradd
文件,因为它只能由以下用户读取root
:
$ ls -l /etc/default/useradd
-rw------- 1 root root 1195 Jun 22 14:43 /etc/default/useradd
相反,它会打印编译于来自 shadow 包文件的默认值src/useradd.c
:
/*
* These defaults are used if there is no defaults file.
*/
static gid_t def_group = 100;
static const char *def_gname = "other";
static const char *def_home = "/home";
static const char *def_shell = "";
static const char *def_template = SKEL_DIR;
static const char *def_create_mail_spool = "no";
static long def_inactive = -1;
static const char *def_expire = "";
所以你需要使用
sudo useradd -D | /bin/grep INACTIVE
反而。