GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana Menambahkan Pengguna Unix/linux Dalam Skrip Bash?

Ini skrip bash pengujian saya. Saya tidak bisa membuatnya bekerja. Saya melihat dua kesalahan:

  1. Use of uninitialized value $answer in chop at /usr/sbin/adduser line 589.
  2. Use of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590.

Ini skrip saya:

#!/bin/bash
sudo adduser myuser << ENDX
password
password
First Last




Y
ENDX
exit 0

Berikut adalah outputnya:

[email protected]$ ./adduser.sh 
Adding user `myuser' ...
Adding new group `myuser' (1001) ...
Adding new user `myuser' (1001) with group `myuser' ...
Creating home directory `/home/myuser' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully
Changing the user information for myuser
Enter the new value, or press ENTER for the default
        Full Name []:   Room Number []:         Work Phone []:  Home Phone []:  Other []: Use of uninitialized value $answer in chop at /usr/sbin/adduser line 589.
Use of uninitialized value $answer in pattern match (m//) at /usr/sbin/adduser line 590.
Is the information correct? [Y/n] [email protected]$

Ini ada di Kubuntu 12.04 LTS

$ bash --version
bash --version
GNU bash, version 4.2.25(1)-release (x86_64-pc-linux-gnu)

Berikut adalah baris dari adduser (skrip sistem – tidak dimodifikasi oleh saya) dengan notasi dari dua nomor baris yang relevan:

for (;;) {
       my $chfn = &which('chfn');
    &systemcall($chfn, $new_name);
    # Translators: [y/N] has to be replaced by values defined in your
    # locale.  You can see by running "locale yesexpr" which regular
    # expression will be checked to find positive answer.
    print (gtx("Is the information correct? [Y/n] "));
    chop (my $answer=<STDIN>);        <-- LINE 589
    last if ($answer !~ m/$noexpr/o); <-- LINE 590
}

Jawaban yang Diterima:

Cukup gunakan parameter baris perintah alih-alih stdin, dan gunakan chpasswd untuk kata sandinya.

Misalnya:

sudo adduser myuser --gecos "First Last,RoomNumber,WorkPhone,HomePhone" --disabled-password
echo "myuser:password" | sudo chpasswd

Linux
  1. Cara Menambah atau Menghapus Pengguna dari Grup di Linux

  2. Tambahkan Pengguna ke Grup di Linux, Bagaimana Melakukannya (Dengan Contoh)

  3. Bagaimana cara menambahkan pengguna ke grup di Linux

  1. Cara Menghapus Riwayat Baris Perintah BASH di Linux

  2. Cara Menggunakan Kata Sandi Terenkripsi di Linux Bash Shell Script

  3. Cara Mengubah, Menghapus, atau Menonaktifkan Kata Sandi Pengguna di Linux

  1. Bagaimana cara menambahkan pengguna ke desktop Linux Anda

  2. Bagaimana cara menambahkan akun pengguna DAN kata sandi secara otomatis dengan skrip Bash?

  3. Kata Sandi Panik di Linux