Apakah program CLI standar untuk mengelola pengguna dan grup?

8

Saya pada dasarnya bertanya tentang manajemen pengguna dari baris perintah (misalnya pada sistem di mana tidak ada alat grafis yang tersedia). Di masa lalu saya telah menggunakan beberapa program yang berbeda untuk menambahkan atau pengguna menghapus dan kelompok atau memodifikasi atribut mereka: adduser, useradd, usermod, gpasswd, dan mungkin orang lain aku sudah lupa. Saya juga pernah mendengar beberapa kali bahwa beberapa dari program ini adalah level rendah dan harus dihindari untuk penggunaan umum, tetapi saya tidak pernah ingat yang mana. Jadi saya ingin mendapatkan jawaban yang pasti untuk program mana yang direkomendasikan untuk setidaknya tugas-tugas berikut:

  • Buat pengguna baru
  • Tambahkan pengguna ke grup
  • Hapus pengguna dari grup
  • Ubah grup utama pengguna
  • Ubah shell login pengguna atau direktori home
  • Hapus pengguna

Saya mencari alat standar yang dapat saya harapkan tersedia di hampir semua sistem Linux (distribusi apa pun).

David Z
sumber
1
juga groupmod. Saya tidak akan membuat ini sebagai jawaban .... tetapi cara paling standar mungkin menggunakan editor teks Anda ... ingat file yang terpengaruh hanya teks yang dibatasi.
xenoterracide
Menariknya, sebelum mengajukan pertanyaan ini, saya belum pernah melihat sebanyak yang menyebutkan langsung mengedit file. (Entah bagaimana saya mendapat kesan /etc/passwditu hanya satu bagian dari sistem yang kompleks)
David Z

Jawaban:

9

Sayangnya, tidak satu pun dari operasi itu yang distandarisasi.

Beberapa sistem operasi menawarkan fungsi ini sebagai bagian dari OS, seperti Linux, tetapi bahkan jika sistem Linux Anda menyertakannya, seiring waktu dan lintas distribusi Linux, alat dan namanya diubah sehingga Anda tidak dapat benar-benar bergantung pada seperangkat alat standar yang harus dilakukan. tugas-tugas itu.

Anda perlu memiliki seperangkat alat sistem operasi per.

miguel.de.icaza
sumber
Saya tidak pernah memiliki nama yang berubah ... tetapi saya memiliki sakelar yang berubah. Saya ingat sekali ketika mengetahui bahwa linux tidak memiliki gpasswd -a.
xenoterracide
1
Jika memori berfungsi - RedHat pernah menggunakan 'adduser', bukan 'useradd', dan itu berperilaku berbeda (saya pikir useradd lebih Debianish). Mereka kemudian membuat 'adduser' sebagai symlink ke 'useradd'. Lihat beberapa referensi lama di redhat.com/docs/manuals/linux/RHL-5.2-Manual/install-guide/…
Stefan Lasiewski
7

Pada sistem Debian (dan diturunkan), adduserdan delusermerupakan pembungkus tingkat tinggi di sekitar useradddan fungsionalitas terkait. Mencakup pembuatan pengguna, penambahan dan pengurangan keanggotaan grup, dan penghapusan pengguna. Perintah yang sesuai dari membuat / menghapus grup adalah, cukup masuk akal, addgroupdan delgroup. usermodmuncul untuk menutupi sisa kasus penggunaan yang Anda sebutkan.

Phil Miller
sumber
6

Anda menyebutkan Linux pada bagian terakhir dari pertanyaan Anda, tetapi karena judulnya generik, saya akan menjawab untuk FreeBSD.

FreeBSD memiliki perintah yang mirip dengan Linux tetapi perintah yang diberikan ke pwutilitas:

pw useradd [user|uid] ...
pw usermod [user|uid] ...

dan seterusnya. Namun, seseorang dapat mengurai perintah menjadi dua bagian: userdan mod; kata benda dan kata kerja. Selain itu, seseorang juga dapat menggunakan groupdan del:

pw groupdel [group|gid] ...

misalnya, untuk menghapus grup. Jadi, inilah yang menurut saya sangat keren: urutannya tidak penting, jaraknya juga tidak! Artinya, Anda dapat mengingat apa yang harus dihubungi dengan memikirkan apa yang ingin Anda lakukan (dalam bahasa Inggris):

pw del user [user|uid] ...
pw mod group [group|gid] ...
pw show user [user|uid] ...
pw next user [user|uid] ...

dan lebih banyak lagi! The pwutilitas juga memungkinkan Anda mengunci dan rekening membuka:

pw lock [user|uid] ...
pw unlock [user|uid] ...

Opsi dan parameter apa pun yang Anda lewati semuanya distandarisasi (meskipun tidak selalu berlaku untuk perintah panggilan) sehingga menghafal diminimalkan. Semua dalam semua cara yang bagus untuk melakukan sesuatu.

Catatan: elips dalam contoh di atas menunjukkan opsi dan parameter yang diteruskan ke pwbukan pengguna atau grup tambahan.

gvkv
sumber
Itu adalah pertanyaan Linux tetapi informasinya tetap dihargai. Akan lebih bagus jika Linux memiliki sesuatu seperti ini.
David Z
Maksud dan kata kerja, maksud Anda.
Warren Young
Doh! Memperbaikinya.
gvkv
2

Hanya untuk kelengkapan, pada ujung level rendah dari spektrum saya akan menyebutkan vipw (8) dan vigr (8), tepat di atas "vi / etc / passwd" dan "cat> / etc / passwd" tetapi tepat di bawah "useradd ". Oh, dan mereka ada di sebagian besar varian Unix.

kepala kode
sumber
2

Semua alat ini pada akhirnya dibuat untuk mengedit file teks untuk Anda. Jika Anda ingin tahu cara mengelola pengguna dan grup melalui sistem, Anda harus terbiasa dengan file teks yang mendasarinya. Beruntung bagi Anda, hanya ada dua dari mereka, /etc/passwddan /etc/group. Ada juga pelengkap /etc/shadowdan /etc/gshadowfile untuk membayangi passwd dan grup masing-masing.

Eli Frey
sumber
4
... dan / etc / shadow, karena sebagian besar sistem akan mati jika saya tidak konsisten dengan / etc / passwd
codehead
1

Dalam banyak situasi, mengetahui cara mengedit "/ etc / passwd" masih berguna.

Kevin Cantu
sumber
1
Mengetahui cara membaca / etc / passwd berguna, tetapi memodifikasinya secara langsung adalah praktik yang buruk. Pada beberapa * ixes saya telah menggunakan (SysV modern, OS X ...) file-file ini bukan tempat utama pengguna dan data grup disimpan. Entah itu salinan bayangan untuk kompatibilitas, atau mereka adalah sumber utama tetapi ada database atau indeks yang perlu diperbarui setiap kali mereka berubah. Pada sistem itu, jika Anda tidak memperbarui file melalui alat resmi, perubahan tidak akan segera berlaku, jika pernah mereka lakukan.
Warren Young
Hanya saja, jangan munge / etc / passwd
Stefan Lasiewski
1

Jika Anda menggunakan backend selain backend mesin lokal default - OpenLDAP menjadi yang paling umum - maka cpu (ubah utilitas kata sandi) mungkin merupakan perintah yang Anda cari. Itu dapat dijalankan pada mesin selain dari master LDAP jika dikonfigurasi dengan benar, dan sebagian besar sintaksnya sama seperti useradddll dengan awalan cpu. Jadi untuk menambah diri saya bisa lakukan

$ sudo cpu useradd hamish

Lihat halaman manual cpu untuk lebih jelasnya.

Hamish Downer
sumber
Menarik, tetapi jawaban yang hanya berlaku pada mesin yang mendapatkan info penggunanya dari LDAP sangat terbatas bagi saya.
David Z
0

Jika pertanyaan Anda terbatas

sistem Linux apa pun (dari distribusi apa pun)

tetapi semua sistem memiliki akses jaringan ke satu server. Anda bisa menggunakan sesuatu seperti NIS atau YP. Jadi jawaban ini terbatas pada admin dalam satu organisasi.

Anda masih memiliki masalah di mana hampir setiap distribusi memiliki cara yang sedikit berbeda untuk mengonfigurasi YP, tetapi konfigurasi hanya terjadi sekali. Juga, jenis jaringan ini tidak sepele.

Dalam satu situs / jaringan Anda akan mendapatkan banyak hal untuk melakukan ini. Dalam kombinasi dengan automount, favorit saya adalah dapat SSH ke mesin * nix dan memiliki semua file dan alat-alat rumah saya yang tersedia untuk saya.

Intinya, distribusi yang Anda pilih untuk master adalah sistem yang Anda gunakan untuk mengelola pengguna. Anda kemudian akan memiliki satu set alat / dokumentasi untuk mengelola pengguna dan grup.

Bahkan dimungkinkan untuk menggunakan sesuatu seperti LDAP dan alat samba pada master. Menggunakan samba juga memungkinkan saya untuk memiliki file rumah saya tersedia untuk saya di mesin windows.

Stephen Jazdzewski
sumber
Terima kasih, tetapi saya sedang mencari jawaban yang berlaku juga untuk sistem non-jaringan.
David Z
0

Hal yang paling dekat dengan standar yang Anda akan dapatkan adalah vi /etc/passwd, vi /etc/shadow, dan vi /etc/groups. (Bidat mungkin menggantikan emacs.) Semuanya sejak saat itu yang saya temukan hanya akan bekerja pada beberapa sistem.

Serius, cari tahu alat apa yang dimiliki OS Anda, dan gunakanlah. Hanya saja, jangan berharap mereka bekerja sama di semua sistem. Akan menyenangkan jika standar, tetapi tidak.

David Thornley
sumber
Menggunakan editor teks untuk mengedit file konfigurasi yang dapat dilakukan alat, dan seharusnya mengedit untuk Anda bukanlah standar. Anda tidak boleh menggunakan editor teks untuk mengubah file konfigurasi, ketika sistem operasi, atau aplikasi menyediakan utilitas untuk melakukan ini untuk Anda. Hal ini terutama berlaku untuk /etc/passwd, /etc/shadow, /etc/group, dan /etc/gshadow. Ini adalah alat untuk apa. Manusia rentan terhadap kesalahan, sedangkan alat telah diuji dan (mudah-mudahan) bebas bug.
Aaron Toponce
Jangan pernah memanggil editor /etc/passwddan teman secara langsung. Gunakan vipwdan vigr, yang: mengunci file terhadap edisi bersamaan; jalankan editor favorit Anda ( $VISUAL); jangan ubah file jika Anda membuat kesalahan sintaksis; pada beberapa sistem (mis. FreeBSD) juga membuat ulang file lain yang harus tetap sinkron.
Gilles 'SO- stop being evil'