Monday, 19 November 2012

Referensi Izin Akses Di Linux


IZIN AKSES DI LINUX

Pengantar

Izin berkas Linux akses yang digunakan untuk mengontrol siapa yang dapat membaca, menulis dan mengeksekusi file tertentu. Ini merupakan pertimbangan penting karena sifat multi-user sistem Linux dan sebagai mekanisme keamanan untuk melindungi file sistem penting baik dari pengguna individu dan dari perangkat lunak berbahaya atau virus. Izin akses diimplementasikan pada tingkat file dengan izin yang tepat ditetapkan berdasarkan pemilik berkas, pemilik grup dari file dan akses di seluruh dunia. Pada Linux, direktori juga file dan oleh karena itu hak akses file diterapkan pada tingkat direktori juga, meskipun beberapa perizinan yang diterapkan berbeda tergantung pada apakah file tersebut merupakan file biasa atau direktori.
Sebagai perangkat juga direpresentasikan sebagai file maka perintah izin yang sama dapat diterapkan untuk mengakses ke sumber daya tertentu atau perangkat eksternal.
Mekanisme Kelompok menyediakan setiap pengguna dengan kelompok standar (juga dikenal sebagai kelompok primer), tetapi kemudian memungkinkan pengguna untuk ditambahkan ke kelompok lain. Hal ini memungkinkan pengguna untuk diberikan sesuai tingkat akses dengan menciptakan sebuah kelompok untuk masing-masing departemen atau fungsi pekerjaan, membatasi akses ke kelompok-kelompok.
Kelompok default untuk setiap pengguna ditentukan oleh set-up sistem. Hal ini biasanya dikonfigurasi untuk membuat grup dengan nama yang sama dengan nama pengguna yang hanya pengguna yang adalah anggota. Ini adalah default yang paling aman karena berarti bahwa tidak ada pengguna lain dengan akses standar. Alternatif adalah untuk memiliki kelompok standar bahwa semua pengguna memiliki ketika dibuat.
Desain izin akses memungkinkan baik jumlah fleksibilitas dalam apa hak akses dapat diterapkan. Sebagai contoh adalah mungkin untuk membatasi akses ke pemilik, membuat file dapat dilihat secara publik tetapi hanya dapat diedit oleh pemilik dan juga untuk menerapkan hak akses yang berbeda berdasarkan kelompok (misalnya anggota departemen yang sama). Ada juga juga fitur yang juga dapat digunakan untuk memberikan izin seolah-olah user lain (SUID).Jika sesuatu di luar hak akses file standar diperlukan maka daftar kontrol akses dapat digunakan sebagai pengganti (ACL). Penggunaan ACL kurang umum digunakan dan mereka tidak dibahas secara rinci di sini.

 

Berbagai jenis pengguna

 

Username vs userid dan nama grup vs groupid


Untuk sebagian besar dari dokumen ini saya akan mengacu pada pengguna dan kelompok dengan nama mereka. Ini adalah cara paling umum dan user-friendly dari memahami hak akses file. Ini Namun perlu dicatat bahwa di balik layar ini disimpan sebagai userids numerik (uid) atau groupids (gid). Terjemahan dari uid / gid ditangani oleh sistem operasi dan referensi yang tersimpan pada disk adalah id numerik. Hal ini biasanya tidak penting pada sistem tunggal, tetapi harus dipertimbangkan ketika mentransfer file menggunakan alat pengarsipan (misalnya tar) atau ketika memindahkan disk dari satu sistem ke sistem lain. Jika username / groupnames memiliki uid numerik yang berbeda / gid maka akses dapat diberikan di mana tidak diharapkan, atau ditolak di mana diperlukan.
Terjemahan antara username dan userid (uid) disimpan dalam file / etc / passwd, dan terjemahan dari groupname ke groupid (gid) ada dalam file / etc / group. / Etc / passwd juga termasuk pengguna utama (default) kelompok dan / etc / group file termasuk semua pengguna yang merupakan anggota dari setiap kelompok (meskipun tidak daftar pengguna mana yang adalah kelompok utama mereka).

 

Root (superuser)

Ada pengguna khusus pada sistem masing-masing dengan akses tak terbatas ke sistem. Pengguna ini memiliki username dan groupname akar dan uid dan gid numerik dari 0. Pengguna ini diperlukan untuk memungkinkan tindakan administratif yang tidak diberikan di bawah pengguna lain dan untuk daemon tertentu yang memiliki akses penuh ke sistem. Pengguna ini didefinisikan oleh uid - sehingga superusers beberapa dapat dibuat dengan membuat beberapa entri dengan uid ini. Hal ini tidak dianjurkan karena menyediakan potensi masalah keamanan (lihat sudo bawah untuk metode yang disarankan menyediakan akses root untuk pengguna normal).
Tergantung pada setup dan apakah secara fisik pada komputer atau mengaksesnya dari jarak jauh mungkin atau tidak mungkin untuk login secara langsung sebagai root. Hal ini sangat dianjurkan untuk tidak login sebagai root kecuali benar-benar diperlukan karena risiko informasi penting disengaja menghapus.

 

Su dan Sudo

Ketika log on ke komputer Linux Anda biasanya akan memiliki hak pengguna tingkat. Untuk mengangkat ke akses root pengguna su atau sudo perintah yang digunakan. Ini benar-benar dapat digunakan untuk beralih ke setiap pengguna, namun hal ini paling sering digunakan ketika hak akses root diperlukan. The su perintah sudo dan dijalankan pada baris perintah, tetapi ada versi grafis yang disebut gksudo. Ketika akses diperlukan dalam aplikasi grafis maka biasanya akan set-up agar meminta otentikasi yang sesuai secara otomatis. Atau kadang-kadang mungkin untuk klik kanan pada ikon aplikasi dan pilih "Run as administrator" atau "Run as root".
Description: Linux gksudo Run as administrator
Su - Perintah su biasanya digunakan di mana pengguna tahu password dari pengguna bahwa mereka ingin dijalankan sebagai. Secara default ini akan beralih ke user root dan perintah sering (salah) disebut sebagai perintah superuser. Jika nama pengguna yang dimasukkan pada baris perintah-maka akan berubah menjadi pengguna bahwa alih-alih. Jika Anda sudah menjalankan sebagai root (mungkin melalui su sudah) maka tidak akan menanyakan password.
The '-' (tanda hubung) dapat digunakan untuk juga mengambil pengaturan pengguna sebagai (misalnya jalur pencarian) serta hak istimewa.
Sintaks perintah adalah:
su [-] [username]
Screenshot berikut menunjukkan pengguna beralih ke superuser. Perhatikan bahwa password root yang dimasukkan, bukan password pengguna.
stewart @ linuxserver1: ~ $ su -
 
Sandi: 
 
root @ linuxserver1: ~ #
Sudo - Perintah sudo dapat digunakan sebagai alternatif untuk perintah su, dan pada beberapa sistem yang digunakan secara eksklusif (misalnya Ubuntu). Perintah sudo bisa jauh lebih fleksibel daripada su, tergantung pada bagaimana dikonfigurasi. Misalnya sudo dapat dikonfigurasi untuk membatasi hak administrator untuk perintah tertentu dan bahkan dapat dikonfigurasi sehingga pengguna tidak diperlukan untuk memasukkan password saat menggunakan sudo (pemikiran yang cermat perlu dilakukan untuk keamanan aplikasi dan apakah tanpa pengawasan sesi dapat memungkinkan seseorang untuk mendapatkan izin akses). Dimana permintaan sudo pengguna untuk memasukkan password ini biasanya password mereka sendiri daripada password root (Ubuntu dan beberapa distro lain mengambil ini lebih lanjut dengan tidak memiliki password root yang berarti bahwa akses root hanya dapat diperoleh melalui sudo).
Setelah pengguna telah dikonfirmasi sendiri menggunakan sudo biasanya akan memiliki periode waktu di mana sudo dapat dijalankan tanpa harus memasukkan kembali password. Hal ini sangat berguna bila digunakan dengan fitur lain dari sudo yang memungkinkan perintah untuk dijalankan secara langsung daripada mengubah izin dari sesi shell. Misalnya contoh berikut ini sering digunakan pada Ubuntu untuk menginstal aplikasi baru:

sudo apt-get install ApplicationName

Jika Anda ingin menjalankan sesi shell sebaliknya maka baik shell harus dijalankan pada misalnya baris perintah

sudo bash

atau s-saklar yang digunakan.

sudo-s

Pada contoh di bawah pengguna diperlukan untuk mengotentikasi pertama kalinya kemudian jalankan sudo, tetapi kemudian dapat menjalankan perintah berikutnya tanpa harus kembali mengotentikasi.Password yang diberikan adalah password pengguna sendiri dan bukan password root.
 
stewart @ linuxserver1: ~ $ sudo ls / etc / security
 
[Sudo] password untuk stewart: 
 
access.conf limits.conf namespace.init pam_env.conf time.conf
 
group.conf opasswd namespace.conf sepermit.conf
 
 
 
stewart @ linuxserver1: ~ $ sudo ls / etc / security
 
access.conf limits.conf namespace.init pam_env.conf time.conf
 
group.conf opasswd namespace.conf sepermit.conf
 
stewart @ linuxserver1: ~ $ 

Catatan Saya telah membuat teks tebal dan menambahkan ruang kosong untuk menunjukkan perintah yang sama yang dijalankan dua kali. Password diminta saat perintah pertama kali dijalankan, tetapi tidak pada berjalan berikutnya menggunakan perintah sudo karena akan ingat otentikasi baru-baru ini.
Untuk menjalankan perintah sebagai user selain root-u username switch digunakan sebelum perintah.
Konfigurasi sudo terkandung dalam file / etc / sudoers.
Berikut menunjukkan beberapa opsi konfigurasi sudoers. Perhatikan bahwa kelompok admin atau roda biasanya digunakan untuk membatasi siapa yang dapat menjalankan sudo tapi ini adalah konvensi populer daripada aturan. Hal ini dimungkinkan untuk menggunakan groupname apapun, atau sudo dapat dikonfigurasi dengan daftar pengguna yang berwenang dalam file sudoers.
Sebuah keuntungan lebih lanjut dari sudo adalah bahwa akses user login yang mungkin diperlukan sebagai fitur keamanan pada server dengan beberapa adminstrators. Untuk keamanan dan konfigurasi pilihan sudo biasanya lebih disukai daripada su.
Ekstrak berikut ini memungkinkan root atau anggota kelompok admin untuk su ke pengguna lain.
 
# Pengguna keistimewaan spesifikasi
 
akar ALL = (ALL) ALL
 
 
 
# Anggota kelompok admin dapat mendapatkan hak root
 
% Admin ALL = (ALL) ALL

 

Pengguna izin pada file


Setelah membahas berbagai jenis pengguna dan kelompok ini kemudian diterapkan ke file berdasarkan pada hak akses file. Ini tidak hanya berlaku untuk file data, tetapi dapat diterapkan ke direktori untuk menentukan siapa yang dapat mengubah ke direktori tertentu dan perintah untuk membatasi siapa yang bisa menjalankan perintah itu.

 

Struktur File (inode)


Untuk memahami cara yang izin bekerja itu sering berguna untuk memahami bagaimana hak akses file yang disimpan pada disk. Ini mendapat sedikit teknis jadi jika Anda tidak merasa siap untuk ini merasa bebas untuk melompat ke bagian berikutnya pada hak akses file.
Setiap file pada disk memiliki dua bagian. The inode yang menggambarkan file dan blok data yang benar-benar memegang data. Hak akses file yang terkandung dalam inode untuk file.
Informasi berikut ini disimpan dalam inode ini: 
Ukuran file 
Permissions 
Tanggal & waktu penciptaan 
Tanggal & waktu modifikasi terakhir 
count Tautan
Ini adalah inode yang direferensikan oleh sistem operasi saat menentukan jika pengguna memiliki izin yang relevan.
Direktori ada sebagai link ke inode dari semua file (atau sub-direktori) yang terkandung dalam direktori tersebut. Hal ini ditunjukkan di bawah ini;
Description: Struktur direktori pada disk
Struktur direktori pada disk

 

File Permissions


Hak akses file dapat dilihat dengan menggunakan perintah ls dengan l-(pilihan listing panjang) seperti yang ditunjukkan di bawah ini
ls-l
 
total 0
 
-Rwxr-xr-x 1 stewart stewart 0 2009-01-30 17:00 dieksekusi
 
-R - r - r - 1 stewart stewart 0 2009-01-30 16:58 read-only-all.txt
 
-Rw-rw-r - 1 stewart insinyur 0 2009-01-30 16:59 baca-tulis-group.txt
Dari output ls hak akses file dapat dilihat di sebelah kiri. 
Ini adalah 10 karakter pertama dari entri file. Karakter pertama berkaitan dengan jenis file maka sisanya dalam 3 kelompok 3 karakter yang berkaitan dengan jenis akses yang berbeda.
Izin ini diterapkan ke (kiri ke kanan) 
user - pemilik dari file 
kelompok - kelompok orang, misalnya tim proyek atau departemen 
lain - orang lain yang memiliki login ke komputer
Ini kemudian dibagi menjadi 3 hak akses yang berbeda, yaitu mampu:
baca - Lihatlah isi file / mencari tahu apa file dalam direktori
 
menulis - Mengganti atau menghapus isi dari file / file membuat atau menghapus dalam sebuah direktori
 
mengeksekusi - Dapat mengeksekusi (dijalankan sebagai program) file / dapat mengubah ke direktori atau salinan dari direktori.
Ini ditata sebagai berikut (perhatikan ini adalah 10 karakter pertama dari layar ls-l):
Description: Izin akses file Linux
Akses izin tata letak
Jika entri tersebut diisi maka dalam mempengaruhi. Jika berlari keluar '-' maka tidak berlaku.
Ada juga hak akses lebih lanjut yang dapat diatur, namun ini lebih maju dan dijelaskan kemudian. Juga mencatat bahwa akar dapat menimpa sebagian besar perizinan.

 

Mengubah Perizinan File (chmod)


Dengan asumsi bahwa Anda baik pemilik dari file atau akar adalah mungkin bagi Anda untuk mengubah hak akses file untuk menambah atau menghapus izin. Hal ini dilakukan dengan menggunakan chmod (change mode) perintah.
Perintah chmod dapat digunakan dalam salah satu dari dua cara. Format simbolik atau format oktal.Simbolis berguna untuk pengguna baru karena lebih mudah untuk digunakan, namun jika usaha yang dilakukan untuk memahami format oktal maka dapat menjadi cara yang ampuh dan cepat untuk mengubah file permissions.
Format dasar dari perintah ini adalah:

chmod modus nama file

Hanya format parameter modus yang berbeda ketika menggunakan format izin yang berbeda.
Dalam izin Format simbolis ditambahkan atau dihapus dengan menggunakan simbol-simbol berikut
u = pemilik file (pengguna)
 
g = kelompok pemilik (group)
 
o = orang lain pada sistem (lainnya)
 
 
 
+ = Menambahkan izin
 
- = Menghapus izin
 
 
 
r = read izin
 
w = write izin
 
x = mengeksekusi izin
Misalnya untuk menambahkan akses write pada kelompok perintah berikut digunakan:

chmod g+ w file1

Dalam format Oktal modus ini didasarkan pada sejumlah oktal mewakili hak akses modus yang berbeda, di mana masing-masing kelompok izin (user, group, orang lain) memiliki nilai oktal mewakili membaca, menulis dan mengeksekusi bit. Hal ini memerlukan sedikit pengetahuan tentang biner atau basis nomor oktal. Format sebenarnya oktal (tapi ini dapat disamakan dengan 3 biner terpisah untuk konversi desimal untuk masing-masing user / group / semua izin). Manfaat utama menggunakan format oktal adalah bahwa semua perizinan di-set pada waktu yang sama dan perintah jauh lebih pendek daripada jika semua izin yang diatur menggunakan format simbolik.
            User Group Lainnya
 
Simbolis rwx rw-r -
 
Biner 111 110 100
 
            4 +2 +1 4 +2 +0 4 +0 +0
 
Oktal 7 6 4
File di atas akan memiliki nomor oktal 764 dan karena itu akan diubah dengan menggunakan perintah

chmod 764 file1

Cara alternatif bekerja di luar nilai-nilai oktal adalah dengan menambahkan nomor berikut tergantung pada izin yang diperlukan. 
= 4 Baca 
Tulis = 2 
Jalankan = 1
Oleh karena itu jika Anda ingin mengatur dibaca ya, menulis tidak ada dan melaksanakan untuk ya, ini akan menjadi 4 +1 = 5

 

Setuid, setgid dan sedikit lengket


Sejauh ini kita telah membahas hak akses file yang paling umum bahwa pengguna akan perlu untuk menjadi akrab dengan. Ada satu set lebih lanjut dari izin yang memberikan fungsionalitas lebih luar bahwa dari perizinan standar. Ini adalah setuid dan pilihan setgid, dan sedikit lengket. Ini ditunjukkan oleh ls dalam izin file normal dengan mengganti bit eksekusi biasanya ditunjukkan dengan menggantinya dengan S, s, T atau t yang sesuai.
Sebuah s huruf kecil digunakan di mana bit eksekusi aktif, dan S huruf besar di mana bit eksekusi tidak diatur. 
Ketika digunakan pada file eksekusi ini akan membuat perintah dijalankan sebagai pemilik file (seringkali root) daripada orang yang meluncurkan aplikasi. Hal ini diperlukan di mana user biasa perlu menjalankan program yang perlu untuk mengakses file yang hanya dapat dibaca / ditulis oleh root. Misalnya perintah passwd yang perlu mengakses file bayangan dilindungi password:
 
$ Ls-l / usr / bin / passwd
 
-Rwsr-xr-x 1 root root 37.084 2009-04-04 6:49 / usr / bin / passwd

Namun ini dapat menjadi resiko keamanan jika sudah diatur pada perintah yang baik memiliki cara bahwa pengguna dapat menjalankan perintah lain (karena mereka juga akan berjalan sebagai root), atau jika ada bug dalam aplikasi.
Bit setgid mirip dengan bit setuid, tetapi diatur pada akses group. Ini berarti bahwa perintah akan dijalankan sebagai kelompok yang memiliki file daripada kelompok default pengguna.
Bit sticky digunakan untuk membatasi siapa yang dapat menghapus file dalam direktori. Saat melihat menggunakan ls itu menggantikan dunia mengeksekusi izin dengan t huruf kecil jika bit eksekusi diaktifkan, dan T huruf jika bit eksekusi mati. Bila ini diatur pada direktori maka hanya pemilik file (atau akar) dapat menghapus file dalam direktori tersebut. Ini digunakan dalam direktori / tmp untuk memungkinkan pengguna untuk membuat file-file sementara, tapi berhenti orang lain selain dari pengguna yang menghapus file sementara.
 
ls-ld / tmp
 
drwxrwxrwt 20 root root 413.696 2009-08-14 15:39 / tmp

Untuk mengatur salah satu izin khusus menggunakan format oktal maka digit tambahan digunakan sebelum sisa nomor oktal. Ini dibuat sama dengan nilai lain oktal menggunakan setuid, setgid, lengket di tempat rwx.
Misalnya nomor oktal 4755, akan mengatur bit setuid (4) dan sisanya dari hak akses sesuai perintah passwd ditunjukkan sebelumnya.

 

Mengubah pemilik file (chown)


Pemilik pemilik dan kelompok file biasanya diatur ke pengguna dan grup default dari orang yang menciptakan file tersebut.
Pemilik atau kelompok dapat diubah dengan menggunakan chown (pemilik perubahan) perintah.
Formatnya adalah sebagai berikut:

chown user: nama file group

 

Mengatur standar perizinan (umask)

Izin default untuk file baru dibuat tergantung pada nilai umask.
Umask bekerja dengan membatasi hak akses yang diberikan ke file ketika dibuat oleh program baru. Jika program mencoba untuk memberikan hak akses penuh maka umask akan membatasi hak akses yang benar-benar mengatur. Namun jika permintaan program perizinan yang kurang dari umask maka umask tidak akan menambahkan izin tambahan.
Topeng bekerja dengan menerapkan negatif dari pengaturan umask anded dengan izin yang diminta.Akibatnya melakukan suatu DAN TIDAK terhadap nilai umask.
Hal ini diatur dalam profil / etc / atau / etc / bashrc untuk semua pengguna, namun dapat diubah dalam pengguna ~ /. Bashrc
Umask harus ditetapkan sebagai masker kebalikan dari izin yang diperlukan.
Misalnya umask dari 077 akan berarti bahwa kelompok dan semua pengguna memiliki izin.

Referensi:
http://www.penguintutor.com/linux/file-permissions-reference