Saya perlu perintah untuk mendaftar semua pengguna di terminal. Dan cara menambah, menghapus, memodifikasi pengguna dari terminal.
Itu bisa membantu dalam administrasi akun Anda dengan mudah melalui terminal.
awk -F: '{ print $1 }' /etc/passwd
Saya perlu perintah untuk mendaftar semua pengguna di terminal. Dan cara menambah, menghapus, memodifikasi pengguna dari terminal.
Itu bisa membantu dalam administrasi akun Anda dengan mudah melalui terminal.
awk -F: '{ print $1 }' /etc/passwd
Jawaban:
Untuk membuat daftar semua pengguna lokal yang dapat Anda gunakan:
cut -d: -f1 /etc/passwd
Untuk daftar semua pengguna yang dapat diautentikasi (dalam beberapa cara), termasuk non-lokal, lihat balasan ini .
Beberapa perintah manajemen pengguna yang lebih berguna (juga terbatas untuk pengguna lokal ):
Untuk menambahkan pengguna baru, Anda dapat menggunakan:
sudo adduser new_username
atau:
sudo useradd new_username
Lihat juga: Apa perbedaan antara adduser dan useradd?
Untuk menghapus / menghapus pengguna, pertama-tama Anda dapat menggunakan:
sudo userdel username
Maka Anda mungkin ingin menghapus direktori home untuk akun pengguna yang dihapus:
sudo rm -r / home / nama pengguna
Silakan gunakan dengan hati-hati perintah di atas!
Untuk mengubah nama pengguna pengguna:
usermod -l new_username old_username
Untuk mengubah kata sandi bagi pengguna:
sudo passwd username
Untuk mengubah shell untuk pengguna:
sudo chsh username
Untuk mengubah detail pengguna (misalnya nama asli):
sudo chfn username
Untuk menambahkan pengguna ke sudo
grup:
adduser username sudo
atau
usermod -aG sudo username
Dan, tentu saja, lihat juga: man adduser
, man useradd
, man userdel
... dan seterusnya.
sudo chfn <username>
yang mengubah detail pengguna (misalnya nama asli). Saya mencoba menambahkan ini sebagai komentar, tetapi saya mendapat kesalahan dengan memberi tahu saya bahwa saya harus memiliki +50 reputasi untuk melakukannya.
Cukup tekan Ctrl+ Alt+ Tdi keyboard Anda untuk membuka Terminal. Saat terbuka, jalankan perintah di bawah ini:
cat /etc/passwd
ATAU
less /etc/passwd
more /etc/passwd
Anda juga dapat menggunakan awk: awk
awk -F':' '{ print $1}' /etc/passwd
adduser
, useradd
harus dibatasi untuk skrip di mana penulis benar-benar tahu apa yang dia lakukan.
Cara termudah untuk mendapatkan informasi semacam ini adalah getent
- lihat manual untuk getent
perintahnya . Sementara perintah itu memberikan output yang sama seperti cat /etc/passwd
berguna untuk diingat karena itu akan memberi Anda daftar beberapa elemen di OS.
Untuk mendapatkan daftar semua pengguna yang Anda ketikkan (saat pengguna terdaftar /etc/passwd
)
getent passwd
Untuk menambahkan pengguna newuser ke sistem Anda akan ketik
sudo adduser newuser
untuk membuat pengguna yang menerapkan semua pengaturan default.
Bonus: Untuk menambahkan pengguna (misalnya anyuser ) ke grup (misalnya cdrom ) ketik
sudo adduser anyuser cdrom
Anda menghapus pengguna (misalnya usang ) dengan
sudo deluser obsolete
Jika Anda ingin menghapus direktori home / mail-nya juga Anda ketikkan
sudo deluser --remove-home obsolete
Dan
sudo deluser --remove-all-files obsolete
akan menghapus pengguna dan semua file yang dimiliki oleh pengguna ini di seluruh sistem.
getent passwd
menjadi perintah yang tepat
Anda juga dapat menggunakan compgen
GNU bash built-in :
compgen -u
Akan mencantumkan semua pengguna.
Ini akan membuat, dalam sebagian besar situasi normal , semua pengguna normal (non-sistem, tidak aneh, dll):
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
Ini bekerja dengan:
/etc/passwd
:
sebagai pembatasIni karena pada banyak sistem linux, nama pengguna di atas 1000 dicadangkan untuk pengguna yang tidak mampu (bisa dikatakan normal). Beberapa info tentang ini di sini :
ID pengguna (UID) adalah bilangan bulat positif unik yang ditetapkan oleh sistem operasi mirip-Unix untuk setiap pengguna. Setiap pengguna diidentifikasi ke sistem dengan UID-nya, dan nama pengguna umumnya hanya digunakan sebagai antarmuka untuk manusia.
UID disimpan, bersama dengan nama pengguna terkait dan informasi khusus pengguna lainnya, di file / etc / passwd ...
Bidang ketiga berisi UID, dan bidang keempat berisi ID grup (GID), yang secara default sama dengan UID untuk semua pengguna biasa.
Di kernel Linux 2.4 dan di atasnya, UID adalah bilangan bulat 32-bit yang tidak ditandatangani yang dapat mewakili nilai dari nol hingga 4.294.967.296. Namun, disarankan untuk menggunakan nilai hanya hingga 65.534 untuk menjaga kompatibilitas dengan sistem yang menggunakan kernel atau sistem file yang lebih lama yang hanya dapat menampung UID 16-bit.
UID 0 memiliki peran khusus: selalu merupakan akun root (yaitu, pengguna administratif mahakuasa). Meskipun nama pengguna dapat diubah pada akun ini dan akun tambahan dapat dibuat dengan UID yang sama, tidak ada tindakan yang bijaksana dari sudut pandang keamanan.
UID 65534 biasanya dicadangkan untuk siapa pun, pengguna yang tidak memiliki hak sistem, sebagai lawan dari pengguna biasa (yaitu, yang tidak memiliki hak istimewa). UID ini sering digunakan untuk individu yang mengakses sistem dari jarak jauh melalui FTP (protokol transfer file) atau HTTP (protokol transfer hiperteks).
UID 1 hingga 99 secara tradisional disediakan untuk pengguna sistem khusus (kadang-kadang disebut pengguna semu), seperti roda, daemon, lp, operator, berita, surat, dll. Pengguna ini adalah administrator yang tidak memerlukan kekuatan root total, tetapi yang melakukan beberapa tugas administratif dan karenanya membutuhkan lebih banyak hak istimewa daripada yang diberikan kepada pengguna biasa.
Beberapa distribusi Linux (yaitu, versi) memulai UID untuk pengguna non-privilege di 100. Lainnya, seperti Red Hat, mulai mereka di 500, dan yang lain, seperti Debian, mulai mereka di 1000. Karena perbedaan antara distribusi, manual intervensi dapat diperlukan jika beberapa distribusi digunakan dalam jaringan dalam suatu organisasi.
Juga, akan lebih mudah untuk memesan satu blok UID untuk pengguna lokal, seperti 1000 hingga 9999, dan blok lain untuk pengguna jarak jauh (yaitu, pengguna di tempat lain di jaringan), seperti 10.000 hingga 65534. Yang penting adalah memutuskan pada skema dan patuhi itu.
Di antara kelebihan praktik pencadangan blok angka untuk tipe pengguna tertentu ini adalah membuatnya lebih mudah untuk mencari melalui log sistem untuk aktivitas pengguna yang mencurigakan.
Bertentangan dengan kepercayaan umum, tidak perlu setiap entri dalam bidang UID menjadi unik. Namun, UID yang tidak unik dapat menyebabkan masalah keamanan, dan karenanya UID harus tetap unik di seluruh organisasi. Demikian juga, daur ulang UID dari mantan pengguna harus dihindari selama mungkin.
getent
daripada membaca langsung dari /etc/passwd
dan mencari UID_MIN
/ UID_MAX
bukannya mengkodekan nilai:getent passwd | awk -F: "{if (\$3 >= $(awk '/^UID_MIN/ {print $2}' /etc/login.defs) && \$3 <= $(awk '/^UID_MAX/ {print $2}' /etc/login.defs)) print \$1}"
daftar semua pengguna yang dapat masuk (tidak ada pengguna sistem seperti: bin, deamon, mail, sys, dll.)
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
tambahkan pengguna baru
sudo adduser new_username
atau
sudo useradd new_username
hapus / hapus nama pengguna
sudo userdel username
Jika Anda ingin menghapus direktori home (default direktori / home / username)
sudo deluser --remove-home username
atau
sudo rm -r /path/to/user_home_dir
Jika Anda ingin menghapus semua file dari sistem dari pengguna ini (tidak hanya direktori home)
sudo deluser --remove-all-files
adduser
dan useradd
. Juga tambahkan sudo
-prefix ke perintah pertama. File shadow kata sandi hanya dapat dibaca sebagai root.
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow
menunjukkan kepada saya semua pengguna termasuk bin, daemon, dll. dan melemparkan peringatan ini: escape sequence \$' treated as plain
$ 'Saya menemukan posting ini stackoverflow.com/a/25867768/847954 dan menambahkan satu backslash lagi dan bekerja dengan baik:awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow
Ok di sini ada trik yang akan membantu Anda menyortir ini. Terminal memiliki penyelesaian otomatis jika Anda mengetik pengguna dan menekan tombol Tab dua kali akan mencantumkan semua perintah yang ada dengan pengguna sebagai 4 karakter pertama.
user (tab tab)
memberi saya pilihan yang memungkinkan useradd userdel usermod pengguna pengguna-admin
jika Anda ingin tahu lebih banyak tentang perintah google atau tipe man man useradd memberikan useradd - buat pengguna baru atau perbarui informasi pengguna baru default ... ...
untuk daftar pengguna Anda harus pergi dengan apa yang dikatakan Mitch.
Harapan yang membantu saya suka penyelesaian tab di bash menyelamatkan saya dari mengingat sesuatu.
Untuk mengetahui pengguna yang memiliki direktori home di folder / home pada mesin, jalankan perintah berikut
cd /home
ls
Anda kemudian dapat melihat pengguna yang memiliki otorisasi untuk masuk ke server. Jika kami ingin melihat file pengguna mana pun, Anda harus menjadi pengguna root.
/home
. Sementara Ubuntu menempatkan direktori pengguna di sana secara default, itu tidak wajib.
ls /home
mungkin juga berisi direktori pengguna dari pengguna yang dihapus.
sed 's/:.*//' /etc/passwd