команда chown в linux

Команда chown в linux

Команда chown позволяет использовать соответствующую утилиту для изменения владельца файла или директории.

В Linux и других UNIX-подобных операционных системах каждый пользователь имеет свои собственные файлы, причем он может регламентировать возможность доступа других пользователей к ним. Применение концепции владения файлами имеет ряд последствий, причем в некоторых случаях бывает полезно изменять владельца некоторых файлов.

Изменение владельца файла может привести к получению возможности изменения его прав доступа, а также ограничению доступа к нему другого пользователя. По этой причине обычным пользователям запрещено изменять владельцев файлов, не принадлежащих им, и только суперпользователь (root) может изменять владельцев любых файлов.

Базовый синтаксис команды выглядит следующим образом:

Примеры использования

Смена владельца файла

Например, если вы хотите предоставить пользователю с именем john возможность распоряжаться файлом picture.jpg по своему усмотрению, вы можете воспользоваться следующей командой:

$ chown john picture.jpg

Помимо изменения владельца файла, может изменяться группа его владельцев или его владелец и группа его владельцев одновременно. Следует использовать символ двоеточия для разделения имени пользователя и имени группы пользователей (без символа пробела):

$ chown john:family picture.jpg

В результате владельцем файла picture.jpg станет пользователь с именем john, а группой его владельцев — family.

Рекурсивная смена владельцев файлов

Если вы хотите изменить владельцев файлов из любого фрагмента дерева директорий, вы можете воспользоваться параметром -R. Например, если вам нужно изменить владельцев файлов дерева поддиректорий текущей директории на root, вы можете использовать следующую команду:

Вам наверняка захотелось использовать шаблон «*» для ссылки на все файлы. Однако, в этом случае не будет изменен владелец скрытых файлов (имена которых начинаются с символа точки). Также вы можете предположить, что следовало бы использовать шаблон «.*», однако, он будет соответствовать также директории с именем «..», в результате чего будет изменен владелец всех файлов также и в родительской директории! Следует помнить о том, что при использовании параметра -R утилите должно передаваться имя директории, а не имена отдельных файлов.

Источник

Джентльменский набор команд Linux Часть 1

команда chown в linux

Закон Парето применим ко многим сферам, в том числе и к работе с терминалом Linux, ведь всего нескольких десятков команд позволит легко справляться с большинством задач. Мы выбрали 40 наиболее полезных команд, использование которых способно сильно облегчить жизнь при работе с Linux. Статья не претендует на статус истины в последней инстанции или максимально подробного руководства, а очередность команд обусловлена лишь алфавитным порядком.

Джентльменский набор команд Linux Часть 1:

1. alias

Команда alias создает «ярлык» другой команды или последовательности команд Linux.

Синтаксис команды alias:

alias позволяет:

Исправлять частые опечатки.

Довольно распространенная ситуация, когда вместо команды ls вводится sl. В результате пользователь получает сообщение об ошибке:

С помощью команды alias можно исправить данную проблему:

Использования команды alias для последовательности команд:

Стоит отметить, что команда alias по умолчанию работает лишь для текущей сессии командной строки. Т.е. если разлогиниться или открыть другой терминал, то созданные алиасы перестанут работать. Чтобы сделать их постоянными необходимо включить их в свой локальный файл домашней директории

/.bashrc (в случае использования bash в качестве командной оболочки).

2. cat

Команда cat выводит содержание файлов в окне терминала.

cat позволяет:

Синтаксис команды cat:

Чтобы склеить несколько файлов с помощью команды cat нужно просто указать названия файлов в аргументах, а результаты записать в новый файл. Например:

Основные опции cat:

cd изменяет текущий каталог, переводя в другое место файловой системы.

Синтаксис команды cd:

Чтобы перейти в подкаталог домашней папки нужно просто указать после команды название директории (img для примера):

Если нужно попасть в другой каталог нужно указать путь:

Чтобы быстро попасть в домашний каталог нужно указать вместо имени

Вернуться в предыдущую папку:

Перейти в родительский каталог:

Перемещение в родительский каталог текущего родительского каталога

4. chmod

Команда chmod устанавливает права доступа к файлу или каталогу.

chmod позволяет:

Синтаксис команды chmod:

Если вывести список папок и файлов командой ls с параметром –l, то можно увидеть нечто подобное:

Первый символ означает:

Остальная часть строки в 9 символов разбивается на три группы по 3 символа в каждой:

Если какой-то из символов отсутствует и вместо него указан «-», тогда нет доступа к данному действию.

Также задать права доступа можно с помощью цифр:

Например, у файла «ex.txt» указаны все права:

Нужно изменить их на:

Тогда вводим следующую команду:

5. chown

Команда chown (change owner) позволяет менять владельца и группу владельца:

Синтаксис команды chown:

Если в поле пользователя указать группу через двоеточие (пользователь: группа), тогда изменится еще и группа.

Основные опции команды chown:

Изменить владельца папки ex1 на user:

Изменить на владельца user и группу users:

6. curl

Утилита curl извлекает информацию и файлы с url-страниц.

Будет полезна тем, кто часто загружает:

С помощью команды curl это можно делать не через браузер, а прямо из терминала, что дает возможность автоматизировать процесс.

На самом деле curl является не просто утилитой, а целым набором библиотек, способными реализовать все основные возможности по работе c передачей файлов и url-страницами.

Curl поддерживает работу с протоколами:

Синтаксис утилиты:

Загрузка файлов с помощью curl

Самая распространенная задача для утилиты curl – это загрузка файлов. Чтобы скачать файл достаточно передать утилите имя файла или адрес страницы, например:

Таким образом содержимое файла будет отправлено на стандартный вывод. Для записи его в файл (для примера ex.txt) нужно ввести:

Стоит отметить, что не во всех дистрибутивах Linux утилита предустановлена по умолчанию.

Команда df позволяет выводить:

Синтаксис команды df:

Основные опции df:

Например, необходимо получить информацию в читаемом виде для раздела /dev/sdb7, тогда вводим:

Чтобы игнорировать псевдо-файловые системы squashfs, создаваемые при установке приложения с помощью команды snap, вводим:

Лучший способ освоить новые команды – больше практиковаться, а лучше всего это делать на серверах компании AlexHost, где:

Источник

Команда chown в linux

В данной статье подробно рассмотрим права доступа к каталогам и файлам в Linux. А также расскажу о том, как можно изменить права и владельца на файлы и директории в Linux.

Первое, что я хотел бы рассмотреть, это каким образом можно просмотреть права доступа на файлы и каталоги.

Просмотр прав доступа на файлы и каталоги в Linux.

Прежде, чем двигаться далее, советую прочитать первую статью (если Вы этого не сделали, конечно) данного цикла про навигацию в терминале.

Для статьи я создал несколько файлов и каталогов в домашней папке.

Для того, чтобы просмотреть права доступа на файлы и каталоги в нужной директории, переходим в неё и выполняем команду:

У нас будет выведено следующее сообщение в терминале:

Как видно, для наших файлов и каталогов вывелась подробная информация.

Слева отображены права доступа на файл и директорию вида:

Чуть ниже подробно разберём это «непонятную» надпись, а пока двигаемся дальше.

Для того, чтобы просмотреть права доступа на определенный файл, нужно ввести следующую команду:

Вот как это выглядит:

Для того, чтобы просмотреть права доступа на определенный каталог, вводим следующую команду:

Выглядит это следующим образом:

Для того, чтобы просмотреть права доступа на директории и файлы рекурсивно внутри каталога, нужно ввести следующую команду, перейдя в нужный каталог:

либо ввести каталог:

Выглядит это следующим образом:

Расшифровка «символьной формы» прав доступа на каталоги и файлы в Linux.

После выполнения команд из первого пункта у нас выдавалось сообщение вида:

Будем использовать в качестве примера в этом пункте.

Это символьная форма прав доступа в Linux. Давайте разберем её подробно.

Данное сообщение состоит из 10 символов.

Первый символ обозначает тип данных.

Данный символ может быть следующим:

В большинстве случаев это будет:

обычный файл;
dдиректория/каталог/папка (directory);
lсимволическая ссылка (link).

Но может быть следующим:

bфайл блочного устройства (block);
cфайл символьного устройства;
sдоменное гнездо (socket);
pименованный канал (pipe).

Следовательно, в нашем случае это директория (каталог, папка).

Следующие 9 символов обозначают права доступа.

Данные 9 символов состоят из трех групп:

У этих трёх групп одинаковая комбинация символов, то есть:

Что же они обозначают?

Очень легко запомнить:

rread, то есть, право доступа на чтение файла или директории.
wwrite, то есть, право на изменение и удаление файла или директории.
xeXecute, то есть, право на запуск файла как программы или вход в директорию.

Всегда располагаются в таком порядке:

Если вместо какого-то символа идёт тире (минус), к примеру:

то это значит, что отсутствуют права на изменение и удаление файла или директории.

то это обозначает, что отсутствуют права на изменение и запуск файла или директории. Доступен только просмотр.

Таким образом, из нашего примера:

Как видите, ничего сложного нет.

Определение владельца и группы файла или директории.

Но у Вас может возникнуть закономерный вопрос о том, а как же узнать, кто именно является владельцем файла и какая группа?

Те же самые команды из первого пункта:

Как видно на скриншоте:

Следовательно, если пользователь не владелец файла, но входит в группу, то у него будут права на файл или директорию этой самой группы.

В Nautilus (файловом менеджере Ubuntu), можно нажать правой кнопкой мыши на файле, открыть свойства, перейти на вкладку «Права» и увидеть:

Здесь в графическом режиме видны права доступа, владелец и группа. И если Вы являетесь владельцем файла или директории, то Вы можете изменять права доступа.

Подробно разобрали просмотр прав доступа на файлы и каталоги Linux.

Теперь приступим к их изменению в терминале.

Изменение прав доступа на файлы и каталоги в Linux в символьном режиме.

Для того, чтобы изменить права доступа, воспользуйтесь следующим шаблоном:

Вместо persons нужно использовать совокупность символов или один из:

Этот символ обозначает субъект, которому будут назначены, удалены или изменены права.

Вместо Operator, может быть один из следующих символов:

+«плюс», добавляем нужные права.
«минус», удаляем нужные права.
=«равно», устанавливаем нужные права.

Этот символ обозначает оператор, от которого зависит, будут ли добавлены, удалены или установлены нужные права, которые последуют за оператором.

Вместо Rights перечисляем символы прав доступа:

Здесь идёт цепочка из трёх перечисленных символов, но в определённом порядке rwx. Но при этом, не нужно указывать тире для пропуска. Примеры: rwx, rw, wx, rx, r, w, x.

Вместо имяфайлаилиимядиректории указываем путь к файлу или директории.

То есть, если нужно изменить права всех файлов и папок внутри указанной нами директории, то после chmod просто указываем параметр -R. Выглядит это следующим образом:

Важно.

Если Вы не являетесь владельцем файла или директории или у вас нет прав на изменение файла, то нужно будет использовать права суперпользователя:

Приступим к практике. Разберём примеры.

1. Убираем права для группы на изменение файла:

2. Убираем права на чтение у группы и всех остальных:

3. Добавим для группы права на чтение и изменение:

4. Изменим рекурсивно права на файлы и директории внутри нужной директории. Отменим, к примеру, все права у остальных пользователей и групп:

Вы, наверное, зачастую видели команду:

Это значит, что мы даём права на выполнение данного файла как программы всем.

Это аналогично следующим командам:

То есть, если мы хотим изменить права файл или директорию для всех, мы можем не писать кому. Просто оператор и права.

Изменение прав доступа на файлы и каталоги в абсолютном режиме.

Есть более простой способ изменение прав доступа на файлы и каталоги в Linux. Это изменение прав доступа в числовом представлении.

Думаю, что многие из вас видели на форумах или сайтах о Linux советы по изменению прав, вида:

Вы их выполняли в терминале. А многие из вас задумывались, что это за «магические цифры». Но на самом деле никакая это не магия.

Давайте разберем, что же значат эти цифры.

Итак, у нас есть комбинация прав доступа на директорию:

А теперь делим на группы:

Теперь преобразуем в двоичном виде наши права доступа:

Следовательно, наша комбинация будет выглядеть следующим образом:

А теперь переведем из двоичной в восьмеричную систему исчисления:

Вот и получили наше «магическое» число 775.

Более проще запомнить:

rэто 4
wэто 2
xэто 1

Каждая цифра обозначает определенную группу:

Просто прибавляем цифры. К примеру, нам нужно чтение r и изменение w. Прибавляем 4+2, получаем 6.

Если хотим выдать полные права только владельцу файла, а остальным убрать все:

Вот так меняются права в абсолютном (числовом) режиме.

Изменение владельца и группы файла или каталога.

Для изменения владельца и группы файла или каталога есть команда chown.

Используется следующий шаблон выполнения данной команды chown:

Если хотим изменить только группу, то шаблон следующий:

Если хотим изменить только владельца, то шаблон следующий:

В принципе, ничего сложного.

Чтобы узнать имя текущего пользователя, используется команда:

Чтобы узнать в каких группах состоит текущий пользователь:

Получить список пользователей:

Получить группы конкретного пользователя (вместо user_name ввести имя пользователя):

Давайте сменим владельца у файла на root:

Вот таким образом меняются владельцы и группы.

Источник

Как пользоваться командой chown для смены владельца и группы файла в Linux

Права доступа к файлам и директориям в Linux

В Linux очень продуманная и детальная система прав доступа к файлу. Каждый файл является собственностью одного владельца, а также группы. В группу может входить множество пользователей. В Linux для файлов различают следующие три права доступа:

Эти три свойства можно настроить отдельно для:

То есть к примеру для владельца файла можно установить право чтения, записи и выполнения файла; для этого же файла для группы можно установить только право чтения; а для всех остальных можно установить полный запрет доступа.

Итак, имеют значения не только права доступа к файлу, но также и его владелец и группа.

Права доступа в Linux не меняются автоматически. Это означает, что если вы скопировали из директории /root файл, принадлежащий пользователю root в папку другого пользователя, то это не означает, что файл меняет владельца и/или пользователь получает права записи в этот файл если ранее у него таких прав не было.

Каждый пользователь может быть в одной или более группах.

Команда chown

Команда chown используется для изменения владельца и группы владельцев файла или директории. Для использования этой команды требуются привилегии суперпользователя. Синтаксис chown выглядит примерно так:

chown может поменять владельца файла, либо группа владельцев, либо оба этих значения.

АргументРезультат
bobМеняет владельца файла с текущего на пользователя bob.
bob:usersМеняет владельца файла с текущего владельца на пользователя bob и меняет группу владельцев на группу users.
:adminsМеняет группу владельцев на группу admins. Владелец файла не меняется.
bob:Меняет владельца файла с текущего на владельца с именем пользователя bob и меняет группу владельцев на группу, с которой совершил вход пользователь bob — обычно это основная группа пользователя.

Предположим, у нас есть два пользователя: root который имеет доступ к привилегиям суперпользователя и mial, у которого их нет. Пользователь root хочет скопировать файл из его домашней директории в домашнюю директорию пользователя mial. Поскольку пользователь root хочет, чтобы mial был способен отредактировать этот файл, root меняет владельца скопированного файла с root на mial:

команда chown в linux

Здесь мы видим, что пользователь root копирует файл из своей домашней директории в директорию пользователя mial. Затем root меняет владельца файла с root (результат использования sudo) на mial. Использование двоеточия без указания имени группы также меняет группу владельцев на основную группу пользователя mial.

Как поменять владельца только для файлов, с определённым владельцем или группой владельцев

Возможно ситуация, когда в директорию, где уже находились файлы, скопировали несколько файлов и нужно изменить владельца и/или группу только для этих файлов, а остальные файлы оставить нетронутыми. В этом случае для фильтрации применяется опция —from=ТЕКУЩИЙ_ВЛАДЕЛЕЦ:ТЕКУЩАЯ_ГРУППА. Эта опция изменяет владельца и/или группу каждого файла только если текущий владелец и/или группа совпадают с указанными. Как группа, так и владелец могут быть опущены; в этом случае совпадение для данного атрибута не обязательно.

Как копировать значения владельцев и группы владельцев

Если вам нужно скопировать значения владельцев и группы владельцев одного файла на другой файл, то используйте опция —reference=ФАЙЛ_ОБРАЗЕЦ. В этом случае вместо указанных значений ВЛАДЕЛЕЦ:ГРУППА будут использоваться владелец и группа ФАЙЛА_ОБРАЗЦА.

Как рекурсивно поменять владельца и группу файлов

Для рекурсивного изменения владельца и/или группы владельцев используйте опцию -R.

если аргумент командной строки является символьной ссылкой на каталог, перейти по ней

переходить по любой встреченной символьной ссылке на каталог

не переходить по символьным ссылкам (по умолчанию)

Программа chgrp для смены группы владельцев

В более старых версиях Unix команда chown изменяла только владельца файла, а не группы. Для этого была использована отдельная команда, chgrp. Это работает почти так же, как chown, за исключением того, что у неё меньше опций.

Источник

Команда Chown в Linux (владение файлом)

Команда chown позволяет вам изменить пользователя и / или группу, владеющую данным файлом, каталогом или символической ссылкой.

В Linux все файлы связаны с владельцем и группой и им назначаются права доступа для владельца файла, членов группы и других.

В этом руководстве мы покажем вам, как использовать команду chown на практических примерах.

Как использовать chown

Выражения команды chown имеют следующую форму:

По умолчанию в случае успеха chown не производит никакого вывода и возвращает ноль.

Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом, и только в группе, членом которой они являются. Пользователи с правами администратора могут изменять групповое владение всеми файлами.

Как изменить владельца файла

Чтобы изменить владельца файла, используйте команду chown за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:

Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :

Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1 и каталога dir1 на нового владельца с именем linuxize :

Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2 новому владельцу с UID 1000 :

Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с + :

Как изменить владельца и группу файла

Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и сгруппирует users :

Если опустить имя группы после двоеточия ( : ) группа файла изменяется на указанного пользователя группы входа в систему :

Как изменить группу файла

Следующая команда изменит группу владельцев файла с именем file1 на www-data :

Как изменить право собственности на символические ссылки

Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать символическую ссылку1: разрешение отклонено».

Как рекурсивно изменить право собственности на файл

В следующем примере будет изменено владение всеми файлами и подкаталогами в каталоге /var/www новому владельцу и группе с именем www-data :

Использование справочного файла

Например, следующая команда назначит пользователю и группе владение file1 для file2

Выводы

chown — это утилита командной строки Linux / UNIX для изменения владельца файла и / или группы.

Чтобы узнать больше о команде chown посетите страницу руководства chown или введите man chown в своем терминале.

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *