Di Linux, mungkin ada saatnya Anda ingin mengubah pemilik dan informasi terkait grup untuk file atau direktori. Jika Anda seorang pemula baris perintah dan ingin tahu bagaimana Anda dapat membuat perubahan seperti itu melalui baris perintah, Anda akan senang mengetahui bahwa ada perintah - dijuluki chown - yang memungkinkan Anda melakukan ini.
Sebelum kita mulai dengan tutorial perintah chown, perlu disebutkan bahwa semua contoh dan instruksi yang disebutkan di sini telah diuji pada Ubuntu 18.04 LTS dan Debian 10.
Perintah Linux chown dijelaskan
Seperti yang telah disebutkan di awal, perintah chown memungkinkan Anda mengubah pemilik dan grup file melalui baris perintah. Berikut ini adalah sintaks umum perintah:
chown [OPTION]... [OWNER][:[GROUP]] FILE...
Inilah yang dikatakan halaman manual alat tentangnya:
If only an owner (a user name or numeric user ID) is given, that user is made the owner of each
given file, and the files' group is not changed. If the owner is followed by a colon and a
group name (or numeric group ID), with no spaces between them, the group ownership of the files is
changed as well. If a colon but no group name follows the user name, that user is made the owner
of the files and the group of the files is changed to that user's login group. If the colon
and group are given, but the owner is omitted, only the group of the files is changed; in this case,
chown performs the same function as chgrp. If only a colon is given, or if the entire operand is
empty, neither the owner nor the group is changed.
Contoh tipe T&J berikut akan memberi Anda ide bagus tentang cara kerja perintah chown:
Q1. Bagaimana cara mengubah pemilik file?
Perhatikan contoh berikut:
Di sini, pemilik file adalah 'himanshu' dan grup tempatnya juga adalah 'himanshu'. Sekarang, untuk mengubah pemilik menjadi, katakan 'root', gunakan perintah berikut:
chown root file1
Tangkapan layar berikut mengonfirmasi bahwa pemiliknya kini telah diubah menjadi 'root'.
Q2. Bagaimana cara mengubah grup file?
Mengubah grup mirip dengan mengubah pemilik. Perbedaannya hanya pada sintaks perintahnya, yaitu sebagai berikut:
chown :[group-name] [file-name]
Jadi misalkan persyaratannya adalah mengubah grup 'file1' menjadi 'root'. Maka perintahnya adalah:
chown :root file1
Tangkapan layar berikut menunjukkan grup berhasil diubah dari 'himanshu' menjadi 'root'.
Catatan :Jika Anda bertanya-tanya mengapa perintah 'sudo' digunakan, atau jika Anda baru mengenal 'sudo', Anda harus terlebih dahulu melalui tutorial kami tentang alat ini.
Q3. Bagaimana cara mengubah pemilik dan grup file?
Untuk mengubah pemilik dan grup file, gunakan sintaks berikut:
chown [new-owner]:[new-group] [file-name]
Jadi dalam kasus kami, untuk mengubah pemilik dan grup yang ada dari 'root' menjadi 'himanshu', kami akan menggunakan perintah berikut:
chown himanshu:himanshu file1
Tangkapan layar berikut menunjukkan perintah di atas beraksi:
Q4. Bagaimana cara mengubah pemilik atau grup (atau keduanya) setelah memeriksa pemilik/grup yang ada?
Mungkin ada situasi di mana-di Anda mungkin ingin terlebih dahulu memeriksa silang pemilik/grup file yang ada sebelum membuat perubahan apa pun. Jadi untuk kasus tersebut, Anda dapat menggunakan --dari opsi baris perintah. Opsi ini mengharuskan Anda menyebutkan nama pemilik/grup yang ingin diverifikasi.
chown --from=[curr-own]:[curr-group] [new-owner]:[new-group] [filename]
Misalnya:
chown --from=root:himanshu himanshu:root file1
Perintah di atas akan memeriksa apakah pemilik yang ada adalah 'root' dan grup adalah 'himanshu'. Jika ya, maka pemilik akan diubah menjadi 'himanshu' dan grup akan menjadi 'root'.
Q5. Bagaimana cara memilih informasi pemilik/grup dari file referensi?
Mungkin juga ada situasi di mana-di Anda mungkin ingin chown mengambil informasi terkait pemilik dan grup dari file, alih-alih memasukkannya secara manual di baris perintah. Untuk kasus tersebut, Anda dapat menggunakan --referensi opsi baris perintah. Opsi ini mengharuskan Anda memasukkan nama file referensi.
chown --reference=[ref-file-name] [filename]
Misalnya:
chown --reference=file2 file1
Jadi perintah di atas akan menyalin informasi pemilik dan grup dari file2 ke file1.
Q6. Bagaimana membuat chown beroperasi pada file dan direktori secara rekursif?
Untuk membuat perintah chown beroperasi secara rekursif pada file dan direktori, gunakan -R opsi baris perintah.
chown -R [new-owner]:[new-group] [directory-name-or-path]
Bagi mereka yang tidak mengetahui, rekursif berarti operasi akan dilakukan untuk semua file dalam direktori yang diberikan, serta untuk file dan direktori dalam semua sub-direktori.
Q7. Bagaimana cara membuat pesan kesalahan penekanan chown?
Mungkin ada kalanya perintah chown yang Anda jalankan memberikan kesalahan. Misalnya, perintah berikut ketika dijalankan di sistem saya:
chown --from=himanshu:himanshu himanshu:root file4
memberikan kesalahan berikut:
chown: cannot access 'file4': No such file or directory
Sekarang anggaplah persyaratannya adalah alat tersebut tidak boleh menampilkan kesalahan seperti itu. Maka ini dapat dimungkinkan dengan menggunakan -f opsi baris perintah.
Tangkapan layar yang disebutkan di atas mengonfirmasi bahwa -f opsi baris perintah menekan kesalahan/peringatan.
Q8. Bagaimana cara mengubah kepemilikan grup menjadi grup login dari pengguna yang ditentukan?
Ini dapat dilakukan dengan menggunakan [pengguna/pemilik]: sintaksis. Misalnya, perintah berikut:
chown himanshu: file1
Akan memastikan kepemilikan diberikan kepada 'himanshu' dan grup akan diubah menjadi grup login 'himanshu'. Perhatikan bahwa ini berbeda dari kasus ketika titik dua (:) tidak digunakan, seperti dalam kasus tersebut (dijelaskan pada Q1 di atas), grup tetap tidak berubah.
Hal lain yang perlu disebutkan di sini adalah jika Anda hanya menggunakan titik dua (:) tanpa menentukan pemilik atau grup, maka tidak ada perubahan yang akan terjadi. Misalnya:
chown : file1
Perintah ini tidak akan berpengaruh pada kepemilikan file oleh pengguna atau grup.
Q9. Bagaimana cara kerja chown dengan tautan simbolik?
Secara default, jika Anda mencoba mengubah kepemilikan pengguna dan grup dari tautan simbolik, tidak akan ada perubahan. Sebagai gantinya, file yang ditautkannya akan mendapatkan perubahan ini.
Misalnya, tangkapan layar di bawah ini menunjukkan saya membuat tautan simbolik 'link1' yang kepemilikan pengguna dan grupnya disetel ke 'himanshu'. Kemudian saya menjalankan perintah chown untuk mengubah pengguna dan grup menjadi 'root'. Tetapi perintah tersebut tidak berpengaruh pada file tautan simbolik - sebagai gantinya, itu adalah 'file1' (ke mana tautan simbolik menunjuk) yang kepemilikan pengguna dan grupnya diubah.
Namun, jika mau, Anda dapat mengganti perilaku default ini menggunakan opsi -h.
Q10. Bagaimana cara mengubah pemilik dan grup untuk direktori?
Sama seperti cara Anda melakukannya untuk file. Berikut ini contohnya:
chown root:root ./test-dir/
Perhatikan bahwa Anda dapat memverifikasi silang perubahan pemilik dan grup untuk direktori menggunakan perintah stat - kolom UID dan GID di output menampilkan nama pengguna dan grup.
Misalnya dalam kasus saya, output dengan jelas menunjukkan kepemilikan grup pengguna yang berubah.
File: test-dir
Size: 4096 Blocks: 8 IO Block: 4096 directory
Device: 808h/2056d Inode: 11928001 Links: 2
Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2018-08-07 10:31:04.867467573 +0530
Modify: 2018-08-07 10:30:53.651807123 +0530
Change: 2018-08-07 10:32:49.644427930 +0530
Birth: -
Perhatikan bahwa jika Anda membuat perubahan rekursif (lihat T&J yang membahas opsi -R), dan berurusan dengan tautan simbolis, Anda memiliki opsi berikut yang dapat Anda gunakan:
The following options modify how a hierarchy is traversed when the -R
option is also specified. If more than one is specified, only the
final one takes effect.
-H if a command line argument is a symbolic link to a directory,
traverse it
-L traverse every symbolic link to a directory encountered
-P do not traverse any symbolic links (default)
Q11. Bisakah UID dan GID digunakan sebagai ganti nama pengguna dan grup?
Ya, Anda dapat menggunakan ID pengguna dan ID grup alih-alih nama. Sintaks perintahnya tetap sama.
Misalnya:
chown 1000:1000 file1
Perintah di atas akan mengubah kepemilikan pengguna dan grup menjadi pengguna dengan UID 1000 dan grup dengan GID 1000.
Q12. Bagaimana cara membuat chown menampilkan detail operasi di output?
Jika Anda ingin perintah chown menampilkan detail operasi yang dijalankannya, gunakan opsi baris perintah -v.
Misalnya, perintah ini:
sudo chown himanshu:himanshu link1 -v
menghasilkan output berikut:
changed ownership of 'link1' from root:root to himanshu:himanshu
Sekarang, ada opsi lain -c yang juga berfungsi seperti -v, hanya saja opsi itu tidak menampilkan detail apa pun saat tidak ada yang diubah.
Kesimpulan
Perintah chown, karena sebagian besar dari Anda mungkin akan setuju, tidak sulit untuk digunakan. Yang lebih baik lagi adalah halaman manual alat tersebut berisi banyak detail yang mungkin dapat membantu pengguna (terutama pemula). Cobalah contoh yang telah kami jelaskan di sini, dan untuk fitur/opsi lainnya, buka halaman manual chown. Jika ada keraguan atau pertanyaan, tinggalkan komentar di bawah.