Perintah id Linux: periksa UID, GID, dan kelompok pengguna

Perintah id menampilkan user ID (UID), group ID (GID), dan kelompok tambahan untuk proses saat ini atau akun yang disebutkan. Jalankan tanpa nama pengguna untuk memeriksa konteks sesi yang sedang dipakai; tambahkan nama pengguna untuk membaca informasi akun dari basis data. Keduanya membantu pemeriksaan identitas, tetapi tidak selalu menjawab pertanyaan yang sama.

Sintaks dan perbedaan proses dengan akun

id [OPSI] [PENGGUNA]

OPSI dan PENGGUNA adalah penanda yang perlu diganti. UID adalah nomor identitas pengguna dan GID adalah nomor identitas kelompok. Nama dalam tanda kurung merupakan nama yang dipetakan ke nomor tersebut. Nomor dan nama aktual bergantung pada sistem.

Tanpa PENGGUNA, GNU id melaporkan identitas proses yang menjalankannya. Dengan nama pengguna, perintah mencari informasi akun tersebut. Meminta informasi akun lain tidak menjalankan shell sebagai akun itu dan tidak mengubah kelompok proses Anda.

Periksa id --version, id --help, dan man id sesuai implementasi terpasang. Opsi dan bidang tambahan dapat berbeda menurut sistem serta fitur keamanan yang aktif.

Lihat identitas pada sesi yang bermasalah

id

Keluaran GNU biasanya memuat uid=, gid=, dan groups=. Secara bawaan, UID riil dan GID riil ditampilkan; UID efektif atau GID efektif juga ditampilkan bila berbeda. Pada sesi biasa, nilai riil dan efektif sering sama, sehingga keluaran dapat terlihat lebih singkat.

Jalankan perintah ini di terminal, shell, atau konteks proses yang memang mengalami masalah akses. Hasil dari sesi lain belum tentu mempunyai daftar kelompok yang sama. Untuk nama UID efektif saja, whoami untuk memeriksa pengguna efektif merupakan pemeriksaan ringkas.

Cari informasi akun tertentu tanpa berpindah pengguna

id alice

Alice adalah nama akun contoh, bukan akun yang pasti ada pada komputer Anda. Ganti alice dengan akun yang benar-benar ingin diperiksa. Jika akun tidak ditemukan, id dapat menampilkan pesan kesalahan dan status gagal; contoh tersebut tidak membuat akun baru.

Keluaran dengan nama akun berasal dari pencarian informasi pengguna dan kelompok. Identitas shell tempat Anda menjalankan perintah tetap sama. Jangan memakai keberhasilan id alice sebagai bukti bahwa Anda telah masuk atau mendapat izin bertindak sebagai alice.

Pilih hanya nomor atau nama yang dibutuhkan

id -u
id -un

Perintah pertama mencetak UID efektif sebagai angka. Perintah kedua mencetak nama yang terkait dengan UID efektif. Gunakan pilihan yang sesuai untuk skrip, alih-alih memotong teks keluaran lengkap yang memuat label dan nama.

Untuk kelompok efektif utama, gunakan id -g; untuk nama kelompok itu, gunakan id -gn. Semua ID kelompok dapat diperiksa dengan id -G, sedangkan id -Gn menampilkan namanya. Kelompok utama termasuk dalam daftar kelompok tersebut.

Permintaan nama dengan -n dapat gagal jika suatu ID tidak dapat dipetakan ke nama. Periksa pesan galat dan status perintah; keluaran angka yang masih muncul tidak berarti pencarian nama berhasil. Opsi tanpa -n membantu memeriksa nomor identitas saat pemetaan nama bermasalah.

Jika perlu membedakan identitas riil dari efektif, id -ru memilih UID riil dan id -rg memilih GID riil. Opsi -r adalah pengubah untuk -u, -g, atau -G; kata riil di sini merujuk pada atribut proses, bukan jaminan nama login paling awal. Dasar identitas proses Linux dibahas dalam manual credentials Linux.

Baca contoh UID, GID, dan groups

id

Contoh keluaran berikut hanya ilustrasi. Nomor, nama akun, dan nama kelompok pada sistem Anda dapat berbeda.

uid=1000(alice) gid=1000(alice) groups=1000(alice),27(sudo)
  • uid=1000(alice) menyatakan UID 1000 dengan nama pengguna alice.
  • gid=1000(alice) menyatakan GID utama 1000 dengan nama kelompok alice. Nama kelompok tidak ditentukan oleh nama di sebelah uid=; pengguna dan kelompok mempunyai pemetaan masing-masing.
  • groups=1000(alice),27(sudo) memuat daftar kelompok pada contoh, termasuk kelompok utama dan kelompok tambahan sudo.

Angka 1000 dan 27 bukan nilai yang wajib dipakai pada setiap sistem. Nama kelompok sudo dalam ilustrasi juga bukan bukti mandiri bahwa semua perintah administrator diizinkan; otorisasi tetap mengikuti kebijakan sistem. Gunakan keluaran id untuk memahami identitas dan kelompok, lalu periksa aturan akses yang relevan.

Opsi yang sering digunakan

Opsi Kegunaan tanpa nama pengguna
-u Menampilkan UID efektif saja.
-g Menampilkan GID efektif utama saja.
-G Menampilkan ID kelompok utama dan tambahan.
-n Meminta nama sebagai pengganti angka bersama -u, -g, atau -G.
-r Memilih identitas riil sebagai pengganti efektif bersama -u, -g, atau -G.

Mengapa daftar kelompok dapat berbeda?

Kelompok proses biasanya diwarisi dari proses induk dan tidak otomatis diperbarui hanya karena basis data kelompok berubah. Karena itu, id pada sesi yang sudah lama terbuka dapat berbeda dari id dengan nama akun yang mencari informasi terbaru.

Saat memeriksa perubahan keanggotaan kelompok, bedakan dua pertanyaan: kelompok apa yang dimiliki proses saat ini, dan kelompok apa yang tercatat untuk akun sekarang? Jalankan id tanpa nama pada sesi bermasalah, lalu bandingkan dengan pencarian akun. Jika sesi baru diperlukan, ikuti prosedur login atau pengelolaan layanan pada lingkungan tersebut dan periksa lagi pada proses baru. Hasil pencarian akun saja tidak memperbarui proses yang sudah berjalan.

Perbedaan pencarian akun dan kelompok proses dijelaskan dalam manual GNU coreutils 9.11, bagian id invocation. Tidak perlu mengubah akun atau kelompok hanya untuk membaca informasi id.

FAQ

Apa perbedaan UID dan GID?

UID mengidentifikasi pengguna, sedangkan GID mengidentifikasi kelompok. Keluaran lengkap id juga mencantumkan daftar groups, yang dapat berisi kelompok utama dan kelompok tambahan.

Apakah id alice mengubah pengguna shell menjadi alice?

Tidak. Perintah itu mencari informasi akun alice. Jalankan id tanpa nama untuk memeriksa identitas proses yang sedang dipakai.

Ringkasan opsi dan format keluaran tersedia pada manual GNU id yang ditayangkan di man7.