- Изменить владельца и права доступа на файлы и папки в Linux/BSD
- Команда Chown в Linux (владение файлом)
- Как использовать chown
- Как изменить владельца файла
- Как изменить владельца и группу файла
- Как изменить группу файла
- Как изменить право собственности на символические ссылки
- Как рекурсивно изменить право собственности на файл
- Использование справочного файла
- Выводы
- chown — команда изменения владельца файлов и папок в linux
- Помощь по команде chown в linux
- Как быстро поменять пользователя файла и/или папки в linux
- Пример использования в видео-инструкции:
- Как поменять владельца каталога linux
Изменить владельца и права доступа на файлы и папки в Linux/BSD
Изменить владельца и права доступа на файлы и папки в Linux и *BSD системах
Представленная ниже информация будет полезная начинающим Linux и *BSD системным администраторам. По большому счету, в любой операционной системе, будь то Linux, Windows или FreeBSD, корректная работа приложений, сервисов и безопасность системы в целом напрямую зависит от прав доступа на файлы и папки. Используя ниже приведённые средства, можно решить практически 90% проблем, возникающих при настройке прав доступа.
Сменить владельца для всех папок и файлов. Для этих целей в Unix используется команда chown. Она обладает рядом параметров:
- Опции. Например, для того, чтобы изменения коснулись не только данной директории, но и всех поддиректорий, нужно применить команду рекурсивно, т.е. с параметром “-R”.
- Владелец или группа владельцев (“user:group” или “user”).
- Пути до папок / файлов, к которым нужно применить команду. Например, “/mnt/pool1/dts1/backup”.
Таким образом, команда для смены смены владельца (и группы владельцев) для директорий и всех вложенных папок и фалов будет выглядеть так:
sudo chown -R user:group /home/user/dir/
Изменить права доступа на файл или папку в Linux и *BDS системах можно командой chmod. Стоит отметить, что в Unix имеются свои особенности в работе данной команды и принципа разделения прав. Так, кроме владельца файла или папки, можно настроить, какие операции может выполнять этот самый владелец и группа, а также все остальные пользователи. В Unix идёт разделение возможностей следующим способом – владелец, группа владельцев и другие. Также присутствует следующее разделение прав:
- Право на запуск файла (для папок – проход по директории).
- Право на изменение файла (создание и удаление файлов и папок в директории)
- Право на чтение файла (для папок – это право на просмотр содержимого директории)
Для удобства использования и запоминания, используется следующая кодировка:
Складывая данные цифровые обозначения мы получим набор прав, предоставляемый владельцу/группе/другим. Разберем данную информацию на примере:
Изменять файл имеет право только владелец, группа владельцев может читать, остальные – ничего не могут, соответственно команда будет такой:
chmod 640 /media/fileshare/file.txt
Создавать файлы в папке могут все, но видит их только владелец:
chmod 622 /media/fileshare/messages/
Чтобы все могли запускать какую-либо программу, но никто, кроме владельца, не мог её редактировать:
chmod 711 /media/share/exec
Для изменения прав на все вложенные файлы и папки (т.е. рекурсивно) используется опять же ключ “-R”.
Выполняя данные операции, стоит понимать – изменять права на файлы и директории могут только администраторы и владелец этих папок и файлов.
Изменение прав только на файлы или только на папки – команда find. При этом файлы обозначаются как file (f), а директории, соответственно – d. Например:
Нашли ошибку в тексте? Выделите фрагмент текста и нажмите Ctrl+Enter
Источник
Команда Chown в Linux (владение файлом)
Команда chown позволяет вам изменить пользователя и / или группу, владеющую данным файлом, каталогом или символической ссылкой.
В Linux все файлы связаны с владельцем и группой и им назначаются права доступа для владельца файла, членов группы и других.
В этом руководстве мы покажем вам, как использовать команду chown на практических примерах.
Как использовать chown
Прежде чем перейти к использованию команды chown , давайте начнем с обзора основного синтаксиса.
Выражения команды chown имеют следующую форму:
USER — это имя пользователя или идентификатор пользователя (UID) нового владельца. GROUP — это имя новой группы или идентификатор группы (GID). FILE(s) — это имя одного или нескольких файлов, каталогов или ссылок. Цифровые идентификаторы должны начинаться с символа + .
- USER — Если указан только пользователь, указанный пользователь станет владельцем данных файлов, принадлежность группы не изменится.
- USER: — Если после имени пользователя ставится двоеточие : и имя группы не указано, пользователь становится владельцем файлов, а права собственности группы файлов изменяются на группу входа пользователя.
- USER:GROUP — Если указаны и пользователь, и группа (без пробелов между ними), право собственности пользователя на файлы изменяется на данного пользователя, а право собственности на группу изменяется на данную группу.
- :GROUP — Если пользователь не указан, а группа имеет префикс двоеточия : то для данной группы изменяется только групповое владение файлами.
- : Если указано только двоеточие : без указания пользователя и группы, никаких изменений не производится.
По умолчанию в случае успеха chown не производит никакого вывода и возвращает ноль.
Используйте команду ls -l чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом, и только в группе, членом которой они являются. Пользователи с правами администратора могут изменять групповое владение всеми файлами.
Как изменить владельца файла
Чтобы изменить владельца файла, используйте команду chown за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1 и каталога dir1 на нового владельца с именем linuxize :
Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2 новому владельцу с UID 1000 :
Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с + :
Как изменить владельца и группу файла
Для того, чтобы изменить владельца и группу с использованием файловом chown команды следуют новым владельцем и группой , разделенных двоеточием ( : ) без пробелов и целевого файла.
Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и сгруппирует users :
Если опустить имя группы после двоеточия ( : ) группа файла изменяется на указанного пользователя группы входа в систему :
Как изменить группу файла
Чтобы изменить только группу с использованием файловом chown команды , за которым следует двоеточие ( : ) и новое название группы (без пробела между ними) и целевого файла в качестве аргумента:
Следующая команда изменит группу владельцев файла с именем file1 на www-data :
Еще одна команда, которую вы можете использовать для изменения группового владения файлами, — это chgrp .
Как изменить право собственности на символические ссылки
Когда рекурсивная опция не используется, команда chown изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символические ссылки .
Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1 которая указывает на /var/www/file1 , chown изменит владельца файла или каталога, на который указывает символическая ссылка:
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать символическую ссылку1: разрешение отклонено».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks . 1 означает включен, а 0 отключен. Мы рекомендуем не отключать защиту символических ссылок.
Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h :
Как рекурсивно изменить право собственности на файл
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( —recursive ):
В следующем примере будет изменено владение всеми файлами и подкаталогами в каталоге /var/www новому владельцу и группе с именем www-data :
Если каталог содержит символические ссылки, передайте параметр -h :
Другие параметры, которые можно использовать при рекурсивном изменении владельца каталога, — это -H и -L .
Если аргумент, переданный команде chown является символической ссылкой, указывающей на каталог, опция -H заставит команду пройти по нему. -L указывает chown по каждой символической ссылке на обнаруженный каталог. Обычно вы не должны использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.
Использование справочного файла
Параметр —reference=ref_file позволяет вам изменить права собственности пользователя и группы на данные файлы, чтобы они были такими же, как у указанного справочного файла ( ref_file ). Если справочный файл является символической ссылкой, chown будет использовать пользователя и группу целевого файла.
Например, следующая команда назначит пользователю и группе владение file1 для file2
Выводы
chown — это утилита командной строки Linux / UNIX для изменения владельца файла и / или группы.
Чтобы узнать больше о команде chown посетите страницу руководства chown или введите man chown в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
chown — команда изменения владельца файлов и папок в linux
Как упоминалось и не раз, например, в → этой статье про права на файл, что в linux всё является файлом, а у файла есть владелец и группа. При работе с файлами и папками может потребоваться сменить владельца и/или группу. Например, при смене пользователя или его домашнего каталога. Или для того, чтобы заблокировать доступ пользователю к папке и файлам, лежащим в ней. Или наоборот, когда нужно дать права пользователю или группе пользователей в определённое место на диске.
Помощь по команде chown в linux
Для того, чтобы сменить пользователя и/или группу у файла и/или папки в linux применяется команда chown . Как обычно, первым делом заглянем в подсказку операционной системы по этой команде:
Как быстро поменять пользователя файла и/или папки в linux
Чтобы сократить время на ознакомление с той командой, сразу дам готовый рецепт того, как быстро поменять пользователя файла и/или папки в linux. Формат этой команды такой:
В первой строчке произойдёт смена пользователя на user , группы на group у файла /patch/filename .
Во второй строчке в примере выше использована дополнительная опция -R , которая означает рекурсивную обработку. То есть у папки /patch/foldername произойдёт смена владельца и группы, но этим дело не закончится, все папки и файлы, лежащие в этой директории также будут подвергнуты процессу смены владельца и группы. Рекурсия бывает очень удобна при глобальных изменениях в группой политики в системе.
Остальные опции команды chown не так часто востребованы и используются, поэтому пока не буду с ними разбираться.
Пример использования в видео-инструкции:
Источник
Как поменять владельца каталога linux
В данной статье подробно рассмотрим права доступа к каталогам и файлам в Linux. А также расскажу о том, как можно изменить права и владельца на файлы и директории в Linux.
Первое, что я хотел бы рассмотреть, это каким образом можно просмотреть права доступа на файлы и каталоги.
Просмотр прав доступа на файлы и каталоги в Linux.
Прежде, чем двигаться далее, советую прочитать первую статью (если Вы этого не сделали, конечно) данного цикла про навигацию в терминале.
Для статьи я создал несколько файлов и каталогов в домашней папке.
Для того, чтобы просмотреть права доступа на файлы и каталоги в нужной директории, переходим в неё и выполняем команду:
У нас будет выведено следующее сообщение в терминале:
Как видно, для наших файлов и каталогов вывелась подробная информация.
Слева отображены права доступа на файл и директорию вида:
Чуть ниже подробно разберём это «непонятную» надпись, а пока двигаемся дальше.
Для того, чтобы просмотреть права доступа на определенный файл, нужно ввести следующую команду:
Вот как это выглядит:
Для того, чтобы просмотреть права доступа на определенный каталог, вводим следующую команду:
Выглядит это следующим образом:
Для того, чтобы просмотреть права доступа на директории и файлы рекурсивно внутри каталога, нужно ввести следующую команду, перейдя в нужный каталог:
либо ввести каталог:
Выглядит это следующим образом:
Расшифровка «символьной формы» прав доступа на каталоги и файлы в Linux.
После выполнения команд из первого пункта у нас выдавалось сообщение вида:
Будем использовать в качестве примера в этом пункте.
Это символьная форма прав доступа в Linux. Давайте разберем её подробно.
Данное сообщение состоит из 10 символов.
Первый символ обозначает тип данных.
Данный символ может быть следующим:
В большинстве случаев это будет:
— | обычный файл; |
d | директория/каталог/папка (directory); |
l | символическая ссылка (link). |
Но может быть следующим:
b | файл блочного устройства (block); |
c | файл символьного устройства; |
s | доменное гнездо (socket); |
p | именованный канал (pipe). |
Следовательно, в нашем случае это директория (каталог, папка).
Следующие 9 символов обозначают права доступа.
Данные 9 символов состоят из трех групп:
- Первая группа из трех символов обозначает права доступа владельца файла или директории (u — user).
- Вторая группа из трех символов обозначает права доступа на файл или директорию для системной группы (g — group).
- Третья группа из трех символов обозначает права доступа на файл или директорию для всех остальных (o — other).
У этих трёх групп одинаковая комбинация символов, то есть:
Что же они обозначают?
Очень легко запомнить:
r | read, то есть, право доступа на чтение файла или директории. |
w | write, то есть, право на изменение и удаление файла или директории. |
x | eXecute, то есть, право на запуск файла как программы или вход в директорию. |
Всегда располагаются в таком порядке:
Если вместо какого-то символа идёт тире (минус), к примеру:
то это значит, что отсутствуют права на изменение и удаление файла или директории.
то это обозначает, что отсутствуют права на изменение и запуск файла или директории. Доступен только просмотр.
Таким образом, из нашего примера:
это сообщение обозначает, что является директорией, у владельца и у группы есть полные права доступа — на чтение, изменение, удаление, запуск (вход внутрь каталога), у всех остальных есть только права на чтение и запуск(вход внутрь каталога).
Как видите, ничего сложного нет.
Определение владельца и группы файла или директории.
Но у Вас может возникнуть закономерный вопрос о том, а как же узнать, кто именно является владельцем файла и какая группа?
Те же самые команды из первого пункта:
Как видно на скриншоте:
- в третей колонке идет имя владельца файла;
- в четвертой колонке идет название группы.
Следовательно, если пользователь не владелец файла, но входит в группу, то у него будут права на файл или директорию этой самой группы.
В Nautilus (файловом менеджере Ubuntu), можно нажать правой кнопкой мыши на файле, открыть свойства, перейти на вкладку «Права» и увидеть:
Здесь в графическом режиме видны права доступа, владелец и группа. И если Вы являетесь владельцем файла или директории, то Вы можете изменять права доступа.
Подробно разобрали просмотр прав доступа на файлы и каталоги Linux.
Теперь приступим к их изменению в терминале.
Изменение прав доступа на файлы и каталоги в Linux в символьном режиме.
Для того, чтобы изменить права доступа, воспользуйтесь следующим шаблоном:
Вместо persons нужно использовать совокупность символов или один из:
u | user, пользователь, владелец файла или директории. |
g | group, группа файла или директории. |
o | other, все другие. |
a | all, то есть, все вместе взятые — владелец, группа и все остальные. |
Этот символ обозначает субъект, которому будут назначены, удалены или изменены права.
Вместо Operator, может быть один из следующих символов:
+ | «плюс», добавляем нужные права. |
— | «минус», удаляем нужные права. |
= | «равно», устанавливаем нужные права. |
Этот символ обозначает оператор, от которого зависит, будут ли добавлены, удалены или установлены нужные права, которые последуют за оператором.
Вместо Rights перечисляем символы прав доступа:
r | read — чтение. |
w | write — запись. |
x | eXecute — выполнение. |
Здесь идёт цепочка из трёх перечисленных символов, но в определённом порядке rwx. Но при этом, не нужно указывать тире для пропуска. Примеры: rwx, rw, wx, rx, r, w, x.
Вместо имяфайлаилиимядиректории указываем путь к файлу или директории.
Для рекурсивного изменения прав в каталоге используется параметр -R.
То есть, если нужно изменить права всех файлов и папок внутри указанной нами директории, то после chmod просто указываем параметр -R. Выглядит это следующим образом:
Важно.
Если Вы не являетесь владельцем файла или директории или у вас нет прав на изменение файла, то нужно будет использовать права суперпользователя:
Приступим к практике. Разберём примеры.
1. Убираем права для группы на изменение файла:
2. Убираем права на чтение у группы и всех остальных:
3. Добавим для группы права на чтение и изменение:
4. Изменим рекурсивно права на файлы и директории внутри нужной директории. Отменим, к примеру, все права у остальных пользователей и групп:
Вы, наверное, зачастую видели команду:
Это значит, что мы даём права на выполнение данного файла как программы всем.
Это аналогично следующим командам:
То есть, если мы хотим изменить права файл или директорию для всех, мы можем не писать кому. Просто оператор и права.
Изменение прав доступа на файлы и каталоги в абсолютном режиме.
Есть более простой способ изменение прав доступа на файлы и каталоги в Linux. Это изменение прав доступа в числовом представлении.
Думаю, что многие из вас видели на форумах или сайтах о Linux советы по изменению прав, вида:
Вы их выполняли в терминале. А многие из вас задумывались, что это за «магические цифры». Но на самом деле никакая это не магия.
Давайте разберем, что же значат эти цифры.
Итак, у нас есть комбинация прав доступа на директорию:
А теперь делим на группы:
Теперь преобразуем в двоичном виде наши права доступа:
- если есть символ, то это 1.
- если тире (пропуск), то это 0.
Следовательно, наша комбинация будет выглядеть следующим образом:
А теперь переведем из двоичной в восьмеричную систему исчисления:
Вот и получили наше «магическое» число 775.
Более проще запомнить:
r | это 4 |
w | это 2 |
x | это 1 |
Каждая цифра обозначает определенную группу:
- Первая цифра — права для владельца,
- вторая цифра — права для группы,
- третья цифра — права для остальных.
Просто прибавляем цифры. К примеру, нам нужно чтение r и изменение w. Прибавляем 4+2, получаем 6.
Если хотим выдать полные права только владельцу файла, а остальным убрать все:
Вот так меняются права в абсолютном (числовом) режиме.
Изменение владельца и группы файла или каталога.
Для изменения владельца и группы файла или каталога есть команда chown.
Используется следующий шаблон выполнения данной команды chown:
Если хотим изменить только группу, то шаблон следующий:
Если хотим изменить только владельца, то шаблон следующий:
В принципе, ничего сложного.
Чтобы узнать имя текущего пользователя, используется команда:
Чтобы узнать в каких группах состоит текущий пользователь:
Получить список пользователей:
Получить группы конкретного пользователя (вместо user_name ввести имя пользователя):
Давайте сменим владельца у файла на root:
Вот таким образом меняются владельцы и группы.
Источник