Chown linux не работает
Команда chown позволяет вам изменить пользователя и / или группу, владеющую данным файлом, каталогом или символической ссылкой.
В Linux все файлы связаны с владельцем и группой и им назначаются права доступа для владельца файла, членов группы и других.
В этом руководстве мы покажем вам, как использовать команду chown на практических примерах.
Как использовать chown
Прежде чем перейти к использованию команды chown , давайте начнем с обзора основного синтаксиса.
Выражения команды chown имеют следующую форму:
По умолчанию в случае успеха chown не производит никакого вывода и возвращает ноль.
Используйте команду ls -l чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом, и только в группе, членом которой они являются. Пользователи с правами администратора могут изменять групповое владение всеми файлами.
Как изменить владельца файла
Чтобы изменить владельца файла, используйте команду chown за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1 и каталога dir1 на нового владельца с именем linuxize :
Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2 новому владельцу с UID 1000 :
Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с + :
Как изменить владельца и группу файла
Для того, чтобы изменить владельца и группу с использованием файловом chown команды следуют новым владельцем и группой , разделенных двоеточием ( : ) без пробелов и целевого файла.
Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и сгруппирует users :
Если опустить имя группы после двоеточия ( : ) группа файла изменяется на указанного пользователя группы входа в систему :
Как изменить группу файла
Чтобы изменить только группу с использованием файловом chown команды , за которым следует двоеточие ( : ) и новое название группы (без пробела между ними) и целевого файла в качестве аргумента:
Следующая команда изменит группу владельцев файла с именем file1 на www-data :
Как изменить право собственности на символические ссылки
Когда рекурсивная опция не используется, команда chown изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символические ссылки .
Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1 которая указывает на /var/www/file1 , chown изменит владельца файла или каталога, на который указывает символическая ссылка:
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать символическую ссылку1: разрешение отклонено».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks . 1 означает включен, а 0 отключен. Мы рекомендуем не отключать защиту символических ссылок.
Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h :
Как рекурсивно изменить право собственности на файл
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( --recursive ):
В следующем примере будет изменено владение всеми файлами и подкаталогами в каталоге /var/www новому владельцу и группе с именем www-data :
Если каталог содержит символические ссылки, передайте параметр -h :
Если аргумент, переданный команде chown является символической ссылкой, указывающей на каталог, опция -H заставит команду пройти по нему. -L указывает chown по каждой символической ссылке на обнаруженный каталог. Обычно вы не должны использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.
Использование справочного файла
Параметр --reference=ref_file позволяет вам изменить права собственности пользователя и группы на данные файлы, чтобы они были такими же, как у указанного справочного файла ( ref_file ). Если справочный файл является символической ссылкой, chown будет использовать пользователя и группу целевого файла.
Например, следующая команда назначит пользователю и группе владение file1 для file2
Выводы
Чтобы узнать больше о команде chown посетите страницу руководства chown или введите man chown в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Команда chown позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.
В Linux все файлы связаны с владельцем и группой, и им назначены права доступа для владельца файла, членов группы и других.
Как пользоваться 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 :
Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса, идентификатор с помощью + :
Как изменить владельца и группу файла
Чтобы изменить владельца и группу файла, используйте chown команду, за которой следует новый владелец и группа, разделенные двоеточием ( : ) без промежуточных пробелов и целевого файла.
Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и группой users :
Если вы опустите имя группы после двоеточия ( : ), группа файла изменится на группу входа указанного пользователя:
Как изменить группу файла
Чтобы изменить только группу файла, используйте chown команду с двоеточием ( : ) и именем новой группы (без пробелов между ними) и целевой файл в качестве аргумента:
Следующая команда изменит группу-владельца файла с именем file1 на www-data :Еще одна команда, которую вы можете использовать для изменения групповой принадлежности файлов - это chgrp .
Как изменить владельца символических ссылок
Когда рекурсивный параметр не используется, chown команда изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символьные ссылки .
Например, если вы попытаетесь изменить владельца и группу символической ссылки, на symlink1 которую указывает ссылка /var/www/file1 , chown изменит владельца файла или каталога, на который указывает символическая ссылка:
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать symlink1: Permission denied».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов 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 свой терминал.
В операционных системах Linux каждый файл связан с владельцем и группой. Команда chown в Linux — это сокращение от “сменить владельца” (англ. “ Ch ange own er”). Она может использоваться суперпользователем на любых Unix-подобных системах. В этом руководстве вы узнаете, чем полезна команда и как начать её использовать.
С помощью параметров chown можно изменить владельца файлов, каталогов и ссылок. Если обычный пользователь хочет внести определённые изменения в файл, суперпользователь может использовать команды chown, чтобы изменить владельца и разрешить доступ.
Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger! Большой выбор планов, как для учебных, так и для крупных коммерческих проектов.
Просмотр Информации о Владельце с Помощью Chown в Linux
Во-первых, вам нужно войти в свой VPS с помощью SSH. Если вам нужно вспомнить, как это сделать вот руководство.
Перед использованием команды chown нам необходимо подтвердить информацию о пользователе и группе. Вы можете получить эту информацию, используя cd и перейдя в нужный каталог.
Например, если путь к файлу — /tmp/TestUnix , перейдите туда с помощью следующей команды:
Чтобы узнать, кому принадлежат файлы, вы можете вывести их список в каталоге с помощью следующей команды:
Для этого руководства мы создали файл с именем chownSample.txt в каталоге. Вот как будет выглядеть вывод вышеуказанной команды:
Здесь первая часть -rw-r–r– представляет права доступа к файлу. Первый root представляет информацию о владельце, а второй — о группе. В приведённом выше примере chownSample.txt имеет права root, а root принадлежит корневой группе.
Команда Chown для Файлов
Основной формат команды, чтобы изменить владельца файла:
Для того же файла chownSample.txt , давайте сменим владельца с root на нового пользователя с именем whales . Пример этой команды показан ниже:
Чтобы подтвердить смену владельца, вы можете снова использовать команду ls -l. Вот, что получится в результате:
Команду можно изменить, чтобы сменить группу. Основной формат для смены владельца и группы:
Чтобы изменить право собственности на файл chownSample.txt на нового владельца с именем whales и группу aquatic, команда будет такой:
Чтобы подтвердить смену владельца и группы, используйте ls -l . Вывод этой команды:
Если нужно изменить только группу, мы можем пропустить владельца. Вот пример команды в командной строке:
Chown в Linux выполняет функции, аналогичные chgrp, когда информация о владельце не указана. Эта команда также может использоваться с несколькими параметрами.
Общая структура команды chown с параметрами ([OPTIONS]):
Команда Chown для Каталогов
Chown также можно применять для папок. Папки в свою очередь могут содержать только файлы, только папки или и то, и другое.
Допустим, у нас есть папка с именем TestUnix, мы можем использовать команду ls -l для просмотра разрешений. Пример команды в выводе:
Здесь первая часть drwxr-xr-x представляет разрешение для папки. Первый root — это информация о владельце, а второй — информация о группе. В этом примере TestUnix имеет владельца root и корневую группу.
Подобно файлам, мы можем изменить владельца и группу для папок. Пример команды для этого:
Чтобы изменить только группу:
Чтобы изменить владельца и группу файла:
Эту же команду можно использовать для нескольких файлов или папок. Формат команды:
Пример такой команды:
Команда Chown для Ссылок
Команда Chown в Linux может использоваться для символических, или программных ссылок. Символическая ссылка — это ссылка на существующий физический файл. Для создания программных ссылок используется команда ln. Для файла chownSample.txt символическая ссылка может быть создана как:
Чтобы подтвердить владельца и информацию о группе, мы можем использовать команду ls -l. Вот, что мы получим в результате:
Доступны две записи. Одна для физического файла, а другая для символической ссылки. Давайте попытаемся изменить владельца с помощью следующей команды:
Приведённая выше команда сменит владельца файла chownSample.txt . Таким образом, вывод команды ls -l будет выглядеть так:
Если мы хотим изменить владельца символической ссылки, тогда нам нужно использовать параметр -h. Пример команды:
Если мы используем команду ls -l , результат будет таким, как показано ниже, где право собственности на символическую ссылку изменено:
Рекурсивная Смена Владельца с Помощью Chown в Linux
Команда chown может применяться к папкам, однако папки могут иметь рекурсивную структуру, а у нас может возникнуть необходимость сменить владельца для всех файлов и папок.
Рекурсивное использование команды chown гарантирует, что все каталоги и подкаталоги сменят владельца или группу.
Для рекурсивной операции нам нужно использовать опцию -R. Вот пример этой команды:
Если у нас есть папка с названием TestUnix, в которой находятся несколько подкаталогов, то приведённая ниже команда изменит владельца всех папок и подкаталогов на пользователя с именем whales.
Итоги
Вот и всё, теперь вы знаете, что такое команда chown в Linux и как она работает. Стоит отметить, что системы Unix имеют справочные страницы для каждой команды. Так что, если вы захотите полностью освоить возможности chown, откройте необходимое руководство с помощью команды man chown . Надеемся, что это поможет вам управлять вашими файлами VPS безопасным и эффективным способом. Удачной разработки!
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Права доступа к файлам и директориям в 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:
Здесь мы видим, что пользователь root копирует файл из своей домашней директории в директорию пользователя mial. Затем root меняет владельца файла с root (результат использования sudo) на mial. Использование двоеточия без указания имени группы также меняет группу владельцев на основную группу пользователя mial.
Как поменять владельца только для файлов, с определённым владельцем или группой владельцев
Возможно ситуация, когда в директорию, где уже находились файлы, скопировали несколько файлов и нужно изменить владельца и/или группу только для этих файлов, а остальные файлы оставить нетронутыми. В этом случае для фильтрации применяется опция --from=ТЕКУЩИЙ_ВЛАДЕЛЕЦ:ТЕКУЩАЯ_ГРУППА. Эта опция изменяет владельца и/или группу каждого файла только если текущий владелец и/или группа совпадают с указанными. Как группа, так и владелец могут быть опущены; в этом случае совпадение для данного атрибута не обязательно.
Как копировать значения владельцев и группы владельцев
Если вам нужно скопировать значения владельцев и группы владельцев одного файла на другой файл, то используйте опция --reference=ФАЙЛ_ОБРАЗЕЦ. В этом случае вместо указанных значений ВЛАДЕЛЕЦ:ГРУППА будут использоваться владелец и группа ФАЙЛА_ОБРАЗЦА.
Как рекурсивно поменять владельца и группу файлов
Для рекурсивного изменения владельца и/или группы владельцев используйте опцию -R.
Следующие параметры влияют на способ обхода дерева каталогов при заданном параметре -R. Если указано несколько этих параметров, действует только последний.
-H
если аргумент командной строки является символьной ссылкой на каталог, перейти по ней
-L
переходить по любой встреченной символьной ссылке на каталог
-P
не переходить по символьным ссылкам (по умолчанию)
Программа chgrp для смены группы владельцев
В более старых версиях Unix команда chown изменяла только владельца файла, а не группы. Для этого была использована отдельная команда, chgrp. Это работает почти так же, как chown, за исключением того, что у неё меньше опций.
Читайте также: