web-dev-qa-db-ja.com

Linuxのuseraddコマンドが期待どおりに機能しない?

次のコマンドを使用して、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

デフォルトが更新されない理由。 PCを再起動しましたが、値がまだ更新されていません。どうして ?

pdate新しいユーザーを追加したくないので、useraddコマンドを使用していくつかのデフォルトを更新したい

1
Cody

adduserコマンドを使用します。 adduserコマンドは、useradd(Cバイナリ)のPerl実装です。

$ 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ファイルに追加されているかどうかです。

1
Gaurav

私にとっては変更が適用され、私はあなたと同じようにしたと思います。

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
0
rɑːdʒɑ