Команда useradd в Linux не работает должным образом?

Я попытался изменить оболочку по умолчанию в Ubuntu 14.04, используя следующую команду

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 является реализацией Perl useradd (который является двоичным 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 файл или нет.

Для меня изменения применяются, и я думаю, что я сделал то же самое, что и вы.

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
Другие вопросы по тегам