Mengelola Pengguna & Grup, Izin & Atribut File, dan Mengaktifkan Akses Sudo di Akun - Bagian 8


Agustus lalu, Linux Foundation memulai sertifikasi LFCS (Linux Foundation Certified Sysadmin), sebuah program baru yang bertujuan untuk memungkinkan individu di mana pun dan di mana pun mengikuti ujian untuk mendapatkan sertifikasi dalam dukungan operasional dasar hingga menengah untuk sistem Linux, yang mencakup dukungan sistem dan layanan yang berjalan, serta pemantauan dan analisis secara keseluruhan, ditambah pengambilan keputusan yang cerdas untuk dapat memutuskan kapan perlu untuk mengeskalasi masalah ke tim dukungan tingkat yang lebih tinggi.

Silakan lihat sekilas video berikut yang menjelaskan pengenalan Program Sertifikasi Linux Foundation.

Artikel ini adalah Bagian 8 dari 10 seri panjang tutorial, di sini, di bagian ini, kami akan memandu Anda tentang cara mengelola izin pengguna dan grup di sistem Linux, yang diperlukan untuk ujian sertifikasi LFCS.

Karena Linux adalah sistem operasi multi-pengguna (yang memungkinkan banyak pengguna di komputer atau terminal berbeda untuk mengakses satu sistem), Anda perlu mengetahui cara melakukan manajemen pengguna yang efektif: cara menambah, mengedit, menangguhkan, atau menghapus akun pengguna, serta memberi mereka izin yang diperlukan untuk melakukan tugas yang diberikan kepada mereka.

Menambahkan Akun Pengguna

Untuk menambahkan akun pengguna baru, Anda dapat menjalankan salah satu dari dua perintah berikut sebagai root.

adduser [new_account]
useradd [new_account]

Ketika akun pengguna baru ditambahkan ke sistem, operasi berikut dilakukan.

1. Direktori home-nya dibuat (/home/nama pengguna secara default).

2. File tersembunyi berikut disalin ke direktori home pengguna, dan akan digunakan untuk menyediakan variabel lingkungan untuk sesi penggunanya.

.bash_logout
.bash_profile
.bashrc

3. Spool email dibuat untuk pengguna di /var/spool/mail/nama pengguna.

4. Grup dibuat dan diberi nama yang sama dengan akun pengguna baru.

Memahami /etc/passwd

Informasi akun lengkap disimpan dalam file /etc/passwd. File ini berisi catatan per akun pengguna sistem dan memiliki format berikut (bidang dibatasi oleh titik dua).

[username]:[x]:[UID]:[GID]:[Comment]:[Home directory]:[Default shell]
  1. Kolom [nama pengguna] dan [Komentar] sudah cukup jelas.
  2. Tanda x pada kolom kedua menunjukkan bahwa akun tersebut dilindungi oleh kata sandi bayangan (dalam /etc/shadow), yang diperlukan untuk masuk sebagai [nama pengguna] .
  3. Bidang [UID] dan [GID] adalah bilangan bulat yang mewakili Identifikasi Pengguna dan Identifikasi Grup utama yang masing-masing memiliki [nama pengguna] .
  4. [Direktori Beranda] menunjukkan jalur absolut ke direktori beranda [nama pengguna], dan
  5. [Shell Default] adalah shell yang akan tersedia bagi pengguna ini ketika dia login ke sistem.
Memahami /etc/group

Informasi grup disimpan dalam file /etc/group. Setiap catatan memiliki format berikut.

[Group name]:[Group password]:[GID]:[Group members]
  1. [Nama grup] adalah nama grup.
  2. Tanda x di [Sandi grup] menunjukkan sandi grup tidak digunakan.
  3. [GID]: sama seperti di /etc/passwd.
  4. [Anggota grup]: daftar pengguna yang menjadi anggota [Nama grup] yang dipisahkan koma.

Setelah menambahkan akun, Anda dapat mengedit informasi berikut (untuk menyebutkan beberapa bidang) menggunakan perintah usermod, yang sintaks dasarnya usermod adalah sebagai berikut.

usermod [options] [username]
Menetapkan tanggal kedaluwarsa untuk sebuah akun

Gunakan tanda –expireddate diikuti dengan tanggal dalam format YYYY-MM-DD.

usermod --expiredate 2014-10-30 tecmint
Menambahkan pengguna ke grup tambahan

Gunakan opsi gabungan -aG, atau –tambahkan –grup, diikuti dengan daftar grup yang dipisahkan koma.

usermod --append --groups root,users tecmint
Mengubah lokasi default direktori home pengguna

Gunakan opsi -d, atau –home, diikuti dengan jalur absolut ke direktori home baru.

usermod --home /tmp tecmint
Mengubah shell yang akan digunakan pengguna secara default

Gunakan –shell, diikuti dengan jalur ke shell baru.

usermod --shell /bin/sh tecmint
Menampilkan grup tempat pengguna menjadi anggotanya
groups tecmint
id tecmint

Sekarang mari jalankan semua perintah di atas sekaligus.

usermod --expiredate 2014-10-30 --append --groups root,users --home /tmp --shell /bin/sh tecmint

Pada contoh di atas, kami akan menetapkan tanggal kedaluwarsa akun pengguna tecmint ke 30 Oktober 2014. Kami juga akan menambahkan akun ke root dan grup pengguna. Terakhir, kita akan menetapkan sh sebagai shell defaultnya dan mengubah lokasi direktori home menjadi /tmp:

Baca Juga:

  1. 15 Contoh Perintah useradd di Linux
  2. 15 Contoh Perintah usermod di Linux

Untuk akun yang sudah ada, kami juga dapat melakukan hal berikut.

Menonaktifkan akun dengan mengunci kata sandi

Gunakan opsi -L (huruf besar L) atau –lock untuk mengunci sandi pengguna.

usermod --lock tecmint
Membuka kunci kata sandi pengguna

Gunakan opsi –u atau –unlock untuk membuka kunci sandi pengguna yang sebelumnya diblokir.

usermod --unlock tecmint

Membuat grup baru untuk akses baca dan tulis file yang perlu diakses oleh beberapa pengguna

Jalankan rangkaian perintah berikut untuk mencapai tujuan.

groupadd common_group # Add a new group
chown :common_group common.txt # Change the group owner of common.txt to common_group
usermod -aG common_group user1 # Add user1 to common_group
usermod -aG common_group user2 # Add user2 to common_group
usermod -aG common_group user3 # Add user3 to common_group
Menghapus grup

Anda dapat menghapus grup dengan perintah berikut.

groupdel [group_name]

Jika ada file milik nama_grup, file tersebut tidak akan dihapus, tetapi pemilik grup akan ditetapkan ke GID grup yang dihapus.

Izin Berkas Linux

Selain izin dasar membaca, menulis, dan mengeksekusi yang telah kita bahas di Alat Pengarsipan dan Mengatur Atribut File – Bagian 3 dari seri ini, ada pengaturan izin lain yang jarang digunakan (namun tidak kalah pentingnya), terkadang disebut sebagai “khusus izin ”.

Seperti izin dasar yang telah dibahas sebelumnya, izin tersebut diatur menggunakan file oktal atau melalui huruf (notasi simbolis) yang menunjukkan jenis izin.

Menghapus akun pengguna

Anda dapat menghapus sebuah akun (beserta direktori home-nya, jika dimiliki oleh pengguna, dan semua file yang berada di dalamnya, dan juga mail spool) menggunakan perintah userdel dengan perintah –remove pilihan .

userdel --remove [username]

Manajemen Grup

Setiap kali akun pengguna baru ditambahkan ke sistem, grup dengan nama yang sama dibuat dengan nama pengguna sebagai satu-satunya anggotanya. Pengguna lain dapat ditambahkan ke grup nanti. Salah satu tujuan grup adalah menerapkan kontrol akses sederhana ke file dan sumber daya sistem lainnya dengan menetapkan izin yang tepat pada sumber daya tersebut.

Misalnya, Anda memiliki pengguna berikut.

  1. pengguna1 (grup utama: pengguna1)
  2. pengguna2 (grup utama: pengguna2)
  3. pengguna3 (grup utama: pengguna3)

Semuanya memerlukan akses baca dan tulis ke file bernama common.txt yang terletak di suatu tempat di sistem lokal Anda, atau mungkin di jaringan berbagi yang pengguna1 telah dibuat. Anda mungkin tergoda untuk melakukan sesuatu seperti,

chmod 660 common.txt
OR
chmod u=rw,g=rw,o= common.txt [notice the space between the last equal sign and the file name]

Namun, ini hanya akan memberikan akses baca dan tulis kepada pemilik file dan kepada pengguna yang merupakan anggota grup pemilik file (pengguna1 dalam hal ini). Sekali lagi, Anda mungkin tergoda untuk menambahkan pengguna2 dan pengguna3 ke grup pengguna1, namun hal ini juga akan memberi mereka akses ke seluruh file yang dimiliki. oleh pengguna pengguna1 dan grup pengguna1.

Di sinilah kelompok berguna, dan inilah yang harus Anda lakukan dalam kasus seperti ini.

Memahami Setuid

Ketika izin setuid diterapkan pada file yang dapat dieksekusi, pengguna yang menjalankan program mewarisi hak istimewa efektif dari pemilik program. Karena pendekatan ini dapat menimbulkan masalah keamanan, jumlah file dengan izin setuid harus dijaga seminimal mungkin. Anda mungkin akan menemukan program dengan izin ini yang ditetapkan ketika pengguna sistem perlu mengakses file yang dimiliki oleh root.

Kesimpulannya, pengguna tidak hanya dapat mengeksekusi file biner, tetapi juga dapat melakukannya dengan hak akses root. Misalnya, mari kita periksa izin /bin/passwd. Biner ini digunakan untuk mengubah kata sandi akun, dan memodifikasi file /etc/shadow. Pengguna super dapat mengubah kata sandi siapa pun, tetapi semua pengguna lain hanya dapat mengubah kata sandinya sendiri.

Oleh karena itu, setiap pengguna harus memiliki izin untuk menjalankan /bin/passwd, namun hanya root yang dapat menentukan akun. Pengguna lain hanya dapat mengubah kata sandinya yang sesuai.

Memahami Setgid

Ketika bit setgid disetel, GID efektif dari pengguna sebenarnya menjadi milik pemilik grup. Dengan demikian, setiap pengguna dapat mengakses file di bawah hak istimewa yang diberikan kepada pemilik grup file tersebut. Selain itu, ketika bit setgid disetel pada sebuah direktori, file yang baru dibuat mewarisi grup yang sama dengan direktori tersebut, dan subdirektori yang baru dibuat juga akan mewarisi bit setgid dari direktori induk. Kemungkinan besar Anda akan menggunakan pendekatan ini setiap kali anggota grup tertentu memerlukan akses ke semua file dalam direktori, terlepas dari grup utama pemilik file.

chmod g+s [filename]

Untuk menyetel setgid dalam bentuk oktal, tambahkan angka 2 ke izin dasar saat ini (atau yang diinginkan).

chmod 2755 [directory]
Mengatur SETGID dalam direktori

Memahami Bit Lengket

Ketika “sticky bit ” disetel pada file, Linux akan mengabaikannya, sedangkan untuk direktori, hal ini memiliki efek mencegah pengguna menghapus atau bahkan mengganti nama file yang ada di dalamnya kecuali pengguna adalah pemilik direktori tersebut, file, atau root.

chmod o+t [directory]

Untuk menyetel sticky bit dalam bentuk oktal, tambahkan angka 1 ke izin dasar saat ini (atau yang diinginkan).

chmod 1755 [directory]

Tanpa sedikit pun lengket, siapa pun yang dapat menulis ke direktori dapat menghapus atau mengganti nama file. Oleh karena itu, bit lengket biasanya ditemukan pada direktori, seperti /tmp, yang dapat ditulis oleh dunia.

Atribut File Linux Khusus

Ada atribut lain yang memungkinkan pembatasan lebih lanjut pada operasi yang diperbolehkan pada file. Misalnya, mencegah file diganti namanya, dipindahkan, dihapus, atau bahkan diubah. Mereka diatur dengan perintah chattr dan dapat dilihat menggunakan alat lsattr, sebagai berikut.

chattr +i file1
chattr +a file2

Setelah menjalankan kedua perintah tersebut, file1 tidak akan dapat diubah (artinya tidak dapat dipindahkan, diganti namanya, diubah atau dihapus) sedangkan file2 akan memasuki mode append-only (hanya dapat buka dalam mode tambahkan untuk menulis).

Mengakses Akun root dan Menggunakan sudo

Salah satu cara pengguna mendapatkan akses ke akun root adalah dengan mengetik.

su

dan kemudian memasukkan kata sandi root.

Jika otentikasi berhasil, Anda akan login sebagai root dengan direktori kerja saat ini sama seperti sebelumnya. Jika Anda ingin ditempatkan di direktori home root, jalankan.

su -

lalu masukkan kata sandi root.

Prosedur di atas mengharuskan pengguna normal mengetahui kata sandi root, yang menimbulkan risiko keamanan yang serius. Oleh karena itu, sysadmin dapat mengkonfigurasi perintah sudo untuk memungkinkan pengguna biasa menjalankan perintah sebagai pengguna berbeda (biasanya pengguna super) dengan cara yang sangat terkontrol dan terbatas. Dengan demikian, pembatasan dapat ditetapkan pada pengguna sehingga memungkinkan dia untuk menjalankan satu atau lebih perintah istimewa tertentu dan tidak ada yang lain.

Baca Juga: Perbedaan Pengguna su dan sudo

Untuk mengautentikasi menggunakan sudo, pengguna menggunakan kata sandinya sendiri. Setelah memasukkan perintah, kita akan diminta memasukkan kata sandi kita (bukan pengguna super) dan jika otentikasi berhasil (dan jika pengguna telah diberikan hak istimewa untuk menjalankan perintah), perintah yang ditentukan akan dijalankan.

Untuk memberikan akses ke sudo, administrator sistem harus mengedit file /etc/sudoers. Disarankan agar file ini diedit menggunakan perintah visudo daripada membukanya langsung dengan editor teks.

visudo

Ini akan membuka file /etc/sudoers menggunakan vim (Anda dapat mengikuti instruksi yang diberikan di Instal dan Gunakan vim sebagai Editor – Bagian 2 dari seri ini untuk mengedit file).

Ini adalah baris yang paling relevan.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin"
root        ALL=(ALL) ALL
tecmint     ALL=/bin/yum update
gacanepa    ALL=NOPASSWD:/bin/updatedb
%admin      ALL=(ALL) ALL

Mari kita lihat lebih dekat.

Defaults    secure_path="/usr/sbin:/usr/bin:/sbin:/usr/local/bin"

Baris ini memungkinkan Anda menentukan direktori yang akan digunakan untuk sudo, dan digunakan untuk mencegah penggunaan direktori khusus pengguna, yang dapat membahayakan sistem.

Baris berikutnya digunakan untuk menentukan izin.

root        ALL=(ALL) ALL
  1. Kata kunci SEMUA pertama menunjukkan bahwa aturan ini berlaku untuk semua host.
  2. SEMUA kedua menunjukkan bahwa pengguna di kolom pertama dapat menjalankan perintah dengan hak istimewa pengguna mana pun.
  3. SEMUA ketiga berarti perintah apa pun dapat dijalankan.
tecmint     ALL=/bin/yum update

Jika tidak ada pengguna yang ditentukan setelah tanda =, sudo mengasumsikan pengguna root. Dalam hal ini, pengguna tecmint akan dapat menjalankan yum update sebagai root.

gacanepa    ALL=NOPASSWD:/bin/updatedb

Perintah NOPASSWD memungkinkan pengguna gacanepa menjalankan /bin/updatedb tanpa perlu memasukkan kata sandinya.

%admin      ALL=(ALL) ALL

Tanda % menunjukkan bahwa baris ini berlaku untuk grup yang disebut “admin ”. Arti dari baris selanjutnya sama dengan arti pengguna biasa. Artinya, anggota grup “admin ” dapat menjalankan semua perintah sebagai pengguna mana pun di semua host.

Untuk melihat hak istimewa apa yang diberikan kepada Anda oleh sudo, gunakan opsi “-l ” untuk mencantumkannya.

PAM (Modul Otentikasi yang Dapat Dicolokkan)

Modul Otentikasi yang Dapat Dicolokkan (PAM) menawarkan fleksibilitas pengaturan skema autentikasi tertentu pada basis per aplikasi dan/atau per layanan menggunakan modul. Alat yang ada di semua distribusi Linux modern ini mengatasi masalah yang sering dihadapi oleh pengembang di masa-masa awal Linux, ketika setiap program yang memerlukan otentikasi harus dikompilasi secara khusus untuk mengetahui cara mendapatkan informasi yang diperlukan.

Misalnya, dengan PAM, tidak masalah apakah sandi Anda disimpan di /etc/shadow atau di server terpisah di dalam jaringan Anda.

Misalnya, ketika program login perlu mengautentikasi pengguna, PAM menyediakan secara dinamis perpustakaan yang berisi fungsi untuk skema otentikasi yang tepat. Oleh karena itu, mengubah skema otentikasi untuk aplikasi login (atau program lain yang menggunakan PAM) sangatlah mudah karena hanya melibatkan pengeditan file konfigurasi (kemungkinan besar, file yang diberi nama aplikasi, terletak di dalam /etc/pam.d , dan lebih kecil kemungkinannya di /etc/pam.conf).

File di dalam /etc/pam.d menunjukkan aplikasi mana yang menggunakan PAM secara asli. Selain itu, kita dapat mengetahui apakah aplikasi tertentu menggunakan PAM dengan memeriksa apakah perpustakaan PAM (libpam) telah ditautkan ke aplikasi tersebut:


ldd $(which login) | grep libpam # login uses PAM
ldd $(which top) | grep libpam # top does not use PAM

Pada gambar di atas kita dapat melihat bahwa libpam telah terhubung dengan aplikasi login. Hal ini masuk akal karena aplikasi ini terlibat dalam pengoperasian otentikasi pengguna sistem, sedangkan top tidak.

Mari kita periksa file konfigurasi PAM untuk passwd – ya, utilitas terkenal untuk mengubah kata sandi pengguna. Letaknya di /etc/pam.d/passwd:


cat /etc/passwd

Kolom pertama menunjukkan type otentikasi yang akan digunakan dengan module-path (kolom ketiga). Ketika tanda hubung muncul sebelum tipe, PAM tidak akan mencatat ke log sistem jika modul tidak dapat dimuat karena tidak dapat ditemukan di sistem.

Jenis otentikasi berikut tersedia:

  1. akun: jenis modul ini memeriksa apakah pengguna atau layanan telah memberikan kredensial yang valid untuk mengautentikasi.
  2. auth: jenis modul ini memverifikasi bahwa pengguna adalah siapa yang dia klaim dan memberikan hak istimewa apa pun yang diperlukan.
  3. password: jenis modul ini memungkinkan pengguna atau layanan memperbarui kata sandi mereka.
  4. sesi: jenis modul ini menunjukkan apa yang harus dilakukan sebelum dan/atau setelah otentikasi berhasil.

Kolom kedua (disebut control) menunjukkan apa yang harus terjadi jika otentikasi dengan modul ini gagal:

  1. persyaratan: jika otentikasi melalui modul ini gagal, otentikasi keseluruhan akan segera ditolak.
  2. required mirip dengan requisite, meskipun semua modul lain yang terdaftar untuk layanan ini akan dipanggil sebelum menolak otentikasi.
  3. sufficient: jika otentikasi melalui modul ini gagal, PAM akan tetap memberikan otentikasi meskipun sebelumnya ditandai sebagai diperlukan gagal.
  4. opsional: jika otentikasi melalui modul ini gagal atau berhasil, tidak ada yang terjadi kecuali modul ini adalah satu-satunya jenis modul yang ditentukan untuk layanan ini.
  5. include berarti baris-baris dari tipe tertentu harus dibaca dari file lain.
  6. substack mirip dengan penyertaan tetapi kegagalan atau keberhasilan otentikasi tidak menyebabkan keluarnya seluruh modul, tetapi hanya substack.

Kolom keempat, jika ada, menunjukkan argumen yang akan diteruskan ke modul.

Tiga baris pertama di /etc/pam.d/passwd (ditampilkan di atas), muat modul system-auth untuk memeriksa apakah pengguna telah memberikan kredensial yang valid (akun) . Jika demikian, ia dapat mengubah token autentikasi (kata sandi) dengan memberikan izin untuk menggunakan kata sandi (auth).

Misalnya, jika Anda menambahkan


remember=2

ke baris berikut


password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok

di /etc/pam.d/system-auth:


password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=2

dua sandi terakhir yang di-hash dari setiap pengguna disimpan di /etc/security/opasswd sehingga tidak dapat digunakan kembali:

Ringkasan

Keterampilan manajemen pengguna dan file yang efektif adalah alat penting bagi administrator sistem mana pun. Dalam artikel ini kami telah membahas dasar-dasarnya dan berharap Anda dapat menggunakannya sebagai titik awal yang baik untuk membangun. Jangan ragu untuk meninggalkan komentar atau pertanyaan Anda di bawah, dan kami akan merespons dengan cepat.