Konsep pemilik dan grup untuk file adalah dasar untuk Linux. Setiap file dikaitkan dengan pemilik dan grup. Anda dapat menggunakan perintah chown dan chgrp untuk mengubah pemilik atau grup dari file atau direktori tertentu.
Pada artikel ini, kita akan membahas perintah 'chown' karena mencakup sebagian besar perintah 'chgrp ' perintah juga.
Bahkan jika Anda sudah mengetahui perintah ini, mungkin salah satu contoh yang disebutkan di bawah ini mungkin baru bagi Anda.
1. Mengubah pemilik file
# ls -lart tmpfile -rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile # chown root tmpfile # ls -l tmpfile -rw-r--r-- 1 root family 0 2012-05-22 20:03 tmpfile
Jadi kami melihat bahwa pemilik file diubah dari 'himanshu' menjadi 'root'.
2. Mengubah grup file
Melalui perintah chown, grup (tempat file tersebut berada) juga dapat diubah.
# ls -l tmpfile -rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile # chown :friends tmpfile # ls -l tmpfile -rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile
Jika Anda perhatikan dengan seksama, grup file berubah dari 'keluarga' menjadi 'teman'. Jadi kita lihat bahwa hanya dengan menambahkan ':' diikuti dengan nama grup baru, grup file dapat diubah.
3. Ubah pemilik dan grup
# ls -l tmpfile -rw-r--r-- 1 root family 0 2012-05-22 20:03 tmpfile # chown himanshu:friends tmpfile # ls -l tmpfile -rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile
Jadi kita melihat bahwa dengan menggunakan sintaks ‘
4. Menggunakan perintah chown pada file tautan simbolik
Berikut adalah tautan simbolis :
# ls -l tmpfile_symlnk lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile
Jadi kita melihat bahwa tautan simbolik ‘tmpfile_symlink’ tertaut ke file ‘tmpfile’.
Mari kita lihat apa yang terjadi jika perintah chown dikeluarkan pada tautan simbolik:
# chown root:friends tmpfile_symlnk # ls -l tmpfile_symlnk lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile # ls -l tmpfile -rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile
Ketika perintah chown dikeluarkan pada tautan simbolik untuk mengubah pemilik serta grup, maka itu merujuk pada tautan simbolik yaitu 'tmpfile' yang pemilik dan grupnya diubah. Ini adalah perilaku default dari perintah chown. Juga, ada tanda '–dereference' untuk hal yang sama.
5. Menggunakan perintah chown untuk secara paksa mengubah pemilik/grup file simbolik.
Dengan menggunakan tanda '-h', Anda dapat mengubah pemilik atau grup tautan simbolik secara paksa seperti yang ditunjukkan di bawah ini.
# ls -l tmpfile_symlnk lrwxrwxrwx 1 himanshu family 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile # chown -h root:friends tmpfile_symlnk # ls -l tmpfile_symlnk lrwxrwxrwx 1 root friends 7 2012-05-22 20:03 tmpfile_symlnk -> tmpfile
6. Ubah pemilik hanya jika file dimiliki oleh pengguna tertentu
Dengan menggunakan flag “–from” chown, Anda dapat mengubah pemilik file, hanya jika file tersebut sudah dimiliki oleh pemilik tertentu.
# ls -l tmpfile -rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile # chown --from=guest himanshu tmpfile # ls -l tmpfile -rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile # chown --from=root himanshu tmpfile # ls -l tmpfile -rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile
- Pada contoh di atas, kami memverifikasi bahwa pemilik/grup asli file ‘tmpfile’ adalah root/teman.
- Selanjutnya kami menggunakan tanda '–dari' untuk mengubah pemiliknya menjadi 'himanshu' tetapi hanya jika pemilik yang ada adalah 'tamu'.
- Sekarang, karena pemilik yang ada bukanlah 'tamu'. Jadi, perintah gagal mengubah pemilik file.
- Selanjutnya kami mencoba mengubah pemilik jika pemilik yang ada adalah 'root' (yang benar) dan kali ini perintah berhasil dan pemiliknya diubah menjadi 'himanshu'.
Pada catatan terkait, jika Anda ingin mengubah izin file, Anda harus menggunakan perintah chmod.
Jika Anda seorang pemula, Anda harus mulai dengan membaca dasar-dasar izin file.
7. Ubah grup hanya jika file sudah menjadi milik grup tertentu
Di sini juga bendera '–dari' digunakan tetapi dengan cara berikut:
# ls -l tmpfile -rw-r--r-- 1 himanshu friends 0 2012-05-22 20:03 tmpfile # chown --from=:friends :family tmpfile # ls -l tmpfile -rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile
Karena file 'tmpfile' sebenarnya milik grup 'teman' maka syaratnya sudah benar dan perintah berhasil.
Jadi kita melihat bahwa dengan menggunakan flag ‘–from=:
CATATAN:Dengan mengikuti template ‘–from=
8. Salin pengaturan pemilik/grup dari satu file ke file lain
Ini dimungkinkan dengan menggunakan tanda ‘–referensi’.
# ls -l file -rwxr-xr-x 1 himanshu family 8968 2012-04-09 07:10 file # ls -l tmpfile -rw-r--r-- 1 root friends 0 2012-05-22 20:03 tmpfile # chown --reference=file tmpfile # ls -l tmpfile -rw-r--r-- 1 himanshu family 0 2012-05-22 20:03 tmpfile
Pada contoh di atas, pertama-tama kita memeriksa pemilik/grup 'file' file referensi dan kemudian memeriksa pemilik/grup file target 'tmpfile'. Keduanya berbeda. Kemudian kami menggunakan perintah chown dengan opsi ‘–referensi’ untuk menerapkan pengaturan pemilik/grup dari file referensi ke file target. Perintah berhasil dan pengaturan pemilik/grup 'tmpfile' dibuat mirip dengan 'file'.
9. Ubah pemilik/grup file dengan menelusuri direktori secara rekursif
Ini dimungkinkan oleh opsi '-R'.
# ls -l linux/linuxKernel -rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/linuxKernel # ls -l linux/ubuntu/ub10 -rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/ubuntu/ub10 # ls -l linux/redhat/rh7 -rw-r--r-- 1 root friends 0 2012-05-22 21:52 linux/redhat/rh7 # chown -R himanshu:family linux/ # ls -l linux/redhat/rh7 -rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/redhat/rh7 # ls -l linux/ubuntu/ub10 -rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/ubuntu/ub10 # ls -l linux/linuxKernel -rw-r--r-- 1 himanshu family 0 2012-05-22 21:52 linux/linuxKernel
Jadi kita melihat bahwa setelah memeriksa pemilik/grup semua file di direktori 'linux' dan dua sub-direktori 'ubuntu' dan 'redhat'. Kami mengeluarkan perintah chown dengan opsi '-R' untuk mengubah pemilik dan grup. Perintah berhasil dan pemilik/grup semua file berhasil diubah.
10. Menggunakan perintah chown pada direktori tautan simbolik
Mari kita lihat apa yang terjadi jika kita mengeluarkan perintah 'chown' untuk secara rekursif mengubah pemilik/grup file dalam direktori yang merupakan tautan simbolis ke beberapa direktori lain.
Berikut adalah direktori tautan simbolik ‘linux_symlnk’ yang tertaut ke direktori ‘linux’ (sudah digunakan pada contoh ‘9’ di atas):
$ ls -l linux_symlnk lrwxrwxrwx 1 himanshu family 6 2012-05-22 22:02 linux_symlnk -> linux/
Sekarang, mari kita ubah pemilik (dari himanshu menjadi root) direktori tautan simbolik ini secara rekursif :
# chown -R root:friends linux_symlnk # ls -l linux_symlnk/ -rw-r--r-- 1 himanshu friends 0 2012-05-22 21:52 linuxKernel drwxr-xr-x 2 himanshu friends 4096 2012-05-22 21:52 redhat drwxr-xr-x 2 himanshu friends 4096 2012-05-22 21:52 ubuntu
Pada ouput di atas kita melihat bahwa pemilik file dan direktori tidak berubah. Ini karena secara default perintah 'chown' tidak dapat melintasi tautan simbolik. Ini adalah perilaku default tetapi ada juga tanda '-P' untuk ini.
11. Menggunakan chown untuk secara paksa mengubah pemilik/grup direktori tautan simbolik secara rekursif
Ini dapat dicapai dengan menggunakan flag -H
# chown -R -H guest:family linux_symlnk # ls -l linux_symlnk/ total 8 -rw-r--r-- 1 guest family 0 2012-05-22 21:52 linuxKernel drwxr-xr-x 2 guest family 4096 2012-05-22 21:52 redhat drwxr-xr-x 2 guest family 4096 2012-05-22 21:52 ubuntu
Jadi kita melihat bahwa dengan menggunakan flag -H, pemilik/grup semua file/folder diubah.
12. Buat daftar semua perubahan yang dibuat oleh perintah chown
Gunakan opsi verbose -v, yang akan menampilkan apakah kepemilikan file diubah atau dipertahankan seperti yang ditunjukkan di bawah ini.
# chown -v -R guest:friends linux changed ownership of `linux/redhat/rh7' to guest:friends changed ownership of `linux/redhat' retained to guest:friends ownership of `linux/redhat_sym' retained as guest:friends ownership of `linux/ubuntu_sym' retained as guest:friends changed ownership of `linux/linuxKernel' to guest:friends changed ownership of `linux/ubuntu/ub10' to guest:friends ownership of `linux/ubuntu' retained as guest:friends ownership of `linux' retained as guest:friends