GNU/Linux >> Belajar Linux >  >> Linux

Pengantar perintah useradd Linux

Menambahkan pengguna adalah salah satu latihan paling mendasar di sistem komputer mana pun; artikel ini berfokus pada bagaimana melakukannya di sistem Linux.

Lebih banyak sumber daya Linux

  • Lembar contekan perintah Linux
  • Lembar contekan perintah Linux tingkat lanjut
  • Kursus online gratis:Ikhtisar Teknis RHEL
  • Lembar contekan jaringan Linux
  • Lembar contekan SELinux
  • Lembar contekan perintah umum Linux
  • Apa itu container Linux?
  • Artikel Linux terbaru kami

Sebelum memulai, saya ingin menyebutkan tiga dasar yang perlu diingat. Pertama, seperti kebanyakan sistem operasi, pengguna Linux memerlukan akun untuk dapat masuk. Artikel ini secara khusus membahas akun lokal, bukan akun jaringan seperti LDAP. Kedua, akun memiliki nama (disebut nama pengguna) dan nomor (disebut ID pengguna). Ketiga, pengguna biasanya ditempatkan ke dalam grup. Grup juga memiliki nama dan ID grup.

Seperti yang Anda harapkan, Linux menyertakan utilitas baris perintah untuk menambahkan pengguna; itu disebut penggunaadd . Anda juga dapat menemukan perintah adduser . Banyak distribusi telah menambahkan tautan simbolis ini ke useradd perintah demi kenyamanan.

$ file `which adduser`
/usr/sbin/adduser: symbolic link to useradd

Mari kita lihat useradd .

Catatan:Default yang dijelaskan dalam artikel ini mencerminkan yang ada di Red Hat Enterprise Linux 8.0. Anda mungkin menemukan perbedaan halus dalam file-file ini dan default tertentu pada distribusi Linux lain atau sistem operasi Unix lainnya seperti FreeBSD atau Solaris.

Perilaku default

Penggunaan dasar useradd cukup sederhana:Seorang pengguna dapat ditambahkan hanya dengan memberikan nama pengguna mereka.

$ sudo useradd sonny

Dalam contoh ini, penggunaadd perintah membuat akun bernama sonny . Sebuah grup dengan nama yang sama juga dibuat, dan sonny ditempatkan di dalamnya untuk digunakan sebagai kelompok utama. Ada parameter lain, seperti bahasa dan shell, yang diterapkan menurut default dan nilai yang ditetapkan dalam file konfigurasi /etc/default/useradd dan /etc/login.defs . Ini umumnya cukup untuk satu sistem pribadi atau lingkungan bisnis satu server kecil.

Sementara dua file di atas mengatur perilaku useradd , informasi pengguna disimpan dalam file lain yang ditemukan di /etc direktori, yang akan saya rujuk di seluruh artikel ini.

File Deskripsi Bidang (tebal—ditetapkan oleh useradd)
passwd Menyimpan detail akun pengguna nama pengguna :tidak digunakan:uid :gid :komentar :homedir :kulit
bayangan Menyimpan detail keamanan akun pengguna nama pengguna :password:lastchange:minimum:maximum:warn:tidak aktif :kedaluwarsa :tidak terpakai
grup Menyimpan detail grup nama grup :tidak digunakan:gid :anggota

Perilaku yang dapat disesuaikan

Baris perintah memungkinkan penyesuaian untuk saat-saat ketika administrator membutuhkan kontrol yang lebih baik, seperti untuk menentukan nomor ID pengguna.

Nomor ID pengguna dan grup

Secara default, tambahkan pengguna mencoba menggunakan nomor yang sama untuk ID pengguna (UID) dan ID grup utama (GID), tetapi tidak ada jaminan. Meskipun UID dan GID tidak perlu dicocokkan, administrator akan lebih mudah mengelolanya saat melakukannya.

Saya hanya punya skenario untuk dijelaskan. Misalkan saya menambahkan akun lain, kali ini untuk Timmy. Membandingkan dua pengguna, sonny dan timmy , menunjukkan bahwa pengguna dan grup utama masing-masing dibuat dengan menggunakan getent perintah.

$ getent passwd sonny timmy
sonny:x:1001:1002:Sonny:/home/sonny:/bin/bash
timmy:x:1002:1003::/home/timmy:/bin/bash

$ getent group sonny timmy
sonny:x:1002:
timmy:x:1003:

Sayangnya, baik UID pengguna maupun GID utama tidak cocok. Ini karena perilaku default adalah menetapkan UID berikutnya yang tersedia kepada pengguna dan kemudian mencoba untuk menetapkan nomor yang sama ke grup utama. Namun, jika nomor tersebut sudah digunakan, GID berikutnya yang tersedia akan ditetapkan ke grup. Untuk menjelaskan apa yang terjadi, saya berhipotesis bahwa grup dengan GID 1001 sudah ada dan masukkan perintah untuk mengonfirmasi.

$ getent group 1001
book:x:1001:alan

Grup buku dengan ID 1001 telah menyebabkan GID dimatikan oleh satu. Ini adalah contoh di mana administrator sistem perlu mengambil kendali lebih besar dari proses pembuatan pengguna. Untuk mengatasi masalah ini, pertama-tama saya harus menentukan ID pengguna dan grup yang tersedia berikutnya yang akan cocok. Perintah grup getent dan getent passwd akan membantu dalam menentukan nomor yang tersedia berikutnya. Nomor ini dapat diteruskan dengan -u argumen.

$ sudo useradd -u 1004 bobby

$ getent passwd bobby; getent group bobby
bobby:x:1004:1004::/home/bobby:/bin/bash
bobby:x:1004:

Alasan bagus lainnya untuk menentukan ID adalah untuk pengguna yang akan mengakses file pada sistem jarak jauh menggunakan Network File System (NFS). NFS lebih mudah dikelola ketika semua sistem klien dan server memiliki ID yang sama yang dikonfigurasi untuk pengguna tertentu. Saya membahas ini sedikit lebih detail dalam artikel saya tentang menggunakan autofs untuk memasang share NFS.

Lebih banyak penyesuaian

Sangat sering meskipun, parameter akun lain perlu ditentukan untuk pengguna. Berikut adalah contoh singkat dari penyesuaian paling umum yang mungkin perlu Anda gunakan.

Komentar

Opsi komentar adalah bidang teks biasa untuk memberikan deskripsi singkat atau informasi lain menggunakan -c argumen.

$ sudo useradd -c "Bailey is cool" bailey
$ getent passwd bailey
bailey:x:1011:1011:Bailey is cool:/home/bailey:/bin/bash

Grup

Seorang pengguna dapat diberi satu grup utama dan beberapa grup sekunder. -g argumen menentukan nama atau GID dari grup utama. Jika tidak ditentukan, useradd membuat grup utama dengan nama pengguna yang sama (seperti yang ditunjukkan di atas). -G argumen (huruf besar) digunakan untuk meneruskan daftar grup yang dipisahkan koma tempat pengguna akan ditempatkan; ini dikenal sebagai kelompok sekunder.

$ sudo useradd -G tgroup,fgroup,libvirt milly 
$ id milly
uid=1012(milly) gid=1012(milly) groups=1012(milly),981(libvirt),4000(fgroup),3000(tgroup)

Direktori beranda

Perilaku default useradd adalah membuat direktori home pengguna di /home . Namun, aspek yang berbeda dari direktori home dapat ditimpa dengan argumen berikut. -b set direktori lain di mana rumah pengguna dapat ditempatkan. Misalnya, /home2 alih-alih /home default default .

$ sudo useradd -b /home2 vicky
$ getent passwd vicky
vicky:x:1013:1013::/home2/vicky:/bin/bash

-d memungkinkan Anda menentukan direktori home dengan nama yang berbeda dari pengguna.

$ sudo useradd -d /home/ben jerry
$ getent passwd jerry
jerry:x:1014:1014::/home/ben:/bin/bash

Direktori kerangka

-k menginstruksikan direktori home baru pengguna baru untuk diisi dengan file apa pun di /etc/skel direktori. Ini biasanya file konfigurasi shell, tetapi bisa berupa apa saja yang ingin disediakan oleh administrator sistem untuk semua pengguna baru.

kulit

-s argumen dapat digunakan untuk menentukan shell. Default digunakan jika tidak ada hal lain yang ditentukan. Misalnya, berikut ini, shell bash didefinisikan dalam file konfigurasi default, tetapi Wally telah meminta zsh .

$ grep SHELL /etc/default/useradd 
SHELL=/bin/bash

$ sudo useradd -s /usr/bin/zsh wally
$ getent passwd wally
wally:x:1004:1004::/home/wally:/usr/bin/zsh

Keamanan

Keamanan adalah bagian penting dari pengelolaan pengguna, jadi ada beberapa opsi yang tersedia dengan useradd memerintah. Akun pengguna dapat diberikan tanggal kedaluwarsa, dalam bentuk YYYY-MM-DD, menggunakan -e argumen.

$ sudo useradd -e 20191231 sammy
$ sudo getent shadow sammy
sammy:!!:18171:0:99999:7::20191231:

Akun juga dapat dinonaktifkan secara otomatis jika kata sandi kedaluwarsa. -f argumen akan mengatur jumlah hari setelah kata sandi kedaluwarsa sebelum akun dinonaktifkan. Nol langsung.

$ sudo useradd -f 30 willy
$ sudo getent shadow willy
willy:!!:18171:0:99999:7:30::

Contoh dunia nyata

Dalam praktiknya, beberapa argumen ini dapat digunakan saat membuat akun pengguna baru. Misalnya, jika saya perlu membuat akun untuk Perry, saya mungkin menggunakan perintah berikut:

$ sudo useradd -u 1020 -c "Perry Example" \
-G tgroup -b /home2 \
-s /usr/bin/zsh \
-e 20201201 -f 5 perry

Lihat bagian di atas untuk memahami setiap opsi. Verifikasi hasilnya dengan:

$ getent passwd perry; getent group perry; getent shadow perry; id perry
perry:x:1020:1020:Perry Example:/home2/perry:/usr/bin/zsh
perry:x:1020:
perry:!!:18171:0:99999:7:5:20201201:
uid=1020(perry) gid=1020(perry) groups=1020(perry),3000(tgroup)

Beberapa saran terakhir

tambahan pengguna perintah "harus diketahui" untuk administrator Unix (bukan hanya Linux). Penting untuk memahami semua opsinya karena pembuatan pengguna adalah sesuatu yang ingin Anda lakukan dengan benar pertama kali. Ini berarti memiliki konvensi penamaan yang dipikirkan dengan matang yang mencakup rentang UID/GID khusus yang disediakan untuk pengguna di seluruh perusahaan Anda, tidak hanya pada satu sistem—terutama saat Anda bekerja di organisasi yang sedang berkembang.


Linux
  1. Kuasai perintah Linux ls

  2. Pengantar perintah alternatif di Linux

  3. Contoh Perintah chgrp di Linux

  1. Linux – Penggunaan Opsi -o Dalam Perintah Useradd?

  2. Perintah cari di Linux

  3. Contoh Perintah useradd di Linux

  1. 5 Contoh Praktis Perintah dd di Linux

  2. Contoh Perintah groupmems di Linux

  3. Batalkan perintah sampah Linux