Utwórz plik w folderze: odmowa uprawnień


37

Mam problem z kopiowaniem plików do katalogu na Ubuntu 12.04. Tworzę katalog w katalogu domowym, aby ścieżka, do której chcę skopiować, to:

/home/sixven/camp_sms/inputs

Ale kiedy ini uruchom następujące polecenie w terminalu, aby utworzyć przykładowy plik w następujący sposób:

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

Nie mogę skopiować plików bezpośrednio z tego katalogu. Jak mogę przypisać uprawnienia za pomocą poleceń chown& chmod, aby skopiować pliki?

Nie wiem, którego użytkownika i grupy użyć.


Jak utworzyłeś katalog? Dlaczego to jest /home/sixven? Dlaczego nie ma go w twoim katalogu domowym?
terdon

2
Z tego, co skopiowałeś, używasz dotyku jako użytkownik francisco-vergara, ale twój katalog jest w /home/sixventym, czy naprawdę jest to dom użytkownika, francisco-vergeraczy też należy on do sixvenużytkownika? Powinieneś wyjaśnić, co dokładnie chcesz zrobić. Napisz w domu innego użytkownika? Czy udostępnić ten katalog grupie?
Leiaz

Odpowiedzi:


54

Przede wszystkim musisz wiedzieć, że domyślne uprawnienia do katalogów w Ubuntu to 644, co oznacza, że ​​nie możesz utworzyć pliku w katalogu, który nie jest właścicielem.

próbujesz user:francisco-vergarautworzyć plik w katalogu, /home/sixven/camp_sms/inputsktórego właścicielem jest user:sixven.

Jak to rozwiązać:

  1. Możesz zmienić uprawnienia do katalogu i umożliwić innym tworzenie plików w nim.

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

    To polecenie zmieni rekursywnie uprawnienia do katalogu i umożliwi wszystkim innym użytkownikom tworzenie / modyfikowanie i usuwanie plików i katalogów w nim zawartych.

  2. Możesz zmienić właściciela tego katalogu i ustawić go user:francisco-vergarajako właściciela

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

    Ale w ten user:sixvensposób nie można ponownie pisać w tym folderze, dlatego możesz poruszać się w okrągłej nieskończonej pętli.

Radzę więc skorzystać z Opcji 1.

Lub jeśli dostęp do tego katalogu będą mieli obaj użytkownicy, możesz wykonać następującą sztuczkę:

zmień własność katalogu na user:francisco-vergarai zachowaj właściciela grupy group:sixven.

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

W ten sposób obaj użytkownicy mogą nadal korzystać z katalogu.

Ale jak już mówiłem wcześniej Korzystanie z opcji 1 jest najłatwiejsze i bardziej wydajne .


10
Wskrzeszenie tego, by powiedzieć: prawie nigdy nie powinieneś „chmod -R 777” niczego. Prawidłowe ustawienie własności jest znacznie bezpieczniejszą praktyką. digitalocean.com/community/tutorials/... askubuntu.com/questions/20105/...
Douglas Adams

12

Aby zmienić własność pliku, wykonaj to jako root:

chown -R user:user /home/sixven

Jeśli zdecydujesz się na chmod:

Jeśli wiesz, że użytkownik jest częścią grupy pliku

chmod -R g+rw /home/sixven

Inaczej:

chmod -R o+rw /home/sixven

Ale ten sposób nie jest zbyt bezpieczny.


Działa jak urok
Faris Rayhan,

1

Domyślny UMASK 022 (w Ubuntu), więc uprawnienia dla / home / username wynoszą 755. Zalogowałeś się jako użytkownik francisco-vergarai próbujesz utworzyć pliki w użytkownik sixyen Home: tj /home/sixven. nie ma uprawnień do zapisu dla innych użytkowników. Tylko użytkownik / grupa sixvenma prawo do zapisu.

jeśli chcesz mieć dostęp do zapisu w tym katalogu, musisz należeć do grupy sixvenkorzystającej z usermod -G sixyen francisco-vergara OR chmod -R 777 /home/sixven(nie używaj złej praktyki).


Nie spieszysz się trochę? Nadal nie znamy sytuacji PO.
guntbert
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.