Klasörde dosya oluştur: izin reddedildi


37

Dosyaları Ubuntu 12.04'teki bir dizine kopyalarken sorun yaşıyorum. Giriş dizininde, kopyalamak istediğim yol:

/home/sixven/camp_sms/inputs

Ancak ini, aşağıdaki gibi bir örnek dosya oluşturmak için terminalde aşağıdaki komutu çalıştırın:

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

Dosyaları doğrudan bu dizine kopyalayamıyorum. Dosyaları kopyalamak için chown& chmodkomutlarıyla izinleri nasıl atayabilirim ?

Hangi kullanıcı ve grubu kullanacağımı bilmiyorum.


Dizini nasıl yarattın? Neden içeride /home/sixven? Neden ana dizininizde değil?
terdon

2
Kopyaladığınıza göre, kullanıcı olarak dokunmaya çalışıyorsunuz francisco-vergara, ancak dizinin içinde /home/sixvenolması gerçekten kullanıcının evi francisco-vergerami yoksa bir sixvenkullanıcıya mı ait ? Tam olarak ne yapmak istediğinizi netleştirmelisiniz. Başka bir kullanıcının evine yaz? Bu dizini bir grupta paylaşıyor musunuz?
Leiaz

Yanıtlar:


54

Öncelikle, Ubuntu'daki dizinlerin varsayılan izninin 644 olduğunu bilmeniz gerekir; bu, sahibi olmadığınız bir dizinde dosya oluşturamayacağınız anlamına gelir.

ait olduğu user:francisco-vergarabir dizinde bir dosya oluşturmaya çalışıyorsunuz ./home/sixven/camp_sms/inputsuser:sixven

Peki bu nasıl çözülür:

  1. Dizinin iznini değiştirebilir ve başkalarının içeride dosya oluşturmasını sağlayabilirsiniz.

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

    Bu komut, dizinin iznini tekrarlayarak değiştirir ve diğer tüm kullanıcıların içinde dosya ve dizin oluşturmasını / değiştirmesini ve silmesini sağlar.

  2. Bu dizinin sahibi gemisini değiştirebilir ve sahibi user:francisco-vergaraolarak yapabilirsiniz

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

    Ancak bu şekilde user:sixventekrar bu klasöre yazılamaz ve böylece dairesel bir sonsuz döngüde hareket edebilirsiniz.

Bu yüzden Seçenek 1'i kullanmanızı tavsiye ediyorum.

Veya bu dizine her iki kullanıcı tarafından da erişilecekse, aşağıdaki numarayı yapabilirsiniz:

Dizinin sahipliğini değiştirmek user:francisco-vergarave grup sahibini tutmak group:sixven.

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

Öyle ki her iki kullanıcı da dizini kullanabilir.

Ama daha önce dediğim gibi 1. seçeneği kullanmak en kolay ve en verimli yoldur .


10
Bunu söylemeye diriltmek: neredeyse hiçbir zaman 'chmod -R 777' dememelisin. Mülkiyeti doğru belirlemek çok daha güvenli bir uygulamadır. digitalocean.com/community/tutorials/… askubuntu.com/questions/20105/…
Douglas Adams

12

Dosya sahipliğini değiştirmek için bunu kök olarak yapın:

chown -R user:user /home/sixven

Eğer chmod yoluna gitmeye karar verirseniz:

Kullanıcının dosyanın grubunun bir parçası olduğunu biliyorsanız

chmod -R g+rw /home/sixven

Aksi takdirde:

chmod -R o+rw /home/sixven

Ancak bu yol çok güvenli değil.


Bir cazibe gibi çalışır
Faris Rayhan 10:30 '

1

Varsayılan UMASK 022 (Ubuntu'da), böylece / home / kullanıcı adı izinleri 755 olur ve kullanıcı olarak giriş francisco-vergarayaptınız ve kullanıcı sixyen Home'da dosya oluşturmaya çalışıyorsunuz /home/sixven. Yazma iznine sahip değil Diğer kullanıcılar için Yalnızca Kullanıcı / Grup sixvenyazma erişimine sahiptir.

Bu dizine yazma erişimi istiyorsanız, OR sixvenkullanarak Grup'un bir parçası olmanız gerekir (kötü bir uygulama kullanmayın).usermod -G sixyen francisco-vergarachmod -R 777 /home/sixven


Acele etmiyor musun biraz? OP'nin durumunu hala bilmiyoruz.
guntbert
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.