Buat file di folder: izin ditolak

38

Saya memiliki masalah menyalin file ke direktori di Ubuntu 12.04. Saya membuat direktori di direktori home sehingga jalur tempat saya ingin menyalin adalah:

/home/sixven/camp_sms/inputs

Tetapi ketika ini jalankan perintah berikut di terminal untuk membuat file sampel sebagai berikut:

francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied

Saya tidak bisa menyalin file langsung di direktori itu. Bagaimana saya bisa menetapkan izin dengan chown& chmodperintah untuk menyalin file?

Saya tidak tahu pengguna dan grup mana yang digunakan.

franvergara66
sumber
Bagaimana Anda membuat direktori? Kenapa ada di dalam /home/sixven? Mengapa tidak ada di direktori home Anda?
terdon
2
Dari apa yang telah Anda salin-tempel, Anda menjalankan sentuhan sebagai pengguna francisco-vergara, tetapi direktori Anda adalah /home/sixvenapakah itu benar-benar rumah pengguna francisco-vergeraatau apakah itu milik sixvenpengguna? Anda harus mengklarifikasi apa yang ingin Anda lakukan dengan tepat. Tulis di rumah pengguna lain? Bagikan direktori itu di antara grup?
Leiaz

Jawaban:

54

Pertama-tama Anda harus tahu bahwa izin default direktori di Ubuntu adalah 644 yang berarti Anda tidak dapat membuat file di direktori Anda bukan pemiliknya.

Anda mencoba user:francisco-vergaramembuat file di direktori /home/sixven/camp_sms/inputsyang dimiliki oleh user:sixven.

Jadi bagaimana mengatasinya:

  1. Anda dapat mengubah izin direktori dan memungkinkan orang lain untuk membuat file di dalamnya.

    sudo chmod -R 777 /home/sixven/camp_sms/inputs
    

    Perintah ini akan mengubah izin direktori secara rekursif dan memungkinkan semua pengguna lain untuk membuat / memodifikasi dan menghapus file dan direktori di dalamnya.

  2. Anda dapat mengubah kapal pemilik direktori ini dan menjadikannya user:francisco-vergarasebagai pemilik

    sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
    

    Tetapi seperti ini, user:sixventidak dapat menulis di folder ini lagi dan dengan demikian Anda dapat bergerak dalam lingkaran infinite melingkar.

Jadi saya menyarankan Anda untuk menggunakan Opsi 1.

Atau jika direktori ini akan diakses oleh kedua pengguna Anda dapat melakukan trik berikut:

ubah kepemilikan direktori ke user:francisco-vergaradan pertahankan pemilik grup group:sixven.

sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs

Seperti itu kedua pengguna masih bisa menggunakan direktori.

Tetapi seperti yang saya katakan sebelumnya, paling mudah dan lebih efisien untuk menggunakan opsi 1.

Maythux
sumber
11
Menghidupkan ini untuk mengatakan: Anda seharusnya hampir tidak pernah 'chmod -R 777' apa pun. Menetapkan kepemilikan dengan benar adalah praktik yang jauh lebih aman. digitalocean.com/community/tutorials/… askubuntu.com/questions/20105/…
Douglas Adams
12

Untuk mengubah kepemilikan file, lakukan ini sebagai root:

chown -R user:user /home/sixven

Jika Anda memutuskan untuk menggunakan cara chmod:

Jika Anda tahu bahwa pengguna adalah bagian dari grup file

chmod -R g+rw /home/sixven

Jika tidak:

chmod -R o+rw /home/sixven

Namun cara ini tidak terlalu aman.

Ghassan
sumber
Bekerja seperti pesona
Faris Rayhan
1

Default UMASK 022 (di Ubuntu), sehingga izin untuk / home / username menjadi 755. dan Anda masuk sebagai pengguna francisco-vergaradan mencoba membuat file di pengguna sixyen Home: ie /home/sixven. tidak memiliki izin menulis untuk Pengguna lain Hanya Pengguna / Grup yang sixvenmemiliki akses tulis.

jika Anda ingin akses tulis di direktori itu, maka Anda harus menjadi bagian dari Grup sixvenmenggunakan usermod -G sixyen francisco-vergara ATAU chmod -R 777 /home/sixven(jangan gunakan itu praktik buruk).

Rahul Patil
sumber
Apakah Anda tidak terburu-buru? Kami masih belum tahu situasi OP.
guntbert