it-swarm-id.com

Bagaimana cara menonaktifkan akun sepenuhnya?

Bagaimana cara menonaktifkan akun sepenuhnya? passwd -l tidak akan mengizinkan siapa pun masuk ke akun menggunakan kata sandi tetapi Anda masih bisa masuk melalui kunci privat/publik. Bagaimana saya menonaktifkan akun sepenuhnya? Sebagai perbaikan cepat, saya mengganti nama file menjadi authorized_keys_lockme. Apakah ada cara lain?

49
user4069

Cara yang benar menurut usermod(8) adalah:

usermod --lock --expiredate 1970-01-02 <username>

(Sebenarnya, argumen untuk --expiredate dapat berupa tanggal apa pun sebelum tanggal saat ini dalam format YYYY-MM-DD.)


Penjelasan:

  • --lock mengunci kata sandi pengguna. Namun, masuk dengan metode lain (mis. Kunci publik) masih dimungkinkan.

  • --expiredate YYYY-MM-DD menonaktifkan akun pada tanggal yang ditentukan. Berdasarkan man shadow 5 1970-01-01 adalah nilai ambigu dan tidak akan digunakan.

Saya sudah menguji ini di komputer saya. Login dengan kata sandi atau kunci publik tidak dimungkinkan setelah menjalankan perintah ini.


Untuk mengaktifkan kembali akun di kemudian hari Anda dapat menjalankan:

usermod --unlock --expiredate '' <username>
61
Christoph Wurm

Kunci kata sandi dan ubah Shell menjadi /bin/nologin.

Sudo usermod --lock --Shell /bin/nologin username

(Atau lebih tepatnya, Sudo usermod -L -s /bin/nologin username.)

10
mattdm

Ini cara sederhana lain. Anda dapat mengatur akun pengguna kedaluwarsa. Ini akan mencegah baik login berbasis kata sandi dan kunci berbasis ssh untuk akun, tetapi tidak tidak sentuh kata sandi.

Untuk mengunci akun:

# chage -E 0 username

Akun pengguna 'nama pengguna' akan dikunci di sistem. Untuk mengaktifkan kembali akun pengguna, lakukan hal berikut.

Untuk membuka kunci akun:

# chage -E -1 username

Akun pengguna 'nama pengguna' akan diaktifkan kembali di sistem Anda dengan kata sandi yang sama seperti sebelumnya. Biner 'chage' adalah bagian dari paket shadow-utils di Red Hat Linux, atau passwd paket di Debian Linux.

4
miklosq

Saya tidak memiliki perwakilan yang cukup untuk mengomentari jawaban Legate, tetapi saya ingin berbagi bahwa jawaban ini membantu kami dengan kasus penggunaan lain:

1.) akun yang dimaksud adalah akun layanan lokal yang menjalankan aplikasi, bukan akun pengguna akhir.

2.) pengguna akhir ssh sebagai diri mereka sendiri, dan Sudo /bin/su <user> untuk menjadi pengguna dan mengelola aplikasi karena persyaratan jejak audit bahwa akun layanan tidak dapat memiliki kemampuan login langsung.

3.) akun layanan harus memiliki Shell yang valid (/bin/bash, bukan /sbin/nologin), karena Platform Penjadwalan Perusahaan (agen berjalan sebagai root secara lokal) harus dapat su - <user> dan tidak memiliki su -s /bin/bash <user> kemampuan yang dimiliki oleh Shell penuh, dan diperlukan untuk menjalankan pekerjaan dari jarak jauh untuk operasi batch yang lebih besar yang mencakup beberapa server dan basis data.


Begitu...

passwd -l <user>
Tidak memenuhi kendala karena otentikasi kunci publik melewati PAM dan masih memungkinkan masuk langsung.

usermod -s /sbin/nologin <user>
Tidak memenuhi kendala karena merusak penjadwal perusahaan

usermod --lock --expiredate 1970-01-01 <user>
Ini adalah pemenang kami. Login jarak jauh dinonaktifkan, namun root masih bisa su <user>, seperti halnya pengguna lain melalui Sudo sehingga penjadwal berfungsi dengan benar dan pengguna akhir yang diotorisasi dapat menjadi akun layanan target sesuai kebutuhan.

Terima kasih atas solusinya!

3
user1880028

Untuk menghapus seluruhnya, gunakan userdel.

Harap perhatikan bahwa jika Anda menghapus akun, ada risiko bahwa ID penggunanya masih akan digunakan dalam sistem file di suatu tempat dan pengguna baru akan mewarisi kepemilikan file-file itu jika masuk di bawah id pengguna yang sama.

Anda ingin mengubah pemilik file apa pun yang dimiliki oleh pengguna yang dihapus.

Jika Anda ingin menambahkan pengguna kembali nanti, simpan barisnya dari /etc/passwd (dan pada Solaris /etc/shadow) ke file sementara seperti /etc/passwd_deleted.

Dengan begitu ketika Anda menambahkannya kembali Anda dapat menggunakan id pengguna dan kata sandi yang sama (yang dienkripsi dalam salah satu file di atas)

Penafian: Saya mempelajari UNIX sendiri sehingga saya tidak akan terkejut jika ada cara yang lebih baik untuk menonaktifkan sementara pengguna. Sebenarnya saya bahkan tidak tahu apa kunci privat/publik yang Anda bicarakan. Saya juga yakin ada perintah find yang dapat digunakan untuk mencari file dengan pemilik userid

1
Bryan Field

Adakah yang pernah mencoba melakukannya melalui ssh_config? Mungkin ini bisa membantu http://www.techrepublic.com/blog/opensource/set-up-user-accounts-quickly-and-securely/86

Juga, pastikan bahwa PasswordAuthentication diatur ke no juga, untuk memaksa semua login menggunakan kunci publik.

0
icasimpan