Если вы просто пользователь Windows, то скорее всего вы даже не слышали, что такое права доступа к файлам. Но если вы даже новичок в Linux, то скорее всего вы столкнулись у же с тем, что вам пришлось столкнуться с этим понятием. И наверняка у вас возник простой вопрос: как изменить права доступа к файлу или папке?
Это можно сделать конечно через файловый менеджер, если это один файл или одна папка. Но когда нужно изменить права доступа к сотне и даже тысячи файлов, то вручную это будет сделать трудно. Но тут на помощь приходит терминал и специальная команда chmod. Как изменить права доступа при помощи это программы?
Команда chmod применяется для изменения атрибутов файла или папки (ее имя образовано от термина режим (mode) который иногда используется для определения набора атрибутов), если вы владелец этого файла или папки. Для того чтобы разрешить себе чтение и запись файла и чтение всем остальным, необходимо установить значение 644 следующим образом:
chmod 644 filename
Если вы не хотите высчитывать восьмеричное значение, могу порадовать: можно также использовать следующие сокращенные обозначения:
u — пользователь (владелец) g — группа o — остальные (не u, не g) a — все пользователи +/-r — добавить/удалить разрешение на чтение +/-w — добавить/удалить разрешение на запись +/-x — добавить/удалить разрешение на выполнение
Первые четыре значения определяют, к какому типу пользователей (владельцу, группе, остальным или всем пользователям) применять изменение прав доступа, значение по умолчанию — а, ко всем пользователям. Последние три обозначения — изменяемые права доступа. Если вас интересует ремонт кондиционеров Daikin, то лучше делать это в Москве у официального дилера.
Таким образом, чтобы установить изменить права доступа на 644 (независимо от предыдущих прав доступа) можно применить следующие две команды:
chmod a+r-w-x filename chmod u+w filename
Первая команда задает разрешение для всех: пользователя, группы и остальных (а) на чтение, но не на запись и выполнение (+r-w-x) файла. Вторая разрешает пользователю (u) записывать (+w) в файл. Для выяснения текущего значения атрибутов введите:
ls -l filename
Эта команда выведет длинную строку, содержащую мета информацию о файле, известную системе. Первый столбец будет содержать атрибуты и будет выглядеть следующим образом:
-r—r—r—
Самый первый символ в строке обозначает, является ли объект файлом, каталогом или символической ссылкой. Файлы обозначаются дефисом (-), каталоги — буквой d, а символические ссылки — буквой l. Таким образом, без первого символа остается 9 символов, три группы по три, представляющие права доступа по порядку для владельца, группы и остальных.
Из примера видно, что файлу предоставляется только право на чтение для владельца, группы и остальных. Для того чтобы разрешить владельцу запись в файл, достаточно добавить один атрибут следующим образом:
chmod u+w filename
Если файлу, к которому вы обращаетесь, необходимо задать разрешение на выполнение любым пользователем, можно применить следующую команду:
chmod a+x filename
Или же, поскольку по умолчанию изменения касаются всех пользователей, можно просто ввести:
chmod +x filename
Вот такими простыми командами можно изменить права доступа к папкам и файлам. Возможно запомнить всё сразу трудно, но главное поймите принцип и тогда вам будет легко использовать эти команды.
У меня ничего не выходит!
1. Открываю терминал в дирктории, где находится файл areca.sh
2. Ввожу в терминале команду:
chmod +x areca.sh
3. Смотрю Свойства файла areca.sh — ничего не поменялось! В пункте «Позволять выполнение файла, как программы» нет «птички».
Вручную (мышью) «птичка» тоже не ставится.
При этом, на вкладке «Права» я указан, как владелец, с доступом «Чтение-запись» и группа «root».
Что я делаю не так???
А где физические находится файл, на какой файловой системе?
Я, похоже, догадался — в чём тут дело!
Моя ОС Linux Mint Mate 17.1 (64bit), файловая система Ext4, но все файлы программы находятся на отдельном диске, на разделе NTFS.
Я сейчас скопировал их на раздел Ext4 и всё стало получаться! Права изменяются мышкой на соответствующей вкладке Свойств файла. И сам файл areca.sh стал исполняемым, и запускается двойным кликом.
Т.е., все манипуляции и команды среды Linux на разделе с NTFS просто так не работают!
Я так подумал, поэтому и спросил, права можно выставить этими командами только на файловых системах linux. Успехов!