GNU/Linux >> Belajar Linux >  >> Linux

Apa itu Shell Login di Linux?

Shell login adalah proses pertama yang dijalankan dengan ID pengguna Anda saat Anda masuk ke sesi interaktif.

Ini mungkin tampak sederhana di permukaan tetapi jika Anda menggali lebih dalam, itu bisa sedikit membingungkan. Untuk memahaminya, mari kita lihat kembali proses login di sistem Linux.

Linux adalah sistem multi-pengguna di mana banyak pengguna dapat masuk dan menggunakan sistem secara bersamaan.

Proses pertama dalam sistem Linux, baik init atau systemd, memulai program getty. Getty ini, kependekan dari 'get tty' (tty menunjukkan terminal fisik atau virtual), bertanggung jawab untuk melindungi sistem dari akses yang tidak sah.

Saat Anda mencoba terhubung ke sistem Linux baik secara langsung (jika Anda memiliki server yang diinstal pada sistem secara lokal) atau melalui SSH (jika Anda memiliki server di lokasi yang jauh), getty meminta (melalui program login) Anda untuk memasukkan nama pengguna Anda dan ketika nama pengguna dimasukkan, ia meminta kata sandi.

Entri Anda diverifikasi terhadap informasi yang disimpan dalam file /etc/passwd. Entri dalam file /etc/passwd memiliki beberapa informasi seperti nama pengguna, userid, direktori home dan program pertama yang harus dijalankan setelah login berhasil.

Seperti yang Anda lihat pada gambar di atas, program pertama yang dijalankan ketika pengguna abhishek login. Untuk pengguna standar di Linux, ini adalah shell login.

Mungkin ada nilai-nilai lain di lapangan juga. Misalnya, sshd adalah pengguna sistem, bukan pengguna nyata dan tidak dapat masuk ke sistem secara interaktif seperti pengguna biasa seperti abhishek.

sshd:x:110:65534::/run/sshd:/usr/sbin/nologin

Jika tidak ada entri di kolom program pertama/log in shell, defaultnya adalah /bin/sh, yaitu shell standar.

Saya harap itu tidak terlalu banyak informasi.

Login shell vs non-login shell

Baiklah, jadi Anda masuk ke sistem dan tahu bahwa itu adalah shell login. Tapi apa artinya? Apakah ada cangkang lain juga? Di mana mereka?

Di Linux, ketika Anda menjalankan skrip shell, skrip itu berjalan di shell-nya sendiri (shell non-interaktif). Anda dapat memulai shell baru dari shell Anda saat ini (shell interaktif).

Dalam istilah teknis, ini adalah subkulit tetapi lebih lanjut tentang topik ini nanti. Mari kita fokus pada shell login untuk saat ini.

File profil dan RC untuk shell

Shell login membaca variabel lingkungan dan konfigurasi lain dari /etc/profile dan file profil di direktori home. Ini memungkinkan Anda untuk menyelesaikan tab, output berwarna, dan mengatur hal-hal lain seperti umask dll.

Anda mungkin tahu bahwa ada lebih dari satu shell yang tersedia untuk sistem Linux. Sebagian besar distribusi Linux menggunakan bash shell secara default tetapi Anda dapat menginstal shell yang berbeda seperti zsh atau Fish shell.

Jika shell login Anda adalah bash, ia membaca dari file /etc/profile dan ~/.bash_profile. Jika shell login Anda adalah zsh, shell tersebut dibaca dari /etc/zprofile dan ~/.zprofile.

File di direktori /etc mengatur konfigurasi shell masing-masing untuk semua pengguna di sistem. Ini biasanya diatur oleh administrator sistem.

File-file di direktori home pengguna tentu saja khusus untuk pengguna. Ini memungkinkan pengguna membuat alias untuk perintah yang sering digunakan atau menggunakan variabel PATH khusus untuk suatu program.

Shell non-login berasal dari shell login dan karenanya mendapatkan semua lingkungan yang ditetapkan oleh shell login melalui file profil. Selain itu, shell interaktif non-login dapat mendefinisikan variabel lingkungannya sendiri melalui file rc (konfigurasi sumber daya) di /etc atau direktori home.

Untuk bash shell biasanya file /etc/bash.bashrc dan ~/.bash_rc sedangkan untuk zsh shell adalah /etc/zshrc dan ~/.zshrc.

Mari saya tunjukkan perbedaannya dengan contoh praktis.

Perhatikan bagaimana prompt shell berubah menjadi warna kehijauan? Itu karena membaca file /etc/bash.bashrc dan Ubuntu telah menempatkan parameter tambahan di file ini. Prompt berwarna adalah salah satunya.

Untuk meringkas:

  • File profil adalah untuk shell login interaktif. File rc adalah untuk shell non-login interaktif.
  • File di direktori /etc dieksekusi terlebih dahulu, lalu file di direktori home.
  • Kerang interaktif non-login mendapat manfaat dari file profil dan rc.

Bagaimana cara mengetahui apakah Anda berada di shell login?

Itu sebenarnya sangat sederhana, setidaknya untuk bash shell. Untuk shell login, nama shell yang dapat dieksekusi dimulai dengan - . Untuk shell non-login, itu hanya nama shell.

Anda tahu cara memeriksa cangkangnya, bukan? Anda memeriksa nilai argumen 0.

Di desktop Linux, Anda tidak menggunakan shell login. Login Anda dikelola oleh manajer tampilan. Inilah sebabnya ketika Anda membuka terminal di desktop Linux, Anda akan melihat bahwa bahkan shell pertama yang berjalan di terminal bukanlah shell login.

Saya telah mencoba memperjelas tentang shell login di sini. Namun, jika Anda tidak pernah bertanya-tanya tentang hal-hal ini, mungkin meninggalkan beberapa pertanyaan yang belum terjawab. Jangan ragu untuk bertanya di bagian komentar dan saya akan mencoba menjawabnya.

Jika Anda adalah pengguna ahli yang membaca ini dan menemukan sesuatu yang secara teknis salah atau ada poin penting yang hilang, beri tahu saya di komentar.


Linux
  1. Cara Mengganti Shell di Linux

  2. Apa itu Red Hat Linux?

  3. Apa itu JingOS Linux?

  1. Apa itu pengguna Linux?

  2. Apa itu Umask di Linux?

  3. Apa yang dilakukan % di string shell Linux?

  1. Apa saja Jenis Shell yang Berbeda di Linux?

  2. UNIX / Linux :Apa itu Shell? Apa Shells yang berbeda?

  3. Mengubah shell default di Linux