LINUX
SYSTEM
ADMIN
MUHAMAD ANDI SOFIYAN
__________________________________________________
PANDUAN PALING MEDASAR DAN PALING LENGKAP SEPUTAR ADMINISTRASI SISTIM LINUX YANG MELIPUTI HAL-HAL YANG PALING
SERING DIGUNAKAN UNTUK SEMUA KALANGAN YANG INGIN MEMAHAMI TENTANG SERVER LINUX DAN PRAKTISI TEKNOLOGI
INFORMASI
. . .
www belajarserver web id
Dasar-dasar
Sistim Administrasi di
Linux
Disusun di tahun 2021 Masehi
Buku ini boleh di-print. Ukuran kertas: Letter. File digitalnya boleh disebarkan seluas-luasnya untuk keperluan edukasi, tanpa merubah apa pun di dalamnya, dan
tetap menyertakan halaman ini, apabila di-print filenya, di dalam bundel jilidnya.
SEMUA KONTEN DALAM BUKU INI TELAH DIPRAKTEKKAN.
UNTUK MEMPRAKTEKKAN PANDUAN INI, GUNAKANLAH SERVER KOSONG. TIDAK DISARANKAN MENGGUNAKAN SERVER PRODUKSI.
TERSEDIA JASA LES PRIVAT ONLINE UNTUK MEMAHAMI ISI DI DALAM BUKU INI.
Untuk tarif les privat online belajar server guna memahami panduan yang ada di dalam buku ini, ada dua sistim tarif: pertama, borongan dan kedua, satuan. Untuk borongan harganya 500 ribu rupiah belajar sampai bisa. Sedangkan untuk satuan, per
sekali pertemuan 50 ribu rupiah dengan lama pertemuan tidak dibatasi, berapa jam saja pun boleh.
Baik itu untuk borongan maupun satuan, jam belajar bebas boleh jam berapa saja dan hari apa saja, dapat dipilih sesuai dengan ketersediaan waktu.
UNTUK MENDAPATKAN LES PRIVAT ONLINE UNTUK BUKU PANDUAN INI, DAPAT MENGHUBUNGI WHATSAPP +62-813-940-333-63
1. Pengantar Memahami Terminal Linux
a. Pengantar
Tutorial ini, adalah yang pertama di dalam serangkaian tutorial yang mengajarkan dasar-dasar Linux sebagai fondasi bagi pengguna baru, yang mencakup cara memulai dengan terminal, command line Linux, dan mengeksekusi perintah. Apabila Anda baru pertama kali menggunakan Linux, Anda tentu ingin mengakrabkan diri dengan terminal, karena terminal merupakan cara standar untuk berinteraksi dengan suatu server Linux. Menggunakan command line terlihat seperti sulit tetapi sebenarnya sangat mudah apabila Anda memulai dengan dasar-dasarnya.
Tutorial ini dibuat menggunakan Ubuntu 18.04 tetapi prinsip-prinsip umum yang ada pada terminal dapat digunakan pada semua distribusi Linux, dan hampir tidak pernah berubah caranya, sepanjang sejarah Linux telah ada.
Mari kita mulai dengan emulator terminal.
b. Emulator Terminal
Emulator terminal adalah suatu program yang membolehkan penggunaan terminal di dalam lingkungan grafis. Karena sebagian besar orang menggunakan sistim operasi dengan graphical user interface (GUI) untuk keperluan berkomputer sehari-hari, penggunaan dari emulator terminal adalah harus untuk sebagian besar pengguna server Linux.
Berikut ini adalah beberapa emulator terminal yang biasa digunakan oleh sistim operasi:
Mac OS X: Terminal (default), iTerm 2 Windows: PuTTY
Linux: Terminal, KDE Konsole, XTerm
Setiap emulator terminal memiliki seperangkat fiturnya sendiri-sendiri, tetapi semua yang ditulis di atas adalah terminal yang bagus dan mudah digunakan.
c. Shell
Di dalam suatu sistim Linux, shell adalah suatu interface command-line yang meng- interpret suatu perintah dari pengguna dan juga file-file berisi skrip, dan mengatakan
kepada sistim operasi apa yang harus dilakukan dengan perintah-perintah itu. Ada beberapa shell yang secara luas digunakan, seperti Bourne shell (sh) dan C shell (csh). Setiap shell memiliki seperangkat fiturnya sendiri dan seluk-beluknya, berkenaan dengan bagaimana perintah ditafsirkan, tetapi bahkan semua fitur redirection/pengalihan input dan output, variable, dan condition-testing, berada di antara hal-hal lainnya.
Tutorial ini ditulis menggunakan Bourne-Again shell yang biasanya dirujuk sebagai bash, yang merupakan shell default bagi sebagian distribusi Linux, termasuk Ubuntu, CentOS, dan RedHat.
d. Command Prompt
Pertama kali Anda login kepada suatu server, biasanya Anda disapa oleh Message of the Day (MOTD), yang berisi pesan informasi yang menyertakan versi dari distribusi Linux yang sedang berjalan. Setelah MOTD tersebut, Anda akan didaratkan pada command prompt, atau shell prompt, di mana Anda dapat mengeluarkan perintah kepada server.
Informasi yang disajikan pada command prompt dapat disesuaikan oleh usernya, tetapi di sini ada contoh default dari command prompt Ubuntu 18.04:
joko@webapp:~$
Berikut ini adalah rincian komposisi dari command prompt:
joko: Nama pengguna/username dari pengguna saat ini webapp: Namahost/hostname dari server tersebut
~: Direktori saat ini. Di dalam bash, yang merupakan shell default, tanda ~, atau tilde, adalah suatu karakter khusus yang merupakan kependekan dari path dari direktori home pengguna saat ini; dalam hal ini, ia mewakili /home/joko
$: Simbol prompt. Ini merupakan akhir dari command prompt, yang setelah itu input dari keyboard pengguna akan muncul
Berikut adalah contoh dari tampilan command prompt, apabila Anda masuk sebagai root dan berada di dalam direktori /var/log:
root@webapp:/var/log#
Catatan, simbol yang mengakhir command prompt adalah suatu tanda # (pagar), yang merupakan simbol prompt standar untuk root. Di dalam Linux, pengguna root adalah
akun superuser, yang merupakan akun pengguna khusus yang dapat melakukan fungsi administrasi sistim secara keseluruhan yang tidak dibatasi oleh apa pun untuk melakukan suatu tugas pada suatu server.
e. Mengeksekusi Perintah/Command
Perintah dapat dikeluarkan pada command prompt dengan menyebutkan nama file yang dapat dieksekusi, yang merupakan program biner atau suatu script. Ada banyak perintah standar di Linux dan utilitasnya yang terpasang di dalam OS, yang
membolehkan Anda untuk melakukan navigasi pada file system, meng-install paket- paket software, dan mengkonfigurasi sistim dan aplikasi.
Suatu instance dari suatu perintah yang berjalan dikenal sebagai suatu process. Ketika suatu perintah dieksekusi pada foreground, yang merupakan cara default untuk mengeksekusi perintah, user harus menunggu proses tersebut hingga selesai sebelum dikembalikan kepada command prompt, untuk melakukan eksekusi perintah
berikutnya.
Penting dicatat bahwa hampir segala sesuatu di dalam Linux adalah case-sensitive atau dibedakan antara huruf kecil dan huruf besar, termasuk file dan nama direktori, perintah, argumen, dan opsi-opsinya. Apabila sesuatu tidak bekerja seperti yang diharapkan, periksalah ulang ejaan dan besar kecil huruf dari perintah tersebut!
Kami akan memberikan sedikit contoh yang akan mencakup dasar-dasar pengeksekusian perintah.
f. Tanpa Argumen atau Opsi
Untuk mengeksekusi perintah tanpa argumen atau opsi apa pun, cukup ketik nama dari perintah dan tekan RETURN/Enter.
Catatan, Return dan Enter pada dasarnya adalah dua tombol yang berbeda. Return berada pada jajaran tombol huruf dan Enter berada pada jajaran tombol angka pada keyboard.
Tetapi keduanya umumnya berfungsi sama dan berbeda pada penggunaan beberapa software.
Apabila Anda menjalankan suatu perintah, keluaran akan berbeda dari satu perintah dengan perintah lainnya. Misal, apabila Anda menjalankan perintah cd tanpa argumen apa pun, Anda akan dikembalikan kepada direktori home Anda. Perintah ls akan menghasilkan keluaran berupa daftar file dan direktori yang ada di dalam direktori
tersebut. Perintah ip tanpa argumen apa pun akan menghasilkan pesan yang menunjukkan kepada Anda bagaimana menggunakan perintah ip.
Cobalah menjalankan perintah ls tanpa argumen untuk melihat daftar file dan direktori di dalam direktori Anda saat ini (mungkin tidak ada keluarannya):
ls
g. Dengan Argumen
Banyak perintah yang menerima argumen, atau parameter, yang dapat mempengaruhi behavior dari suatu perintah. Sebagai contoh, cara yang paling lazim untuk
menggunakan perintah cd adalah dengan memberikan satu argumen tunggal yang menyebutkan ke direktori mana berpindah. Misal, untuk berpindah ke direktori /usr/bin, di mana banyak perintah standar terpasang, Anda akan mengeluarkan perintah berikut:
cd /usr/bin
Komponen cd adalah perintahnya, dan argumen pertama /usr/bin mengikuti perintah tersebut. Lihatlah bagaimana path pada command prompt Anda telah berubah.
Apabila Anda suka, cobalah menjalankan perintah ls untuk melihat apa saja yang ada di dalam direktori Anda saat ini setelah Anda berpindah.
ls
h. Dengan Opsi
Sebagian besar perintah menerima opsi, juga dikenal sebagai flag atau switch, yang merubah behaviour dari perintah tersebut. Karena semuanya itu adalah argumen khusus, yakni opsi yang mengikuti suatu perintah, dan ditandakan oleh suatu karakter tunggal – (setrip) yang diikuti oleh satu atau lebih banyak opsi, yang diwakili oleh huruf tunggal kecil atau besar. Sebagai tambahan, beberapa opsi dimulai dengan — (setrip ganda), dan diikuti oleh satu atau dua karakter opsi (biasanya suatu kata yang deskriptif).
Untuk satu contoh dasar mengenai bagaimana opsi bekerja, mari lihat pada perintah ls. Di sini ada sepasang dari opsi yang lazim dan biasa digunakan dengan perintah ls:
-l: menghasilkan suatu keluaran long listing atau daftar panjang, yang menyertakan rincian ekstra seperti permisi/izin, kepemilikan, ukuran file, dan timestamp
-a: menghasilkan suatu daftar dari semua file, termasuk yang tersembunyi (yang dimulai dengan tanda titik . )
Untuk menggunakan flag -l dengan ls, gunakan perintah berikut:
ls -l
Catatan: daftar keluaran dari perintah tersebut menyertakan file yang sama seperti sebelumnya, tetapi disertai dengan informasi tambahan mengenai setiap file.
Seperti disebutkan sebelumnya, beberapa opsi dapat dikelompokkan bersama.
Apabila Anda ingin menggunakan opsi -l dan -a bersama-sama, Anda dapat menjalankan perintah ls -l atau ls -a, atau gabungkan kedua perintah itu seperti berikut:
ls -la
Catatan, daftar tersebut menyertakan direktori-direktori satu titik tersembunyi . dan dua titik tersembunyi .. di dalam listing tersebut, karena adanya opsi -a.
i. Dengan Opsi dan Argumen
Opsi dan argumen hampir selalu dapat dikombinasikan, ketika menjalankan perintah.
Misal, Anda dapat memeriksa isi dari direktori /home, tanpa memperhatikan direktori di mana saat ini Anda berada, dengan menjalankan perintah ls yang diikuti dengan /home:
ls -la /home
Dalam perintah tersebut, ls adalah perintahnya, -la adalah opsinya, dan /home adalah argumen yang menandakan file atau direktori mana yang hendak diperlihatkan isinya.
Perintah ini seharusnya mengeluarkan rincian dari isi direktori /home, yang mana direktori home tersebut adalah direktori yang secara normal ada di setiap pengguna dari server tersebut.
j. Variabel Environtment
Variabel environtment adalah nilai yang digunakan untuk merubah cara bagaimana perintah dieksekusi. Ketika Anda pertama kali masuk ke suatu server, beberapa variabel environtment akan diatur menurut beberapa file konfigurasi secara default.
Melihat Semua Variabel Environment
Untuk melihat semua dari variabel environtment yang diatur untuk suatu sesi terminal secara khusus, jalankanlah perintah env:
env
Akan ada banyak hasil keluaran, tetapi coba lihat pada keluaran PATH:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
usr/games:/usr/local/games
Variabel environtment PATH adalah suatu daftar yang dipisahkan oleh tanda titik dua yang memisahkan direktori di mana shell akan mencari program-program atau skrip- skrip yang dapat dieksekusi ketika suatu perintah dikeluarkan. Misal, perintah env berlokasi di direktori /usr/bin, dan kita dapat mengeksekusinya tanpa menyebutkan lokasinya secara penuh karena pathnya ada di dalam variabel environtment PATH.
Melihat Nilai dari suatu Variabel
Nilai dari suatu variabel environtment dapat diperoleh dengan menaruh nama variabel dengan suatu tanda $. Tindakan tersebut akan memperpanjang variabel yang dirujuk kepada nilainya.
Sebagai contoh, untuk menghasilkan nilai dari variabel PATH, Anda dapat menggunakan perintah echo:
echo $PATH
Atau Anda dapat menggunakan variabel HOME, yang secara defaultnya diatur kepada direktori home, untuk berpindah kepada direktori home sebagai berikut:
cd $HOME
Apabila Anda mencoba mengakses suatu variabel environment yang belum ditetapkan, dia tidak akan diperpanjang; isinya string kosong.
Menetapkan Variabel Environtment
Sekarang Anda mengetahui bagaimana melihat variabel environtment. Anda juga perlu mempelajari bagaimana mengaturnya.
Untuk mengatur variabel environtment, semua yang diperlukan adalah mengatur nama variabel, yang diikuti segera dengan suatu tanda = (sama dengan), lalu kemudian diikuti dengan nilai yang diinginkan:
nama-variabel=nilai-variabel
Catatan, apabila Anda menetapkan suatu variabel yang telah ada, maka nilai yang aslinya akan diperbarui. Apabila variabel tersebut tidak ada, maka variabel itu akan diciptakan.
Anda juga dapat merujuk kepada variabel yang ada ketika mengatur suatu variabel.
Misal, apabila Anda memasang suatu aplikasi ke direktori /opt/app/bin, Anda dapat menambahkan ke direktori itu pada akhir dari variabel environtment Anda, suatu PATH dengan perintah berikut:
export PATH=$PATH:/opt/app/bin
Sekarang periksalah bahwa /opt/app/bin telah ditambahkan kepada akhir dari variabel PATH Anda dengan perintah echo:
echo $PATH
Ingatlah bahwa mengatur variabel environment dengan cara ini hanya mengatur untuk sesi saat ini. Ini bermakna bahwa apabila Anda keluar atau berpindah kepada sesi lain, perubahan yang Anda buat kepada environment tidak akan disimpan.
Kesimpulan
Sekarang Anda telah mempelajari mengenai dasar-dasar dari terminal di Linux (dan beberapa perintah), sehingga Anda seharusnya sudah memiliki fondasi yang bagus untuk memperluas pengetahuan Anda mengenai perintah-perintah di Linux. Bacalah tutorial berikutnya di dalam rangkaian ini untuk mempelajari bagaimana melakukan navigasi, melihat, dan meng-edit file dan izin/permisi dari file-file itu.
========================
2. Pengelolaan File dan Navigasi Dasar di Linux
a. Pengantar
Apabila Anda belum memiliki banyak pengalaman bekerja dengan sistim Linux, Anda mungkin bingung dengan banyaknya perintah sistim operasi pada command line. Dalam panduan ini, kami akan mencoba mengajak Anda maju dengan cepat.
Panduan ini bukan hendak mencakup semua yang Anda perlukan untuk secara efektif menggunakan sistim Linux. Tetapi, tetapi ia dapat menjadi pendorong untuk
eksplorasi lebih jauh. Panduan ini akan memberi Anda hal minimal yang paling sederhana yang perlu Anda ketahui sebelum berlanjut pada panduan berikutnya.
b .Prasyarat dan Tujuan
Anda juga perlu memahami bagaimana cara terminal bekerja dan tampilan dari perintah yang dijalankan. Panduan ini mencakup dasar-dasar terminal. Anda dapat memeriksanya di bagian arsip untuk panduan lainnya apabila Anda pertama kali menggunakannya.
Semua materi di dalam panduan ini dapat dikerjakan menggunakan akun pengguna non-root (non-administratif). Anda dapat mempelajari bagaimana cara
mengkonfigurasi jenis akun user ini dengan mengikuti panduan awal penyetelan server Ubuntu.
Ketika Anda siap untuk memulai, terhubunglah kepada server Linux menggunakan SSH dan lanjutkan langkah-langkah di bawah ini.
c. Navigasi dan Eksplorasi
Ini adalah keahlian yang paling mendasar yang Anda perlukan untuk berkuasa di seputaran filesystem dan mencari tahu apa saja yang ada di sekitaran. Kita akan mendiskusikan tools yang membolehkan Anda untuk melakukan hal tersebut di bagian ini.
d. Mencari Tahu di Mana Anda Berada dengan Perintah pwd
Ketika Anda masuk ke dalam suatu server, biasanya Anda dijatuhkan di direktori home pengguna. Suatu direktori home adalah direktori yang dibuat untuk satu
pengguna untuk menyimpan file dan menciptakan direktori lainnya. Itu adalah lokasi di dalam filesystem di mana Anda berkuasa penuh.
Untuk menemukan di mana direktori home Anda berada sehubungan dengan filesystem selebihnya, Anda dapat menggunakan perintah pwd. Perintah ini menampilkan direktori di mana kita berada saat ini:
pwd
Anda seharusnya memperoleh informasi seperti berikut:
/home/joko
Direktori home berada sebelum nama pengguna, sehingga contoh di atas muncul apabila Anda masuk ke server di mana ada pengguna dengan nama joko. Direktori ini ada pada direktori yang disebut /home, di mana ia berada pada direktori tingkat atas, yang disebut root yang namanya diwakili oleh tanda slash /.
e. Melihat Isi Direktori menggunakan ls
Sekarang Anda tahu bagaimana cara menampilkan di mana Anda berada. Kemudian kami dapat menunjukkan kepada Anda bagaimana cara melihat isi direktori.
Sekarang, direktori home Anda yang kita lihat di atas, di situ tidak banyak yang dapat dilihat, sehingga kita akan berpindah ke direktori lain, yang lebih banyak isinya untuk dijelajahi. Ketikkanlah perintah berikut pada terminal untuk berpindah ke direktori ini. Setelah itu kita akan menggunakan pwd untuk mengkonfirmasi bahwa kita telah berhasil berpindah:
cd /usr/share pwd
/usr/share
Sekarang kita berada di dalam direktori baru, mari lihat apa yang ada di dalamnya.
Untuk melakukan ini, kita dapat menggunakan perintah ls:
ls
adduser groff pam-configs applications grub perl
apport grub-gfxpayload-lists perl5
apps hal pixmaps apt i18n pkgconfig aptitude icons polkit-1
apt-xapian-index info popularity-contest . . .
Seperti yang dapat Anda lihat, ada banyak item di dalam direktori ini. Kita dapat menambahkan flag pada perintah tersebut untuk merubah tingkah laku defaultnya.
Misal, untuk mendaftar semua isi dalam bentuk yang lebih banyak, kita dapat menggunakan flag -l (untuk output long):
ls -l
total 440
drwxr-xr-x 2 root root 4096 Apr 17 2014 adduser drwxr-xr-x 2 root root 4096 Sep 24 19:11 applications drwxr-xr-x 6 root root 4096 Oct 9 18:16 apport
drwxr-xr-x 3 root root 4096 Apr 17 2014 apps drwxr-xr-x 2 root root 4096 Oct 9 18:15 apt drwxr-xr-x 2 root root 4096 Apr 17 2014 aptitude
drwxr-xr-x 4 root root 4096 Apr 17 2014 apt-xapian-index drwxr-xr-x 2 root root 4096 Apr 17 2014 awk
. . .
Tampilan ini memberi kita banyak informasi, sebagian besar nampak tidak biasa.
Blok pertama menggambarkan jenis file (Apabila kolom pertama berawalan d maka item tersebut adalah suatu direktori, dan apabila item tersebut berawalan -, maka itu adalah file) dan izin-izinnya. Setiap kolom berikutnya, dipisahkan oleh whitespace, menggambarkan jumlah dari hard links, pemilik, grup pemilik, ukuran item, waktu terakhir dimodifikasi, dan nama dari item tersebut. Kita akan menggambarkan beberapa dari ini di waktu yang lain, tetapi untuk sekarang, sekedar untuk tahu bahwa Anda dapat menampilkan informasi ini dengan flag -l dari perintah ls.
Untuk mendapatkan daftar dari semua file, termasuk file dan direktori yang
tersembunyi, Anda dapat menambahkan flag -a. Karena tidak ada file tersembunyi di dalam direktori /usr/share, marilah kita kembali kepada direktori home dan mencoba perintah ini di sana. Anda dapat kembali kepada direktori home dengan mengetikkan cd tanpa argumen:
cd ls -a
. .. .bash_logout .bashrc .profile
Seperti dapat Anda lihat, ada tiga file tersembunyi di dalam demonstrasi ini, bersama dengan . dan .., yang merupakan indikator khusus. Anda akan sering menemukan itu, file konfigurasi disimpan sebagai file hidden, seperti dalam kasus di sini.
Untuk tanda titik dan titik ganda, ini bukanlah direktori. Tanda titik menandakan direktori saat ini, dan tanda titik ganda menandakan direktori di atasnya. Ini akan dijelaskan pada bagian berikutnya.
f. Berpindah di Antara Filesystem dengan cd
Kita telah membuat dua perpindahan direktori untuk mendemonstrasikan beberapa properti dari ls di dalam bagian terakhir. Marilah kita maju lebih jauh lagi.
Mulailah dengan kembali ke direktori /usr/share dengan mengetikkan ini:
cd /usr/share
Ini adalah contoh merubah suatu direktori dengan memberikan path absolute. Di dalam Linux, setiap file dan direktori berada di bawah direktori yang paling atas, yang disebut direktori root, yang dirujuk oleh tanda slash /. Path absolute
menandakan lokasi dari suatu direktori sehubungan dengan direktori tingkat atas ini.
Ini membolehkan kita merujuk kepada direktori dengan tujuan yang jelas dari suatu tempat di dalam filesystem. Setiap path absolut harus diawali dengan suatu slash.
Alternatifnya adalah menggunakan path relati ve . Path relatif merujuk kepada direktori sehubungan dengan direktori saat ini. Untuk direktori yang dekat dengan direktori saat ini di dalam hierarki, biasanya lebih mudah dan lebih pendek. Setiap direktori di dalam direktori saat ini dapat direferensikan dengan nama tanpa diawali dengan slash. Kita dapat berpindah kepada direktori locale di dalam direktori /usr/share di dalam lokasi saat ini dengan mengetik:
cd locale
Begitu pula kita dapat memindahkan banyak tingkat direktori dengan path relatif dengan menyediakan porsi dari path yang datang setelah path direktori saat ini. Dari
sini, kita dapat menuju direktori LC_MESSAGES di dalam direktori en dengan mengetik:
cd en/LC_MESSAGES
Untuk kembali, menuju ke direktori atas dari direktori saat ini, kita menggunakan indikator khusus titik ganda yang sudah kita bicarakan sebelumnya. Misalnya, sekarang kita ada di direktori /usr/share/locale/en/LC_MESSAGES. Untuk naik satu tingkat kita dapat mengetik:
cd ..
Perintah ini membawa kita kepada direktori /usr/share/locale/en
Suatu jalan pintas yang Anda lihat lebih awal yang akan selalu membawa Anda kembali kepada direktori home adalah menggunakan cd tanpa menyediakan suatu direktori:
cd pwd /home/joko
g. Melihat File
Di dalam seksi terakhir, kita telah mempelajari sedikit mengenai bagaimana melakukan navigasi pada filesystem. Anda mungkin melihat beberapa file ketika menggunakan perintah ls di berbagai direktori. Di dalam bagian ini, kita akan mendiskusikan cara-cara yang berbeda yang dapat Anda gunakan untuk melihat file.
Berbeda dengan beberapa sistim operasi, Linux dan sistim operasi yang semisal Unix lainnya bergantung pada file plain text untuk porsi yang besar dari sistem.
Cara utama kita melihat isi file adalah dengan perintah less. Inilah yang kita sebut pager, karena ia membolehkan kita untuk menggulir ke bawah halaman dari suatu file. Ketika perintah sebelumnya dengan segera dieksekusi dan dikembalikan kepada Anda pada command line, less adalah aplikasi yang akan berlanjut berjalan dan menduduki layar sampai Anda keluar.
Kita akan membuka file /etc/services, yang merupakan suatu file konfigurasi yang memuat informasi service/layanan yang diketahui oleh sistem:
less /etc/services
File tersebut akan dibuka di dalam less, membolehkan Anda untuk melihat porsi dari dokumen yang cocok di dalam area dari jendela terminal:
# Network services, Internet style
#
# Note that it is presently the policy of IANA to assign a single well-known
# port number for both TCP and UDP; hence, officially ports have two entries
# even if the protocol doesn't support UDP operations.
#
# Updated from http://www.iana.org/assignments/port-numbers and other
# sources like http://www.freebsd.org/cgi/cvsweb.cgi/src/etc/services .
# New ports will be added on request if they have been officially assigned
# by IANA and used in the real-world or are needed by a debian package.
# If you need a huge list of used numbers please install the nmap package.
tcpmux 1/tcp # TCP port service multiplexer
echo 7/tcp . . .
Untuk menggulir, Anda dapat menggunakan tombol panah atas dan bawah pada keyboard Anda. Untuk turun satu halaman, Anda dapat menggunakan tombol spasi atau tombol Page Down pada keyboard Anda, atau shortcut CTRL-f.
Untuk menggulir ke atas, Anda dapat menggunakan tombol Page Up atau shortcut CTRL-b pada keyboard.
Untuk mencari beberapa text di dalam dokumen tersebut, Anda dapat mengetikkan suatu forward slash / yang diikuti dengan istilah yang hendak dicari. Misal, untuk mencari mail, kita akan mengetikkan:
Perintah ini akan mencari di seluruh dokumen dan berhenti pada hasil yang pertama.
Untuk mencari hasil yang berikutnya, Anda dapat mengetikkan huruf n kecil:
n
Untuk kembali kepada hasil pencarian sebelumnya, gunakan huruf N besar:
N
Apabila Anda ingin keluar dari program less, Anda dapat mengetikkan q untuk keluar:
q
Ketika berfokus pada tool less di dalam bagian ini, banyak cara lain melihat suatu file. Perintah cat menunjukkan isi file dan mengembalikan kepada Anda hasilnya dengan segera. Perintah head, secara default, menunjukkan sepuluh baris pertama dari file tersebut. Begitu pula, perintah tail menunjukkan sepuluh baris terakhir secara default. Perintah-perintah ini memperlihatkan isi file dalam cara yang berguna untuk piping kepada program lain. Kita akan mendiskusikan konsep ini dalam panduan di lain kesempatan.
Cobalah berbagai perintah tersebut untuk melihat isi dari file /etc/services.
h. Manipulasi File dan Direktori
Kita telah mempelajari di bagian terakhir bagaimana cara untuk lihat suatu file. Di bagian ini, kita akan menunjukkan bagaimana menciptakan dan memanipulasi file dan direktori.
i. Menciptakan File menggunakan touch
Banyak perintah dan program yang dapat menciptakan file. Metode yang paling dasar menciptakan suatu file adalah dengan perintah touch. Ini akan menciptakan suatu file kosong menggunakan nama dan lokasi yang tertentu.
Pertama, kita akan memastikan kita berada di direktori home, karena ini adalah lokasi di mana kita memiliki izin untuk menyimpan file. Kemudian, kita dapat menciptakan suatu file yang disebut filejoko dengan mengetikkan:
cd
touch filejoko
Sekarang, apabila kita melihat file di dalam direktori kita, kita dapat melihat file yang baru diciptakan:
ls filejoko
Apabila kita menggunakan perintah ini pada file yang telah ada, perintah tersebut mengupdate data yang disimpan oleh filesystem kita pada saat ketika file tersebut terakhir kali diakses dan dimodifikasi. Ini tidak terlalu banyak dipergunakan saat ini.
Kita juga dapat menciptakan banyak file pada saat yang sama. Kita juga dapat menggunakan path absolut. Misal, apabila akun pengguna kita disebut demo, kita akan mengetikkan:
touch /home/joko/filejoko2 /home/joko/filejoko3 ls
filejoko filejoko2 filejoko3
j. Menciptakan suatu Direktori menggunakan mkdir
Sama seperti perintah touch, perintah mkdir membolehkan kita untuk menciptakan direktori kosong.
Misal, untuk menciptakan direktori di dalam direktori home kita semisal jokotest, kita akan mengetikkan:
cd
mkdir jokotest
Kita dapat membuat suatu direktori semisal direktori bernama ‘contoh’ di dalam direktori jokotest dengan mengetikkan:
mkdir jokotest/contoh
Supaya perintah tersebut bekerja, direktori jokotest harus terlebih dahulu ada. Supaya perintah mkdir dapat menciptakan direktori induk yang sebelumnya tidak ada, Anda dapat menggunakan opsi -p. Ini membolehkan Anda untuk menciptakan direktori bersarang dalam satu langkah. Kita dapat menciptakan suatu struktur direktori yang tampak seperti dir/lain/direktori dengan mengetikkan:
mkdir -p dir/lain/direktori
Perintah tersebut pertama akan membuat direktori dir, kemudian ia akan menciptakan direktori lain di dalam direktori dir. Akhirnya, ia akan menciptakan direktori direktori di dalam dua direktori tadi.
k. Memindahkan dan Menamai Ulang File dan Direktori dengan mv
Kita dapat memindahkan suatu file kepada suatu lokasi baru menggunakan perintah mv. Misal, kita dapat memindahkan filejoko1 ke dalam direktori coba dengan mengetikkan perintah:
mv filejoko1 coba
Untuk perintah ini, kita memberikan semua dari item yang ingin kita pindahkan tersebut, dengan lokasi untuk memindahkan item itu di akhir perintah. Kita dapat memindahkan kembali file tersebut kepada direktori home kita dengan menggunakan referensi titik khusus untuk merujuk kepada direktori kita saat ini. Sebelumnya kita perlu memastikan bahwa kita berada di direktori home, dan kemudian eksekusilah perintah berikut:
cd # ini untuk berpindah ke direktori home mv coba/filejoko1 .
Di awal, ini terlihat tidak intuitif, tetapi perintah mv juga digunakan untuk me-rename file dan direktori. Intinya, memindahkan atau atau menamai ulang keduanya
sebenarnya bekerja dengan cara menyesuaikan lokasi dan nama untuk item yang ada.
Sehingga untuk me-rename direktori coba menjadi direktori cobain, kita akan mengetikkan:
mv coba cobain
Catatan: Adalah penting untuk menyadari bahwa sistim Linux Anda tidak akan mencegah Anda dari tindakan-tindakan yang bersifat merusak. Apabila Anda menamai ulang suatu file dan memilih suatu nama yang telah ada padahal itu file berisi data penting, file sebelumnya akan ditulis ulang dengan file yang Anda pindahkan sehingga isi file sebelumnya menjadi berubah dengan isi file yang baru atau jika file yang baru dipindahkan kosong isinya, maka habislah semua. Tidak ada cara untuk mengembalikan file sebelumnya apabila Anda secara tidak sengaja menulis ulang file itu.
l. Menyalin File dan Direktori dengan cp
Dengan perintah mv, kita dapat memindahkan atau menamai ulang suatu file atau direktori, tetapi kita tidak dapat menduplikasi file itu. Perintah cp dapat membuat salinan baru dari suatu item yang telah ada.
Misal, kita dapat menyalin filejoko3 kepada suatu file baru yang semisal filejoko4 menggunakan perintah:
cp filejoko3 filejoko4
Tidak seperti operasi mv, di mana filejoko3 menjadi hilang, sekarang kita memiliki filejoko3 dan filejoko4.
Catatan: Adapun dengan perintah mv, dimungkinkan untuk menulis ulang suatu file apabila Anda tidak berhati-hati dalam penamaan file yang Anda gunakan sebagai target operasi.
Misal, apabila filejoko4 sebelumnya sudah ada, isinya akan diganti dengan isi dari filejoko3.
Adapun untuk menyalin direktori, Anda harus menyertakan opsi -r kepada perintah tersebut. Ini singkatan dari recursive, karena menyalin direktori berikut semua isi direktori itu. Opsi ini adalah harus apabila yang disalin adalah direktori, tanpa menghiraukan apakah direktori itu kosong atau ada isinya.
Misal, struktur direktori rapa kepada suatu struktur baru yang disebut lagi, kita dapat mengetikkan perintah:
cp -r rapa lagi
Tidak seperti file, yang mana penggunaan tujuan yang sama akan mengarah kepada penulisan ulang, apabila target adalah suatu direktori yang telah ada, file atau direktori disalin kepada target:
cp filejoko1 lagi
Perintah ini akan menciptakan salinan baru dari filejoko1 dan menempatkannya di dalam direktori lagi.
m. Menghapus File dan Direktori dengan perintah rm dan rmdir
Untuk menghapus suatu file, Anda dapat menggunakan perintah rm.
Catatan: Anda harus ekstra hati-hati ketika menggunakan perintah destruktif seperti rm. Tidak ada perintah undo untuk tindakan ini sehingga file penting dapat terhapus secara tidak sengaja.
Untuk menghapus file secara reguler, gunakan perintah rm:
cd # ini untuk berpindah ke direktori home di mana filejoko4 berada rm filejoko4
Demikian juga, untuk menghapus direktori kosong, kita dapat menggunakan perintah rmdir command. Perintah ini hanya akan berhasil apabila direktori tersebut kosong isinya. Misal, untuk menghapus direktori coba di dalam direktori cobain kita dapat mengetikkan perintah berikut:
rmdir cobain/coba
Apabila Anda ingin menghapus direktori yang ada isinya, Anda perlu menggunakan perintah rm. Tetapi kali ini Anda harus menambahkan opsi -r, yang menghapus semua isi direktori secara rekursif, sekaligus direktori itu sendiri.
Misal, untuk menghapus direktori lagi dan segala sesuatu yang ada di dalamnya, kita dapat mengetikkan:
rm -r lagi
Sekali lagi, perlu ditanyakan, apakah ini perintah yang sudah fix. Pastikanlah perintah yang Anda ketikkan adalah perintah yang memang ingin Anda eksekusi.
n. Mengedit File
Sekarang, kita mengetahui caranya bagaimana memanipulasi file sebagai objek, tetapi kita belum mempelajari bagaimana secara aktual mengeditnya dan menambahkan isi ke dalamnya.
Perintah nano adalah salah satu dari teks editor command-line di Linux yang paling sederhana, dan merupakan satu titik awal yang baik untuk pemula. Ia beroperasi sama seperti program less di atas, di mana ia menduduki terminal selama ia digunakan.
Editor nano dapat membuka file yang telah ada, atau menciptakan suatu file. Apabila Anda memutuskan untuk menciptakan suatu file baru, Anda dapat memberikannya suatu nama ketika Anda memanggil editor nano, atau memberi nama setelah selesai menulis isi file, yakni ketika Anda ingin menyimpan isi file tersebut.
Kita dapat membuka filejoko1 untuk diedit dengan mengetikkan perintah berikut:
cd # perintah untuk berpindah ke direktori home nano filejoko1
aplikasi nano akan membuka file tersebut (yang saat ini kosong). Tampilannya kurang lebih seperti ini:
GNU nano 2.2.6 File: filejoko1
[ Read 0 lines ]
^G Get Help ^O WriteOut ^R Read File ^Y Prev Page ^K Cut Text
^C Cur Pos
^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell
Di bagian atas, kita memiliki nama aplikasi dan nama dari file yang sedang kita edit.
Di bagian tengah, isi dari file, yang saat ini blank, ditampilkan. Di bagian bawah, kita memiliki sejumlah kombinasi kunci yang mengindikasikan beberapa kendali dasar untuk editor tersebut. Untuk setiap satu dari ini, karakter ^ bermakna tombol CTRL pada keyboard.
Untuk mencari pertolongan di dalam editor, ketiklah:
CTRL-G
Ketika Anda selesai menjelajahi menu pertolongan/help, ketik CTRL-X untuk kembali kepada dokumen Anda.
Ketiklah di dalam dokumen tersebut atau rubah teks apa saja yang hendak Anda rubah. Untuk contoh ini, kita hanya akan mengetikkan dua kalimat berikut:
Halo di sana.
Berikut ini adalah teksnya.
Untuk menyimpan hasil pekerjaan, kita dapat mengetik:
CTRL-O
Ini adalah huruf o, bukan angka nol. Perintah tersebut akan mengkonfirmasi nama dari file yang ingin Anda simpan:
File Name to Write: filejoko1
^G Get Help M-D DOS Format M-A Append M-B Backup File
^C Cancel M-M Mac Format M-P Prepend
Seperti dapat Anda lihat, opsi di bagian bawah juga berubah. Ini adalah kontekstual, yang artinya ia berubah bergantung pada apa yang Anda coba lakukan. Apabila filejoko1 masih file yang ingin Anda tulisi, tekanlah ENTER.
Apabila kita membuat beberapa perubahan tambahan dan ingin menyimpan file tersebut dan keluar dari program, kita akan melihat prompt yang sama. Tambahkan suatu garis baru, dan kemudian coba untuk keluar program dengan mengetikkan:
CTRL-X
Apabila Anda belum menyimpan setelah melakukan perubahan, Anda akan ditanyai apakah Anda akan menyimpan perubahan yang Anda buat:
Save modified buffer (ANSWERING "No" WILL DESTROY CHANGES) ? Y Yes
N No ^C Cancel
Anda dapat mengetikkan Y untuk menyimpan perubahan Anda, N untuk mengabaikan perubahan dan keluar, atau CTRL-C untuk membatalkan operasi exit/keluar. Apabila Anda memilih untuk menyimpan, Anda akan disuguhi prompt file yang sama yang Anda terima sebelumnya, untuk mengkonfirmasi bahwa Anda ingin menyimpan perubahan tersebut kepada file yang sama. Tekan ENTER untuk
menyimpan file tersebut dan keluar dari editor.
Anda dapat melihat isi file yang Anda ciptakan menggunakan program cat untuk menampilkan isi, atau program less untuk membuka file untuk dilihat. Setelah melihat dengan program less, ketiklah q untuk kembali ke terminal.
less filejoko1 Halo di sana.
Berikut ini adalah teksnya.
Dan ini baris barunya.
o. Kesimpulan
Sekarang, Anda seharusnya memiliki pemahaman dasar bagaimana cara berkeliling di server Linux dan bagaimana cara melihat file dan direktori yang tersedia. Anda seharusnya memahami bagaimana cara dasar untuk memanipulasi file yang akan membolehkan Anda untuk melihat, menyalin, memindahkan, atau menghapus file.
Akhirnya, Anda seharusnya sudah terbiasa dengan beberapa pengeditan dasar menggunakan teks editor nano.
Dengan sedikit keahlian ini, Anda seharusnya sudah mampu melanjutkan untuk mempelajari panduan lain dan mempelajari hal yang paling penting dari server Anda.
Dalam panduan berikutnya, kita akan mendiskusikan bagaimana melihat dan memahami permisi/izin di Linux.
============================
3. Pengaturan Awal pada Server Ubuntu
Pengantar
Ketika Anda pertama kali melakukan pengaturan suatu server Ubuntu, Anda hendaknya melakukan beberapa langkah konfigurasi penting sebagai bagian dari pengaturan tersebut. Langkah-langkah berikut akan meningkatkan keamanan dan kegunaan dari server Anda, dan akan memberikan kepada Anda suatu fondasi yang kokoh untuk tindakan-tindakan berikutnya.
Langkah ke-1, Masuklah sebagai Root
Untuk masuk ke dalam server Anda, Anda perlu mengetahui alamat IP public server Anda. Anda juga akan memerlukan password atau jika Anda memasang suatu kunci SSH untuk otentikasi, Anda memerlukan kunci privat untuk akun pengguna root.
Jika Anda belum terhubung kepada server Anda, masuklah sekarang sebagai pengguna root menggunakan perintah berikut pada terminal (gantilah alamat_ip_server dengan alamat IP publik server Anda):
ssh root@alamat_ip_server
Terimalah peringatan mengenai keotentikan host apabila peringatan itu muncul.
Apabila Anda menggunakan otentikasi berbasis password, siapkanlah password root Anda untuk masuk. Apabila Anda menggunakan suatu kunci SSH yang dilindungi oleh passphrase, Anda mungkin diminta untuk memasukkan passphrase tersebut pada saat pertama kali Anda menggunakan kunci tersebut pada setiap sesinya. Apabila ini adalah pertama kalinya Anda masuk ke dalam server dengan suatu password, Anda mungkin juga diminta untuk merubah password root.
Mengenai Root
Pengguna root adalah pengguna dengan keleluasaan mengadministrasi di dalam suatu lingkungan Linux yang memiliki hak istimewa sangat luas. Karena beratnya beban hak istimewa dari akun root, Anda tidak didorong menggunakannya untuk keperluan rutin. Ini karena bagian dari keleluasaan akun root adalah kemampuan membuat perubahan yang merusak, sekalipun perubahan itu dibuat secara tidak sengaja.
Langkah berikutnya adalah membuat akun pengguna baru dengan hak yang dikurangi untuk penggunaan sehari-hari. Kemudian, kami akan mengajarkan kepada Anda bagaimana memperoleh peningkatan hak hanya pada saat hak itu diperlukan.
Langkah ke-2, Membuat Pengguna Baru
Pada saat Anda telah masuk sebagai root, kita bersiap menambahkan pengguna baru.
Untuk ke depan, nantinya kita akan masuk dengan akun baru ini dan tidak lagi masuk sebagai root.
Perintah di bawah adalah perintah untuk membuat suatu pengguna baru yang disebut joko. Tetapi, Anda hendaknya mengganti itu dengan suatu nama pengguna
(username) yang Anda suka:
adduser joko
Setelah itu, Anda akan ditanyai beberapa pertanyaan, yang dimulai dengan password akun.
Masukkanlah suatu password yang kuat dan, secara opsional, masukkanlah di dalam informasi tambahan, apa saja yang ingin Anda masukkan apabila Anda ingin
memasukkannya. Apabila Anda merasa tidak perlu memasukkannya, cukup tekan ENTER pada isian mana pun yang hendak Anda lewati.
Langkah ke-3 Memberikan Hak Administratif
Sekarang, kita memiliki suatu akun pengguna baru dengan hak akun reguler. Namun, kita terkadang perlu untuk mengerjakan tugas-tugas administratif.
Untuk menghindari keluar dari pengguna biasa dan masuk sebagai akun root, kita dapat menjadikan akun biasa sebagai superuser atau akun biasa yang memiliki beberapa hak yang dimiliki oleh akun root. Ini akan membolehkan pengguna biasa
untuk menjalankan perintah dengan hak istimewa dengan menaruh kata sudo di depan setiap perintah.
Untuk menambahkan hak istimewa ini kepada pengguna baru kita, kita perlu menambahkan pengguna tersebut kepada grup sudo. Secara default, pada Ubuntu, pengguna yang merupakan anggota dari grup sudo dibolehkan untuk menggunakan perintah sudo.
Sebagai root, jalankan perintah berikut untuk menambahkan pengguna baru Anda kepada grup sudo (gantilah joko dengan nama pengguna Anda):
usermod -aG sudo joko
Sekarang, ketika masuk sebagai pengguna biasa, Anda dapat mengetikkan sudo sebelum perintah untuk melakukan tindakan-tindakan dengan hak superuser.
Langkah ke-4 Pengaturan Firewall tingkat Dasar
Server Ubuntu dapat menggunakan firewall UFW untuk memastikan hanya koneksi kepada layanan-layanan tertentu saja yang dibolehkan diakses dari luar. Kita dapat mengatur firewall dasar dengan sangat mudah menggunakan aplikasi ini.
Aplikasi yang berjalan dapat me-register-kan sendiri profil mereka dengan UFW pada saat instalasi. Profil-profil ini membolehkan UFW untuk mengatur aplikasi-aplikasi ini, dibolehkan atau tidaknya diakses dari luar, berdasarkan nama. OpenSSH, adalah layanan yang membolehkan kita untuk terhubung kepada server kita saat ini,
memiliki suatu profil yang teregistrasi dengan UFW.
Anda dapat melihat aplikasi yang teregistrasi dengan perintah berikut:
ufw app list Output?
Available applications:
OpenSSH
Kita perlu untuk memastikan bahwa firewall membolehkan koneksi SSH sehingga kita dapat masuk kembali nantinya. Kita dapat membolehkan koneksi ini dengan mengetikkan:
ufw allow OpenSSH
Setelah itu, barulah kita dapat menghidupkan firewall dengan mengetik:
ufw enable
Ketika muncul pertanyaan, ketiklah y dan tekan ENTER untuk melanjutkan. Anda dapat melihat bahwa koneksi SSH masih dibolehkan diakses dari luar walaupun firewall telah dihidupkan, dengan mengetik perintah berikut:
ufw status Output Status: active
To Action From
— —— —-
OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Karena firewall saat ini telah menghalangi semua koneksi kecuali koneksi untuk SSH, maka, apabila Anda memasang dan mengkonfigurasi layanan tambahan, Anda akan perlu untuk menyesuaikan pengaturan firewall untuk membolehkan traffic masuk.
Langkah ke-5 Mengizinkan Akses dari Luar untuk Pengguna Regular
Sekarang bahwa kita telah memiliki suatu pengguna reguler untuk kegunaan sehari- hari, kita perlu memastikan kita dapat masuk ke server melalui SSH secara langsung.
Catatan: Sampai ditegaskan bahwa Anda dapat masuk dan menggunakan sudo pada
pengguna baru Anda, kami merekomendasikan tetap masuk sebagai root. Dengan melakukan cara ini, apabila Anda memiliki masalah, Anda dapat melakukan troubleshooting dan melakukan perubahan yang diperlukan sebagai root.
Proses untuk mengkonfigurasi akses SSH untuk pengguna baru Anda bergantung pada apakah akun root server Anda menggunakan password atau kunci SSH untuk otentikasi login.
Apabila Akun Root menggunakan Password untuk Otentikasi
Apabila Anda masuk kepada akun root dengan cara menggunakan suatu password, maka otentikasi password dihidupkan untuk SSH. Anda dapat melakukan akses SSH kepada akun pengguna baru Anda dengan membuka suatu sesi terminal baru dan menggunakan SSH dengan username baru Anda:
ssh joko@ip_server_anda
Setelah memasukkan password pengguna regular Anda, Anda akan masuk. Ingat, apabila Anda perlu untuk menjalankan suatu perintah dengan hak administratif, ketikkan sudo sebelum perintah tersebut seperti ini:
sudo perintah_untuk_dijalankan
Anda akan diminta memasukkan kata sandi pengguna reguler Anda saat
menggunakan sudo untuk pertama kalinya pada setiap sesi dan selanjutya secara berkala.
Untuk meningkatkan keamanan server Anda, kami sangat menyarankan untuk mengaktifkan kunci SSH ketimbang menggunakan otentikasi password.
Jika Akun Root Menggunakan Autentikasi Kunci SSH
Jika Anda masuk ke akun root menggunakan kunci SSH, maka otentikasi kata sandi dinonaktifkan untuk SSH. Anda akan perlu menambahkan salinan dari kunci publik pada berkas ~/.ssh/authorized_keys pada pengguna baru agar bisa masuk dengan berhasil.
Karena kunci publik Anda sudah berada di dalam berkas ~/.ssh/authorized_keys akun root pada server, kita dapat menyalin berkas itu dan struktur direktorinya ke akun pengguna baru.
Cara termudah untuk menyalin berkas dengan kepemilikan dan izin yang benar yaitu dengan menggunakan perintah rsync. Ini akan menyalin direktori .ssh pengguna root, menyimpan izin, dan merubah pemilik berkas. Semua itu dapat dilakukan dengan satu perintah. Pastikan untuk mengganti bagian perintah yang disorot di bawah ini agar sesuai dengan nama pengguna reguler Anda:
Catatan: Perintah rsync berbeda perlakuannya terhadap sumber dan tujuan yang diakhiri dengan tanda garis miring dibanding yang tidak diakhiri dengan tanda garis miring. Saat
menggunakan rsync di bawah, pastikan direktori sumber (~/.ssh) tidak diakhiri dengan tanda garis miring (periksalah untuk memastikan Anda tidak menggunakan ~/.ssh/).
Jika Anda secara tidak sengaja menambahkan tanda garis miring pada akhir perintah, rsync akan menyalin konten *dari direktori ~/.ssh akun *root** ke direktori rumah pengguna sudo ketimbang menyalin seluruh struktur direktori ~/.ssh. Berkas akan berada di lokasi yang salah serta SSH tidak akan dapat menemukan dan menggunakannya.
rsync –archive –chown=joko:joko ~/.ssh /home/joko
Sekarang, buka sesi terminal baru dari komputer Anda. Gunakan SSH dengan nama pengguna baru Anda:
ssh -i joko@ip_server_anda
Anda seharusnya dapat masuk ke akun pengguna baru tanpa menggunakan kata sandi. Ingat, jika Anda perlu menjalankan perintah dengan hak administratif, ketik sudo di depan perintah seperti berikut:
sudo perintah_untuk_dijalankan
Setelah Ini, Apa Selanjutnya?
Di titik ini, Anda mempunyai fondasi kuat pada server dan dapat memasang software apa pun yang diperlukan di server Anda.
==========================
4. Pengantar mengenai Izin/Permisi di Linux
a. Pengantar
Linux adalah suatu OS multi-user yang berdasarkan pada konsep Unix dari kepemilikan file dan izinnya untuk menyediakan keamanan di tingkat file system.
Apabila Anda berencana untuk memperbaiki keahlian Linux Anda, adalah penting Anda memiliki pemahaman bagaimana kepemilikan dan izin bekerja. Banyak seluk- beluk yang berkenaan dengan kepemilikan file dan izinnya, tetapi kita akan mencoba usaha terbaik kita untuk menyaring konsep tersebut kepada rinciannya sehingga penting untuk suatu pemahaman fondasional dari bagaimana semua itu bekerja.
Di dalam tutorial ini, kita akan mencakup bagaimana melihat dan memahami kepemilikan pada Linux dan izinnya..
b. Mengenai User/Pengguna
Seperti disebutkan di dalam pengantar, Linux adalah suatu sistim yang multi-user.
Kita harus memahami dasar-dasar pengguna Linux dan grup sebelum kita dapat berbicara mengenai kepemilikan dan izin, karena keduanya adalah entitas yang dijadikan penerapan kepemilikan dan izin. Mari kita mulai dengan dasar-dasar mengenai apa itu sebenarnya user/pengguna.
Pada Linux, ada dua tipe user: system user dan regular user. Secara tradisional, system user biasa menjalankan proses-proses yang non-interaktif atau proses
background/latar-belakang pada suatu sistem, sementara regular user biasa masuk dan menjalankan proses-proses secara interaktif. Ketika pertama kali Anda masuk kepada suatu sistim Linux, Anda mungkin memperhatikan bahwa ia dimulai dengan banyak system user yang menjalankan layanan-layanan yang mana OS/sistim-operasi bergantung pada itu dan ini adalah normal.
Cara termudah untuk melihat semua pengguna/user pada suatu sistem adalah dengan cara melihat pada isi dari file /etc/passwd. Setiap baris di dalam file ini memuat informasi mengenai seorang pengguna user tunggal, dimulai dengan nama usernya.
Print-lah output dari file passwd dengan perintah berikut:
cat /etc/passwd
Superuser
Sebagai tambahan bagi dua tipe, ada superuser, atau pengguna root, yang memiliki kemampuan merubah kepemilikan file dan batasan-batasan izinnya. Dalam
prakteknya, Ini bermakna bahwa superuser memiliki hak untuk mengakses apa pun pada servernya sendiri. Pengguna ini biasa membuat perubahan di seluruh sistem, dan harus tetap aman.
Juga dimungkinkan untuk mengkonfigurasi akun pengguna lain dengan kemampuan untuk mengasumsikan hak superuser. Kenyataannya, menciptakan suatu pengguna normal yang memiliki hak sudo untuk tugas administrasi sistem dipertimbangkan sebagai praktek yang terbaik.
Mengenai Grup
Grup adalah kumpulan dari nol atau lebih banyak pengguna. Seorang user menjadi anggota dari grup default, dan dapat juga menjadi seorang anggota dari grup lain apa pun pada suatu server.
Cara mudah untuk melihat semua grup dan anggota-anggotanya adalah dengan melihat file /etc/group pada suatu server. Kami tidak akan mencakup pengelolaan grup di dalam artikel ini, tetapi Anda dapat menjalankan perintah ini apabila Anda ingin tahu tentang grup Anda:
cat /etc/group
Sekarang Anda mengetahui apa itu pengguna/user dan apa itu grup, mari bicara mengenai kepemilikan file dan izinnya!
c. Melihat Kepemilikan dan Izin
Dalam Linux, setiap dari masing-masing file dimiliki oleh satu pengguna tunggal dan satu grup tunggal, dan memiliki izin aksesnya sendiri. Mari lihat mengenai
bagaimana melihat kepemilikan dan izin dari suatu file.
Cara yang paling umum untuk melihat izin dari suatu file adalah menggunakan ls dengan opsi long listing, misal, ls -l filesaya. Apabila Anda ingin melihat izin dari semua file di dalam direktori Anda saat ini, jalankanlah perintah tanpa suatu argumen, seperti ini:
ls -l
Petunjuk: Apabila Anda ada di dalam suatu direktori home yang kosong, dan Anda belum menciptakan file apa pun untuk dilihat, Anda dapat mencoba melihat direktori /etc dengan menjalankan perintah: ls -l /etc
d. Tipe File
Dalam Linux, ada dua tipe dasar file: normal dan spesial. Tipe file ditandakan dengan karakter pertama dari mode dari suatu file. Di dalam panduan ini, kami merujuk ini sebagai bidang tipe file.
File normal dapat diidentifikasi sebagai file dengan tanda hipen (-) di bagian tipe filenya. File normal adalah file biasa yang dapat memuat data. File-file itu disebut file normal atau regular agar dapat dibedakan dari file spesial.
File spesial dapat diidentifikasi oleh file yang memiliki suatu karakter non-hipen, seperti huruf, pada bidang tipe filenya, dan ditangani oleh OS secara berbeda ketimbang file normal. Karakter yang muncul di dalam bidang tipe file
mengindikasikan jenis dari file spesial adalah file istimewa. Misal, suatu direktori, yang merupakan jenis yang lazim dari file spesial, diidentifikasi oleh karakter d yang muncul di dalam bidang tipe filenya (seperti di dalam tangkapan layar yang lalu). Ada beberapa jenis lain dari file spesial tetapi tidak esensial untuk dipelajari di sini.
e. Kelas Permisi/Izin
Mari kita lihat pada kelas mana izin setiap pengguna:
User: Pemilik dari suatu file adalah milik dari kelas ini Group: Anggota dari grup file adalah milik kelas ini
Other: Pengguna manapun yang bukan merupakan bagian dari kelas user atau grup adalah milik kelas ini.
f. Membaca Izin Simbolik
Hal berikutnya untuk diperhatikan adalah tiga serangkai, karena menunjukkan izin, dalam bentuk simbolik, yang mana setiap kelas memilikinya untuk suatu file yang diberikan.
Dalam setiap rangkai, izin read, write, dan execute disajikan dalam cara berikut:
- Read: Ditandakan dengan huruf r pada posisi pertama - Write: Ditandakan dengan huruf w di dalam posisi kedua - Execute: Ditandakan oleh x dalam posisi ketiga.
Suatu tanda hipen (-) yang berada di tempat salah satu dari tiga karakter ini
menandakan bahwa masing-masing izin tidak tersedia untuk masing-masing kelas.
Misal, apabila grup rangkaian untuk suatu file adalah r--, file tersebut adalah read- only atau hanya dapat dibaca bagi grup yang ditautkan dengan file tersebut.
g. Memahami Read, Write, dan Execute
Sekarang Anda mengetahui bagaimana membaca izin apa yang ada pada suatu file, Anda mungkin ingin mengetahui apa saja sebenarnya yang diizinkan oleh masing- masing permisi tersebut. Kami akan menjelaskan setiap izin secara tersendiri, tetapi ingatlah bahwa izin-izin tersebut sering digunakan dalam kombinasi satu sama lain untuk membolehkan akses yang berarti kepada file dan direktori.
Berikut adalah rincian cepat dari akses yang diberikan oleh tiga tipe izin dasar kepada suatu user.
Read
Untuk suatu file normal, izin read membolehkan seorang user untuk melihat isi dari file tersebut. Untuk suatu direktori, izin read membolehkan suatu user untuk melihat nama dari file yang berada di dalam direktori tersebut.
Write
Untuk suatu file normal, izin write membolehkan suatu user untuk merubah dan menghapus file.
Untuk suatu direktori, izin write membolehkan seorang user untuk menghapus direktori tersebut, merubah isinya (membuat, menghapus, dan menamai-ulang (rename) file di dalamnya), dan merubah isi dari file yang user tersebut punyai izinnya untuk ia tulisi.
Execute
Untuk suatu file normal, izin execute membolehkan seorang user untuk mengeksekusi suatu file (user tersebut juga harus memiliki izin read). Dengan demikian, izin
execute harus diberikan untuk program-program yang dapat dieksekusi dan skrip- skrip shell sebelum suatu user dapat menjalankan skrip-skrip itu.
Untuk suatu direktori, izin execute membolehkan suatu user untuk mengakses, atau melintasi (misal dengan perintah cd) dan mengakses metadata mengenai file-file di dalam direktori tersebut (termasuk informasi yang didaftar di dalam suatu perintah ls -l).
h. Contoh dari Mode (dan Permisi)
Sekarang, setelah mengetahui bagaimana cara membaca mode dari suatu file, dan memahami arti dari setiap izin, kami akan menyajikan sedikit contoh dari beberapa mode yang lazim, dengan penjelasan singkat, untuk menghadirkan konsep tersebut secara keseluruhan.
-rw---: Suatu file yang hanya dapat diakses oleh pemiliknya -rwxr-xr-x: Suatu file yang dapat dieksekusi oleh setiap user pada sistem tersebut. Suatu file yang world-executable
-rw-rw-rw-: Suatu file yang terbuka untuk dirubah oleh setiap user pada sistem tersebut. Suatu file yang world-writable
drwxr-xr-x: Suatu direktori yang setiap user pada sistem tersebut dapat baca dan akses
drwxrwx---: Suatu direktori yang dapat dirubah (termasuk isinya) oleh pemilik dan grupnya
drwxr-x---: Suatu direktori yang dapat diakses oleh grupnya
Seperti yang Anda perhatikan, pemilik dari suatu file biasanya menikmati semua izin, ketika dibandingkan dengan dua kelas yang lain. Secara khas, Anda dapat melihat bahwa grup dan kelas lain hanya memiliki suatu bagian dari izin-izin yang dimiliki oleh pemiliknya (sama atau kurang). Ini masuk akal karena file hendaknya hanya dapat diakses oleh para pengguna yang perlu mengakses file-file itu untuk suatu keperluan.
Hal lain untuk dicatat adalah bahwa, bahkan walaupun banyak kombinasi izin yang dimungkinkan, hanya izin tertentu yang masuk akal dalam banyak situasi. Misal, akses write atau execute hampir selalu ditemani oleh akses read, karena sulit untuk merubah, dan tidak mungkin untuk mengeksekusi, sesuatu yang tidak dapat Anda baca.
i. Kesimpulan
Sekarang Anda hendaknya memiliki suatu pemahaman mengenai bagaimana
kepemilikan dan izin bekerja di Linux. Apabila Anda ingin mempelajari lebih banyak mengenai dasar-dasar Linux, sangat direkomendasikan Anda membaca tutorial berikutnya di dalam rangkaian ini.
================
5. Pengantar mengenai Pengalihan/Redireksi Input dan Output pada Linux atau Linux I/O Redirection
a. Pengantar
Kemampuan redireksi yang ada di Linux menyediakan untuk Anda seperangkat tool/perangkat yang digunakan untuk membuat semua jenis tugas menjadi lebih mudah untuk diselesaikan. Apakah Anda sedang menulis software yang kompleks atau melakukan pengelolaan file melalui command line, mengetahui bagaimana cara memanipulasi aliran yang berbeda atas input/ouput atau I/O di dalam environment atau lingkungan, akan meningkatkan produktivitas Anda.
b. Stream
Input dan output di dalam lingkungan Linux disebarkan melalui tiga stream/aliran.
Tiga aliran ini adalah:
standard input (stdin) standard output (stdout) standard error (stderr)
Aliran tersebut juga diberi angka sebagai berikut:
stdin (0) stdout (1) stderr (2)
Selama interaksi standar antara user/pengguna dan terminal, input standar ditransmisikan melalui keyboard pengguna. Output Standar dan standar error
ditampilkan pada terminal pengguna sebagai teks. Secara kolektif, tiga aliran tersebut dirujuk sebagai aliran standar atau standard stream.
c. Standar Input
Aliran input standar bersifat membawa data dari suatu user kepada suatu program.
Program yang menghendaki standard input biasanya menerima input dari suatu device/perangkat, semisal suatu keyboard. Standar input diakhiri ketika mencapai EOF (end-of-file atau akhir dari file). Seperti digambarkan oleh namanya, EOF menandakan bahwa tidak ada data lagi untuk dibaca.
Untuk melihat standard input dalam penerapannya, jalankanlah program cat. Cat merupakan singkatan dari concatenate, yang bermakna menghubungkan atau
menggabungkan sesuatu. Biasanya digunakan untuk menggabungkan isi dari dua file.
Ketika dijalankan, program cat membuka suatu looping prompt.
cat 1 2 3 ctrl-d
Ketika Anda mengetikkan suatu angka dan menekan enter, Anda mengirim standard input kepada program cat yang sedang berjalan. Sebagai hasilnya, program cat mengirim kembali input kepada Anda melalui terminal dengan cara menampilkannya sebagai standard output.
EOF dapat berupa input oleh user dengan menekan ctrl-d. Setelah program cat menerima EOF, ia berhenti.
d. Standard Output
Standard output menuliskan data yang dihasilkan oleh suatu program. Ketika aliran standard output tidak dialihkan, ia akan mengeluarkan teks output/keluaran kepada terminal. Cobalah contoh berikut:
echo Coba kirim ke terminal melalui standard output
Ketika digunakan tanpa opsi tambahan apa pun, perintah echo menampilkan argumen yang dilewatkan kepadanya melalui command line. Suatu argumen adalah sesuatu yang diterima oleh suatu program.
Jalankanlah perintah echo tanpa argument:
echo
Ia akan mengembalikan hasil keluaran berupa baris kosong, karena tidak ada argumennya.
e. Standard Error
Standard error menuliskan error yang dihasilkan oleh suatu program yang gagal pada satu point tertentu di dalam eksekusinya. Seperti standard output, tujuan default-nya untuk aliran ini adalah pengeluaran tampilan pada terminal.
Ketika aliran standard error pada suatu program disalurkan kepada suatu program kedua, data yang disalurkan (yang terdiri dari error program) secara bersamaan juga dikirim kepada terminal tersebut.
Mari kita lihat contoh dasar dari standard error menggunakan perintah ls. Perintah ls menghasilkan daftar dari isi suatu direktori.
Ketika dijalankan tanpa suatu argumen, ls mengeluarkan daftar berupa isi di dalam direktori saat ini. Apabila ls dijalankan dengan argumen berupa suatu direktori, ia akan mendaftar isi dari direktori yang disediakan.
ls @
Karena @ bukanlah suatu direktori yang ada, maka perintah diatas akan mengirimkan teks berikut kepada standard error:
ls: cannot access @: No such file or directory
f. Stream Redirection/Aliran Pengalihan
Linux menyertakan perintah pengalihan untuk setiap stream. Perintah ini menulis standard output kepada suatu file. Apabila file yang tidak ada ditargetkan (entah itu dengan suatu perintah kurung tunggal atau kurung ganda), suatu file baru dengan nama tersebut akan diciptakan sebelum mulai melakukan penulisan.
Perintah dengan satu kurung tunggal menulis ulang isi dari tujuan yang telah ada.
Overwrite/Menulis-ulang > - standard output < - standard input 2> - standard error
Perintah dengan kurung ganda tidak menulis ulang isi dari file tujuan yang sudah ada.
Append/Menambahkan
>> - standard output << - standard input 2>> - standard error
Mari lihat suatu contoh:
cat > tulisku.txt maskutulisku 234 ctrl-d
Di sini, cat digunakan untuk menulis kepada suatu file, yang diciptakan sebagai hasil dari loop tersebut.
Kemudian lihatlah isi dari file tulisku.txt menggunakan perintah cat:
cat tulisku.txt
maskutulisku 234
Setelah itu coba tuliskan perintah berikut:
cat > tulisku.txt
Masmutulismu 567 ctrl-d
Kemudian coba lihat lagi isi dari file tulisku.txt:
cat tulisku.txt
masmutulismu 567
Isi yang sebelumnya tidak lagi ada di situ, karena file tersebut ditulis ulang oleh perintah kurung tunggal.
Sekarang, kembali lakukan pengalihan menggunakan perintah cat, kali ini menggunakan kurung ganda:
cat >> tulisku.txt maskana
ctrl-d
Kemudian coba lihat lagi isi dari file tulisku.txt:
cat tulisku.txt
masmutulismu 567 maskana
Sekarang file tulisku.txt juga berisi teks dari program cat yang dijalankan
sebelumnya, karena perintah cat yang kedua tidak menulis ulang perintah cat yang pertama.
g. Pipe/Penyaluran
Pipe digunakan untuk mengalihkan suatu aliran dari satu program kepada program lain. Ketika suatu standard output dari suatu program dikirim kepada program yang lain melalui suatu pipe/penyaluran, data dari program pertama, yang diterima oleh program kedua, tidak akan ditampilkan pada terminal. Hanya data yang difilter atau disaring yang dikembalikan oleh program yang akan ditampilkan.
Pipe Linux diwakili oleh batang vertikal.
*|*
Contoh dari perintah yang menggunakan suatu pipe:
ls | less
Perintah ini mengambil keluaran dari perintah ls, yang menampilkan isi dari direktori Anda saat ini, dan menyalurkannya kepada program less. Program less lalu
menampilkan data yang dikirim kepadanya baris demi baris.
Program ls secara normal tanpa opsi, menampilkan isi direktori dalam bentuk kolom ganda. Ketika Anda menjalankannya melalui program less, setiap entri ditempatkan pada baris baru.
Walaupun fungsi dari pipe hampir sama dengan perintah > dan >> (pengalihan standard output), perbedaannya adalah bahwa pipe mengalihkan data dari satu command kepada perintah lainnya, sementara > dan >> digunakan untuk mengalihkan secara eksklusif kepada file.
h. Filter
Filter adalah perintah yang merubah pengalihan pipe dan output. Perintah filter juga merupakan perintah standar Linux yang dapat digunakan tanpa pipe.
find - perintah find mengembalikan file dengan nama file yang cocok dengan argumen yang dilewatkan kepada perintah find.
grep - printah grep mengembalikan teks yang cocok dengan pola string yang dilewatkan kepada perintah grep.
tee - perintah tee mengalihkan standard input kepada standard output dan satu file lainnya lagi atau lebih.
tr - perintah tr mencari-dan-mengganti satu string dengan string lainnya.
wc - perintah wc menghitung huruf, baris, dan kata.
Contoh
Sekarang Anda telah diperkenalkan kepada redireksi, pipe, dari filter dasar, mari lihat pada beberapa pola pengalihan dasar, berikut contoh-contohnya.
perintah > file
Pola ini mengalihkan standard output dari suatu perintah kepada suatu file.
ls ~ > isi_dir.txt
Perintah di atas melewatkan isi dari direktori saat ini sebagai standar output, dan menulis output kepada suatu file yang bernama isi_dir.txt. Perintah itu akan menghapus isi apa pun yang sebelumnya ada pada file tersebut, karena ia adalah perintah dengan satu kurung.
perintah > /dev/null
File /dev/null adalah suatu file khusus yang digunakan untuk menampung data apa pun yang diarahkan kepadanya. File itu digunakan untuk membuang standar output yang tidak diperlukan, dan mungkin mengganggu fungsionalitas dari suatu perintah atau suatu skrip. Keluaran apa pun yang dikirim kepada file /dev/null dibuang.
Di masa mendatang, Anda mungkin menemukan praktek pengalihan standard output dan standard error kepada file /dev/null ketika menulis skrip shell.
ls > /dev/null
Perintah ini membuang aliran standard output yang dikembalikan dari perintah ls dengan menyalurkannya kepada file /dev/null.
perintah 2> file
Pola ini mengalihkan aliran standard error dari suatu perintah kepada suatu file, dengan cara menulis ulang isi yang ada.
mkdir '' 2> mkdir_log.txt
Perintah ini mengalihkan error yang dihasilkan oleh nama direktori yang tidak valid, dan menulisnya kepada file mkdir_log.txt.
perintah >> file
Pola ini mengalihkan standar output dari suatu perintah kepada suatu file tanpa menulis ulang isi file yang telah ada.
echo Tulis ke suatu file baru > data.txt
echo Tambah isi file tersebut >> data.txt
Pasangan perintah ini bekerja dengan cara pertama mengalihkan teks yang diinputkan oleh pengguna melalui perintah echo kepada suatu file baru. Ia kemudian menambah teks yang diterima oleh perintah echo yang kedua kepada file yang ada, tanpa menulis ulang isinya.
perintah 2>> file
Pola di atas mengalihkan aliran error standar dari suatu perintah kepada suatu file tanpa menulis ulang isi dari file yang ada. Pola ini berguna untuk menciptakan log error untuk suatu program atau layanan, karena setiap kali file ditulis, isi sebelumnya tidak dihapus.
find '' 2> stderr_log.txt wc '' 2>> stderr_log.txt