У меня проблема с копированием файлов в каталог на Ubuntu 12.04. Я создаю каталог в домашнем каталоге так, чтобы путь, куда я хочу скопировать, был:
/home/sixven/camp_sms/inputs
Но когда ini запускает следующую команду в терминале, чтобы создать образец файла следующим образом:
francisco-vergara@Francisco-Vergara:/home/sixven/camp_sms/inputs$ touch test_file.txt
touch: can not make `touch' on «test_file.txt»: permission denied
Я не могу скопировать файлы непосредственно в этот каталог. Как я могу назначить права доступа с помощью команд chown
и chmod
для копирования файлов?
Я не знаю, какого пользователя и группу использовать.
Прежде всего, вы должны знать, что разрешение по умолчанию для каталогов в Ubuntu равно 644, что означает, что вы не можете создать файл в каталоге, владельцем которого вы не являетесь.
Вы пытаетесь от имени user:francisco-vergara
создать файл в каталоге /home/sixven/camp_sms/inputs
, который принадлежит user:sixven
.
Как решить эту проблему:.
Вы можете изменить права доступа к директории и разрешить другим создавать файлы в ней.
sudo chmod -R 777 /home/sixven/camp_sms/inputs
Эта команда рекурсивно изменит разрешение каталога и позволит всем другим пользователям создавать/изменять и удалять файлы и каталоги внутри него.
Вы можете изменить права владельца этой директории и сделать владельцем user:francisco-vergara
.
sudo chown -R francisco-vergara:francisco-vergara /home/sixven/camp_sms/inputs
Но таким образом user:sixven
не сможет снова записать в эту папку, и таким образом вы можете двигаться по кругу бесконечного цикла.
Поэтому я советую вам использовать вариант 1.
Или, если к этой директории будут иметь доступ оба пользователя, вы можете сделать следующий трюк:
изменить право собственности на каталог на user:francisco-vergara
и сохранить владельца группы group:sixven
.
sudo chown -R francisco-vergara /home/sixven/camp_sms/inputs
Как и прежде, оба пользователя могут использовать каталог.
Но, как я уже говорил, проще и эффективнее использовать вариант 1..
Чтобы изменить права собственности на файл, сделайте это от имени root:
chown -R user:user /home/sixven
Если вы решите воспользоваться способом chmod:
Если вы знаете, что пользователь входит в группу файла
chmod -R g+rw /home/sixven
Иначе:
chmod -R o+rw /home/sixven
Но этот способ не слишком надежен.
По умолчанию UMASK 022 (в Ubuntu ), поэтому разрешения для /home/username становятся 755. и вы вошли в систему как пользователь francisco-vergara
и пытаетесь создать файлы в каталоге пользователя sixyen Home: т.е. /home/sixven
. у него нет разрешения на запись Other users Only User/Group of sixven
has write access.
Если вы хотите получить доступ на запись в этот каталог, то вам нужно быть частью группы sixven
, используя usermod -G sixyen francisco-vergara
ИЛИ chmod -R 777 /home/sixven
(не используйте это'плохая практика).