Linux 中的 useradd 命令没有按预期工作?

Linux 中的 useradd 命令没有按预期工作?

我尝试使用以下命令更改 Ubuntu 14.04 中的默认 shell

user@MyUbuntu:~$ sudo useradd -D -s /bin/tcsh
user@MyUbuntu:~$ sudo useradd -D 
GROUP=101
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no

为什么默认值没有更新。我重新启动电脑,但值仍然没有更新。为什么?

更新我不想添加新用户,我想使用 useradd 命令更新一些默认值

答案1

使用adduser命令。adduser 命令是 useradd 的 Perl 实现(C 二进制文件)。

$ cat /usr/sbin/adduser | grep useradd
    my $useradd = &which('useradd');
        &systemcall($useradd, '--extrausers', '-d', $home_dir, '-g', $ingroup_name, '-s',
        &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
    my $useradd = &which('useradd');
        &systemcall($useradd, '--extrausers', '-d', $home_dir, '-g', $ingroup_name, '-s',
        &systemcall($useradd, '-d', $home_dir, '-g', $ingroup_name, '-s',
    # useradd without -p has left the account disabled (password string is '!')

adduser 负责处理所有事情,即用户是否已添加到/etc/passwd文件中。

答案2

对我来说,变化正在发生,我认为我做的和你一样。

gennu@gennu:~$ sudo useradd -D -s /bin/tcsh 

gennu@gennu:~$ useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no


gennu@gennu:~$ sudo useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/tcsh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
gennu@gennu:~$ 

但我没有看到 /etc/passwd 文件中有所更改。

gennu@gennu:~$ cat /etc/passwd | grep 'root\|gennu'
root:x:0:0:root:/root:/bin/bash
gennu:x:1000:1000:gennu,,,:/home/gennu:/bin/bash

相关内容