Пользователь и группа www-data. Категория: Web-разработка • Разное
После установки Apache нужно установить правильные права доступа для пользователей и групп. В этом нам помогут команды chown
(изменить владельца) и chmod
(изменить права доступа). Рассмотрим эти команды, а потом установим владельца для директории /var/www
и права доступа к ней.
В Linux существует всего три вида прав — право на чтение (read
), запись (write
) и выполнение (execute
), а также три категории пользователей, к которым они могут применяться — владелец файла (user
), группа владельца (group
) и все остальные (others
).
Команда chmod
Изменяет прав доступа к файлу или директории.
chmod [опции] ВладелецГруппаДругие файл(ы)
- Опция
-R
позволяет рекурсивно изменять права доступа для каталога Владелец
— права доступа в числовом виде для владельцаГруппа
— права доступа в числовом виде для группыДругие
— права доступа в числовом виде для других
Команда chown
Изменяет владельца и/или группу файла или директории.
chown [опции] владелец[:группа] файл(ы)
Опция -R
— позволяет рекурсивно изменять владельца каталога.
Исходные данные
После установки web-сервера
- Apache запущен под пользователем и группой
www-data
- Директории виртуальных хостов расположены в
/var/www
Нам нужно обеспечить минимальные права для web-сервера (чтение директорий и файлов), чтобы он мог работать. И предоставить необходимые права на создание, редактирование и удаление файлов и директорий разработчику.
Создадим пользователя developer
и назначим ему основную группу www-data
:
$ sudo useradd -m -s /bin/bash -g www-data developer
Зададим пароль для нового пользователя:
$ sudo passwd developer Введите новый пароль UNIX: Повторите ввод нового пароля UNIX: passwd: пароль успешно обновлён
Изменяем владельца
Устанавливаем владельца и группу для всех директорий /var/www
:
$ sudo find /var/www -type d -exec chown developer:www-data {} \; -print /var/www /var/www/html /var/www/host1.loc /var/www/host2.loc
Устанавливаем владельца и группу для всех файлов /var/www
:
$ sudo find /var/www -type f -exec chown developer:www-data {} \; -print /var/www/html/index.html /var/www/host1.loc/index.php /var/www/host2.loc/index.php
Здесь можно обойтись одной командой (но с двумя нагляднее):
$ sudo chown -R developer:www-data /var/www
Устанавливаем права
Устанавливаем права для всех директорий /var/www
:
$ sudo find /var/www -type d -exec chmod 755 {} \; -print /var/www /var/www/html /var/www/host1.loc /var/www/host2.loc
Теперь ситуация такая:
- Пользователь
developer
(разработчик) имеет право на чтение и запись директорий, потому что является их владельцем - Пользователь
www-data
(web-сервер) имеет право на чтение директорий, потому что принадлежит к группеwww-data
Устанавливаем права для всех файлов /var/www
:
$ sudo find /var/www -type f -exec chmod 644 {} \; -print /var/www/html/index.html /var/www/host1.loc/index.php /var/www/host2.loc/index.php
Теперь ситуация такая:
- Пользователь
developer
(разработчик) имеет право на чтение и запись файлов, потому что является их владельцем - Пользователь
www-data
(web-сервер) имеет право на чтение файлов, потому что принадлежит к группеwww-data
Для наглядности посмотрим на права всех файлов и директорий:
$ cd /var/www $ ls -laR .: итого 20 drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 . drwxr-xr-x 15 root root 4096 ноя 11 09:32 .. drwxr-xr-x 2 developer www-data 4096 ноя 11 09:32 html drwxr-xr-x 3 developer www-data 4096 дек 4 17:50 host1.loc drwxr-xr-x 2 developer www-data 4096 ноя 15 14:56 host2.loc ./html: итого 20 drwxr-xr-x 2 developer www-data 4096 ноя 11 09:32 . drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 .. -rw-r--r-- 1 developer www-data 10918 ноя 11 09:32 index.html ./host1.loc: итого 16 drwxr-xr-x 3 developer www-data 4096 дек 4 17:50 . drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 .. -rw-r--r-- 1 developer www-data 78 дек 4 17:34 index.php ./host2.loc: итого 12 drwxr-xr-x 2 developer www-data 4096 ноя 15 14:56 . drwxr-xr-x 5 developer www-data 4096 ноя 15 14:54 .. -rw-r--r-- 1 developer www-data 46 ноя 15 14:56 index.php
Поиск: Apache • Linux • Nginx • Web-разработка • Владелец • Команда • Права доступа • Пользователь • www-data • Настройка • Группа • group • Файл • Директория
Команда Chown в Linux
Команда chown
позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.
В Linux все файлы связаны с владельцем и группой, и им назначены права доступа для владельца файла, членов группы и других.
Как пользоваться
chown
Прежде чем перейти к использованию chown
команды, давайте начнем с обзора основного синтаксиса.
В chown
выражении команды принимает следующий вид:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER
является именем пользователя или идентификатором пользователя (UID) нового владельца. GROUP
это имя новой группы или идентификатор группы (GID). FILE(s)
это имя одного или нескольких файлов, каталогов или ссылок. Числовые идентификаторы должны начинаться с +
символа.
USER
USER:
— Когда за именем пользователя следует двоеточие:
, а имя группы не указывается, пользователь становится владельцем файлов, а принадлежность группы файлов изменяется на группу входа пользователя.USER:GROUP
— Если указаны и пользователь, и группа (без пробелов между ними), пользовательское владение файлами изменяется на данного пользователя, а групповое владение изменяется на данную группу.:GROUP
— Если пользователь не указан, а перед группой стоит двоеточие:
, то только группа, владеющая файлами, будет изменена на данную группу.:
Если задано только двоеточие:
, без указания пользователя и группы, никаких изменений не производится.
По умолчанию в случае успеха chown
не выводит никаких данных и возвращает ноль.
Используйте ls -l
команду, чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |[-][-][-]- [------] [---] | | | +-----------> Group +-------------------> Owner
Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом и только в группе, членом которой они являются. Административные пользователи могут изменять групповое владение всеми файлами.
Как сменить владельца файла
Чтобы изменить владельца файла, используйте chown
команду, за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
chown USER FILE
Например, следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
:
chown linuxize file1
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка через пробел. Команда ниже меняет владельца файла с именем file1
и каталогом dir1
на нового владельца с именем linuxize
:
chown linuxize file1 dir1
Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем
на нового владельца с UID 1000
:
chown 1000 file2
Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса, идентификатор с помощью +
:
chown 1000 file2
Как изменить владельца и группу файла
Чтобы изменить владельца и группу файла, используйте chown
команду, за которой следует новый владелец и группа, разделенные двоеточием ( :
) без промежуточных пробелов и целевого файла.
chown USER:GROUP FILE
Следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
и группой users
:
chown linuxize:users file1
Если вы опустите имя группы после двоеточия ( :
), группа файла изменится на группу входа указанного пользователя:
chown linuxize: file1
Как изменить группу файла
Чтобы изменить только группу файла, используйте chown
команду с двоеточием ( :
) и именем новой группы (без пробелов между ними) и целевой файл в качестве аргумента:
chown :GROUP FILE
Следующая команда изменит группу-владельца файла с именем file1
на www-data
:
chown :www-data file1
Еще одна команда, которую вы можете использовать для изменения групповой принадлежности файлов — это chgrp
.
Когда рекурсивный параметр не используется, chown
команда изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символьные ссылки .
Например, если вы попытаетесь изменить владельца и группу символической ссылки, на symlink1
которую указывает ссылка /var/www/file1
, chown
изменит владельца файла или каталога, на который указывает символическая ссылка:
chown www-data: symlink1
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать symlink1: Permission denied».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Эта опция указана в /proc/sys/fs/protected_symlinks
. 1
значит включен и 0
отключен. Мы рекомендуем не отключать защиту символических ссылок.
Чтобы изменить групповое владение самой символической ссылкой, используйте -h
параметр:
chown -h www-data symlink1
Как рекурсивно изменить владельца файла
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R
( --recursive
):
chown -R USER:GROUP DIRECTORY
Следующий пример изменит владельца всех файлов и подкаталогов в /var/www
каталоге на нового владельца и группу с именем www-data
:
chown -R www-data: /var/www
Если каталог содержит символические ссылки, передайте -h
опцию:
chown -hR www-data: /var/www
Другими параметрами, которые можно использовать при рекурсивном изменении владельца каталога, являются -H
и -L
.
Если аргумент, переданный chown
команде, является символической ссылкой, указывающей на каталог, эта -H
опция заставит команду пройти по ней. -L
указывает chown
на прохождение каждой символической ссылки в каталог, который встречается. Обычно вы не должны использовать эти параметры, потому что вы можете испортить вашу систему или создать угрозу безопасности.
Использование справочного файла
--reference=ref_file
Опция позволяет изменить пользователя и группы владельца указанные файлы , чтобы быть такими же , как в указанном отпечатком ( ref_file
). Если ссылочный файл является символической ссылкой, chown
будут использоваться пользователь и группа целевого файла.
chown --reference=REF_FILE FILE
Например, следующая команда назначит пользователя и владельца группы file1
для file2
chown --reference=file1 file2
Вывод
chown
утилита командной строки Linux / UNIX для изменения владельца файла и / или группы
Чтобы узнать больше о chown
команде, посетите страницу руководства chown или введите man chown
свой терминал.
Команда chown в linux (владение файлом)
Команда chown
позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.
В Linux все файлы связаны с владельцем и группой и назначены с правами доступа для владельца файла, членов группы и других.
В этом уроке мы покажем вам, как использовать команду chown
на практических примерах.
Как использовать
chown
Прежде чем перейти к использованию команды chown
, давайте начнем с обзора основного синтаксиса.
Выражения команды chown
принимают следующую форму:
chown USER FILE(s)
USER
— это имя пользователя или идентификатор пользователя (UID) нового владельца. GROUP
— это имя новой группы или идентификатор группы (GID). FILE(s)
— это имя одного или нескольких файлов, каталогов или ссылок. Числовые идентификаторы должны начинаться с символа +
.
-
USER
— если указан только пользователь, указанный пользователь станет владельцем данных файлов, владение группой не изменится.USER:
— Когда за именем пользователя следует двоеточие:
а имя группы не указывается, пользователь становится владельцем файлов, а принадлежность группы файлов изменяется на группу входа пользователя.USER:GROUP
— Если указан и пользователь, и группа (без пробелов между ними), пользовательское владение файлами изменяется на данного пользователя, а групповое владение изменяется на данную группу.:GROUP
— Если пользователь не указан, а перед группой стоит двоеточие:
только группа, владеющая файлами, изменяется на данную группу.:
Если задано только двоеточие:
без указания пользователя и группы, никаких изменений не производится.
По умолчанию в случае успеха chown
не выдает никаких результатов и возвращает ноль.
Используйте команду ls -l
чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |- | | | +-----------> Group +-------------------> Owner
Только пользователь root или пользователь с правами sudo
может изменить групповое владение файлом.
Как изменить владельца файла
Чтобы изменить владельца файла, используйте команду chown
а затем имя пользователя нового владельца и целевой файл в качестве аргумента:
chown USER FILE
Например, следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
:
chown linuxize file1
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка через пробел. Команда ниже меняет владельца файла с именем file1
и каталогом dir1
на нового владельца с именем linuxize
:
chown linuxize file1 dir1
Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2
на нового владельца с UID 1000
:
chown 1000 file2
Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса ID с +
:
chown 1000 file2
Как изменить владельца и группу файла
Чтобы изменить владельца и группу файла, используйте команду chown
за которой следует новый владелец и группа, разделенные двоеточием (:) без пробелов и целевого файла.
chown USER:GROUP FILE
Следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
и группы users
:
chown linuxize:users file1
Если вы опустите имя группы после двоеточия (:), группа файла изменится на группу входа указанного пользователя:
chown linuxize: file1
Как изменить группу файла
Чтобы изменить только группу файла, используйте команду chown
с двоеточием (:) и именем новой группы (без пробела между ними) и целевой файл в качестве аргумента:
chown:GROUP FILE
Следующая команда изменит группу-владельца файла с именем file1
на www-data
:
chown:www-data file1
Другая команда, которую вы можете использовать для изменения владельца группы, — это chgrp
.
Как изменить владельца символических ссылок
Когда рекурсивная опция не используется, команда chown
изменяет групповое владение файлами, на которые указывают символические ссылки, а не сами символьные ссылки.
Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1
которая указывает на /var/www/file1
, chown
изменит владельца файла или каталога, на который указывает символическая ссылка:
chown www-data: symlink1
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать symlink1: Permission denied».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Эта опция указана в /proc/sys/fs/protected_symlinks
. 1
означает, что включен, а 0
отключен. Мы рекомендуем не отключать защиту символических ссылок.
Чтобы изменить владельца группы самой символической ссылки, используйте параметр -h
:
chown -h www-data symlink1
Как рекурсивно изменить владельца файла
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R
( --recursive
):
chown -R USER:GROUP DIRECTORY
Следующий пример изменит владельца всех файлов и подкаталогов в каталоге /var/www
на нового владельца и группу с именем www-data
:
chown -R www-data: /var/www
Если каталог содержит символические ссылки, передайте опцию -h
:
chown -hR www-data: /var/www
Другие варианты, которые можно использовать при рекурсивном изменении владельца каталога: -H
и -L
.
Если аргумент, переданный команде chown
является символической ссылкой, указывающей на каталог, опция -H
заставит команду пройти по ней. -L
говорит chown
проходить каждую символическую ссылку в каталог, который встречается. Обычно вы не должны использовать эти параметры, потому что вы можете испортить вашу систему или создать угрозу безопасности.
Использование справочного файла
Опция --reference=ref_file
позволяет вам изменить владельца и группу пользователей указанных файлов, чтобы они были такими же, как и у указанного справочного файла ( ref_file
). Если ссылочный файл является символической ссылкой, chown
будет использовать пользователя и группу целевого файла.
chown --reference=REF_FILE FILE
Например, следующая команда назначит пользователя и владельца группы file1
для file2
chown --reference=file1 file2
Вывод
chown
— это утилита командной строки Linux / UNIX для изменения владельца файла и / или группы.
Чтобы узнать больше о команде chown
посетите страницу руководства chown или введите man chown
в своем терминале.
чоун терминал
Команда Chown в Linux (владение файлом)
Команда chown
позволяет вам изменить пользователя и / или группу, владеющую данным файлом, каталогом или символической ссылкой.
В Linux все файлы связаны с владельцем и группой и им назначаются права доступа для владельца файла, членов группы и других.
В этом руководстве мы покажем вам, как использовать команду chown
на практических примерах.
Содержание
Как использовать
chown
Прежде чем перейти к использованию команды chown
, давайте начнем с обзора основного синтаксиса.
Выражения команды chown
имеют следующую форму:
chown [OPTIONS] USER[:GROUP] FILE(s)
USER
— это имя пользователя или идентификатор пользователя (UID) нового владельца. GROUP
— это имя новой группы или идентификатор группы (GID). FILE(s)
— это имя одного или нескольких файлов, каталогов или ссылок. Цифровые идентификаторы должны начинаться с символа +
.
USER
— Если указан только пользователь, указанный пользователь станет владельцем данных файлов, принадлежность группы не изменится.-
USER:
— Если после имени пользователя ставится двоеточие:
и имя группы не указано, пользователь становится владельцем файлов, а права собственности группы файлов изменяются на группу входа пользователя. -
USER:GROUP
— Если указаны и пользователь, и группа (без пробелов между ними), право собственности пользователя на файлы изменяется на данного пользователя, а право собственности на группу изменяется на данную группу. -
:GROUP
— Если пользователь не указан, а группа имеет префикс двоеточия:
то для данной группы изменяется только групповое владение файлами. -
:
Если указано только двоеточие:
без указания пользователя и группы, никаких изменений не производится.
По умолчанию в случае успеха chown
не производит никакого вывода и возвращает ноль.
Используйте команду ls -l
чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
ls -l filename.txt
-rw-r--r-- 12 linuxize users 12.0K Apr 8 20:51 filename.txt |[-][-][-]- [------] [---] | | | +-----------> Group +-------------------> Owner
Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом, и только в группе, членом которой они являются. Пользователи с правами администратора могут изменять групповое владение всеми файлами.
Как изменить владельца файла
Чтобы изменить владельца файла, используйте команду chown
за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
chown USER FILE
Например, следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
:
chown linuxize file1
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1
и каталога dir1
на нового владельца с именем linuxize
:
chown linuxize file1 dir1
Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2
новому владельцу с UID 1000
:
chown 1000 file2
Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с +
:
chown 1000 file2
Как изменить владельца и группу файла
Для того, чтобы изменить владельца и группу с использованием файловом chown
команды следуют новым владельцем и группой , разделенных двоеточием ( :
) без пробелов и целевого файла.
chown USER:GROUP FILE
Следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
и сгруппирует users
:
chown linuxize:users file1
Если опустить имя группы после двоеточия ( :
) группа файла изменяется на указанного пользователя группы входа в систему :
chown linuxize: file1
Как изменить группу файла
Чтобы изменить только группу с использованием файловом chown
команды , за которым следует двоеточие ( :
) и новое название группы (без пробела между ними) и целевого файла в качестве аргумента:
chown :GROUP FILE
Следующая команда изменит группу владельцев файла с именем file1
на www-data
:
chown :www-data file1
Еще одна команда, которую вы можете использовать для изменения группового владения файлами, — это chgrp
.
Как изменить право собственности на символические ссылки
Когда рекурсивная опция не используется, команда chown
изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символические ссылки .
Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1
которая указывает на /var/www/file1
, chown
изменит владельца файла или каталога, на который указывает символическая ссылка:
chown www-data: symlink1
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать символическую ссылку1: разрешение отклонено».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Этот параметр указан в /proc/sys/fs/protected_symlinks
. 1
означает включен, а 0
отключен. Мы рекомендуем не отключать защиту символических ссылок.
Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h
:
chown -h www-data symlink1
Как рекурсивно изменить право собственности на файл
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R
( --recursive
):
chown -R USER:GROUP DIRECTORY
В следующем примере будет изменено владение всеми файлами и подкаталогами в каталоге /var/www
новому владельцу и группе с именем www-data
:
chown -R www-data: /var/www
Если каталог содержит символические ссылки, передайте параметр -h
:
chown -hR www-data: /var/www
Другие параметры, которые можно использовать при рекурсивном изменении владельца каталога, — это -H
и -L
.
Если аргумент, переданный команде chown
является символической ссылкой, указывающей на каталог, опция -H
заставит команду пройти по нему. -L
указывает chown
по каждой символической ссылке на обнаруженный каталог. Обычно вы не должны использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.
Использование справочного файла
Параметр --reference=ref_file
позволяет вам изменить права собственности пользователя и группы на данные файлы, чтобы они были такими же, как у указанного справочного файла ( ref_file
). Если справочный файл является символической ссылкой, chown
будет использовать пользователя и группу целевого файла.
chown --reference=REF_FILE FILE
Например, следующая команда назначит пользователю и группе владение file1
для file2
chown --reference=file1 file2
Выводы
chown
— это утилита командной строки Linux / UNIX для изменения владельца файла и / или группы.
Чтобы узнать больше о команде chown
посетите страницу руководства chown или введите man chown
в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
debian — Является ли хорошей идеей предоставление всех разрешений группе www-data?
спросил
Изменено 5 лет, 4 месяца назад
Просмотрено 4к раз
У меня постоянно возникают проблемы с правами на чтение, запись и выполнение от Apache/me. В группе «konrad» есть пользователь «konrad» (это я), а в группе «www-data», используемой Apache, есть пользователь «www-data». Когда я («конрад») создаю каталог, то у Apache нет прав на запись в эту папку, что вызывает проблемы.
Итак, теперь у меня есть следующая «идея»: я добавлю себя (пользователь konrad) в группу «www-data» (куда также входит пользователь Apache), а затем я разделю все свои проекты www, чтобы они принадлежат пользователю «konrad», но группе: «www-data». И я chmod проекты, чтобы у этой группы были все права доступа к файлам и каталогам (я думаю, что это будет 770).
Затем я изменю свою основную группу с «konrad» на «www-data», поэтому каждый раз, когда я буду создавать новый каталог/файл, Apache также будет иметь к нему полный доступ.
Вопрос: хорошая ли это идея? У меня нет большого опыта работы с разрешениями или даже самой Unix. Так что, возможно, я что-то упускаю. Но мне это кажется разумным.
Безопасность разрешений Debian apache-httpd
0
Apache работает как непривилегированный пользователь, известный как www-data
в дистрибутивах Debian, по очень веской причине: безопасность.
Считается хорошей практикой безопасности при работе с демонами, отказывающимися от привилегированных прав, избегая, насколько это возможно, создания файлов конфигурации или файлов данных с правом собственности на непривилегированного пользователя, который запускает демон — как таковой, если Apache пользователь скомпрометирован, злоумышленникам будет гораздо труднее возиться с чем-то или испортить сайт.
По возможности рекомендую создавать сайты с разными пользователями, и давать права на чтение только группе www-data; и иметь доступ на запись к www-данным только в тех каталогах, которые действительно в них нуждаются. Однако даже этого можно избежать, используя mod-ruid2.
mod-ruid2 позволяет на самом деле запускать каждый сайт/виртуальный хост с их владельцем, и гораздо проще разобраться с моделью безопасности страниц. Это избавляет от необходимости создавать всемирные каталоги с возможностью записи. Это также гарантирует, что в случае компрометации одного виртуального хоста злоумышленник не сможет установить вредоносное ПО на другие виртуальные хосты.
mod-ruid2 также рекомендуется для людей с моделью хостинга, и мы используем его здесь для запуска нескольких сотен сайтов с большим успехом.
К сожалению, документация по mod-ruid2 немного скудна, и мне пришлось написать более подробный пост, чтобы описать его здесь в Unix и Linux.
2
Я думаю, вы неправильно настроили apache. Мне бы очень хотелось иметь свои проекты и файлы с правами konrad
, чтобы мой код был в безопасности в случае уязвимости в какой-нибудь « CGI » script. Ваш веб-сервер должен нормально читать ваши файлы (если они доступны для чтения всем). Вам нужен суперпользователь только для настройки apache для чтения одного каталога, принадлежащего вам, или для создания/изменения владельца обслуживаемого каталога от apache
В конечном итоге вам понадобится один или два каталога, доступных для записи веб-сервером/ www-data
, но это другой вопрос
1
Я узнал, что вы всегда должны использовать отдельных пользователей для веб-сервера. Это то, что я узнал от своего учителя: из соображений безопасности вы всегда должны использовать разных пользователей для разных целей. Кстати, ich chown www-data:www-data вводится за секунды: P
Но какие файлы вы создаете как «конрад» и почему www-data имеет к ним доступ?
Я запускаю 2 веб-сервера, и когда я создаю некоторые файлы, предназначенные для www-данных, я su - www-data
, а затем создаю их.
Так что у вас очень нетипичная ситуация 😛
8
Твой ответ
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.Разрешение в контейнере докеров частично работает с chown
Задавать вопрос
спросил
Изменено 3 года, 1 месяц назад
Просмотрено 2к раз
У меня проблема с правами доступа в контейнере Docker. Я копирую папку с хоста в образ докера в папку /var/www/html
. Эта папка имеет более глубокую структуру папок. Затем я хочу, чтобы www-данные, выполняющие apache, имели доступ ко всей папке /var/www/html. Я создаю контейнер со следующим файлом dockerfile.
#начать с базового изображения из php ИЗ php:7.3-apache #установить системные зависимости и включить модули PHP RUN apt-get update && apt-get install -y \ либику-дев \ libpq-dev \ libmcrypt-dev \ mysql-клиент \ гит \ почтовый индекс \ распаковать \ && rm -r /var/lib/apt/lists/* \ && docker-php-ext-configure pdo_mysql --with-pdo-mysql=mysqlnd \ && докер-php-ext-установить \ международный \ строка \ pcntl \ pdo_mysql \ pdo_pgsql \ pgsql \ opcache # почтовый \ #мкрипт\ # настроить imap для почты RUN apt-получить обновление && \ apt-получить установку -y \ libc-client-dev libkrb5-dev && \ rm -r /var/lib/apt/lists/* ЗАПУСК docker-php-ext-configure imap --with-kerberos --with-imap-ssl && \ docker-php-ext-install -j $ (nproc) imap #установить mcrypt RUN apt-получить обновление \ && apt-get install -y libmcrypt-dev \ && rm -rf /var/lib/apt/lists/* \ && pecl установить mcrypt-1. 0.2 \ && docker-php-ext-enable mcrypt #установить композитор ЗАПУСК curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin/ --filename=composer # устанавливаем папку нашего приложения в качестве переменной окружения ENV APP_HOME /var/www/html # изменить uid и gid apache на uid/gid пользователя докера RUN usermod -u 1000 www-data && groupmod -g 1000 www-data # включить перезапись модуля apache ЗАПУСК a2enmod переписать #КОПИРОВАТЬ данные в html КОПИРОВАТЬ --chown=www-data:www-data AppBare/ /var/www/html #сменить владельца наших приложений RUN chown -R www-data:www-data /var/www/html # Скопируйте файл, чтобы начать обновление схемы при запуске ТОЧКА ВХОДА [ "sh", "-c", "/var/www/html/app/Console/обновление схемы торта -y && /var/www/html/app/Console/миграция торта && /usr/sbin/apachectl - D ПЕРЕДНИЙ ПЛАН"] ЭКСПОЗИЦИЯ 80
После создания и запуска контейнера я получаю следующее сообщение об ошибке при доступе к веб-сайту обслуживающего веб-сервера. Однако он также загружает веб-сайт с скопированными изображениями, поэтому в основном пользователь имеет доступ, например. изображения, css и так далее.
SplFileInfo::openFile(/var/www/html/app/tmp/cache/models/demo_backend_cake_model_default_backend_dockertest_list): не удалось открыть поток: разрешение отклонено
Когда я захожу в консоль контейнера и сбрасываю разрешения командой chown, проблема исчезает. Так что сама команда должна быть правильной. Также, когда я создаю том и монтирую папку с хоста на /var/www/html,
все работает нормально.
Как дать пользователю полный доступ к папке? Я также пытался переключить доступ, прежде чем копировать данные, но это тоже не работает.
докер чаун
7
О вашем последнем комментарии
Два файла создаются точкой входа кода /var/www/html/app/Console/cake schema update -y. Таким образом, это выполняется пользователем root. Можно ли выполнить это как www-данные, а не как root?
Да. Вы должны добавить следующую строку перед точкой входа:
USER www-data
Таким образом, все, что выполняется после этой строки, будет выполняться этим пользователем.
1
Твой ответ
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Опубликовать как гость
Электронная почта
Требуется, но никогда не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Установка разрешений с помощью chown и chmod
1.
ОбзорОперационная система Linux является многопользовательской операционной системой. У него есть система безопасности, которая контролирует, какие пользователи и группы имеют доступ к файлам и каталогам в системе.
В этом кратком руководстве мы рассмотрим два инструмента для предоставления пользователям доступа к файлам: chown и chmod .
Команды, используемые в этом руководстве, были протестированы в bash , но должны работать и в других оболочках, совместимых с POSIX.
2. Концепции безопасности
В Linux пользователи могут принадлежать к одной или нескольким группам. Кроме того, как пользователи, так и группы могут быть владельцами файлов и каталогов. Помимо информации о владельце, у каждого файла есть метаданные о правах доступа.
чаун и chmod — это инструменты, которые мы используем для управления правами собственности и правами доступа файлов и каталогов.
3. Право собственности и права доступа
Как упоминалось ранее, метаданные файла содержат информацию о пользователе и группе, которым принадлежит файл. Также он содержит информацию о , кому разрешено читать, писать и выполнять его .
Мы можем перечислить эту информацию, используя лс :
$ лс-л всего 20 -рв-рв-р--. 1 боб боб 16433 7 окт 18:06 document.docx
Есть две части информации, которые представляют для нас особый интерес:
боб боб
Слева направо это означает, что файл document.docx принадлежит пользователю bob , и его группа владельцев также называется bob . Это возможно, потому что по умолчанию Linux создает частную группу для каждого пользователя с именем пользователя.
Далее идет:
-rw-rw-r--
Это права доступа. Первый символ описывает тип файла. Остальные символы входят в три группы по три символа, соответственно описывающие права доступа владельца, группы-владельца и затем всех остальных.
В каждой группе первый символ предназначен для доступа на чтение ( r ), за ним следует доступ на запись ( w ) и право на выполнение ( x ). Прочерк означает, что разрешение отключено.
Таким образом, полные права для всех в системе будут выглядеть так:
-rwxrwxrwx
В Linux файлы и каталоги обрабатываются одинаково. Основное различие между правами доступа к файлам и каталогам заключается в том, что разрешение x для файла дает разрешение на его выполнение, а для каталога — разрешение на вход в него.
4. Передача права собственности с
chownФайлы могут передаваться между пользователями с чаун. Название chown является аббревиатурой от «Change Owner».
Мы можем изменить владельца документа document.docx по телефону:
chown alice document.docx
Документ теперь принадлежит Алисе:
$ лс-л всего 20 -рв-рв-р--. 1 Алиса Боб 16433 7 окт 18:06 document.docx
Группой-владельцем документа по-прежнему является боб . Мы только сказали chown сменить владельца, а не группу. В результате благодаря членству в группе и Алиса, и Боб теперь имеют доступ для чтения и записи к этому документу.
Чтобы изменить группу на alice , мы можем сделать одну из трех вещей.
Мы можем изменить владельца и группу на Алиса :
chown alice:alice document.docx
Поскольку мы хотим изменить группу-владельца на группу пользователя по умолчанию, мы можем опустить группу:
chown alice: document.docx
Или, поскольку мы хотим изменить только группу владельцев, мы могли бы позвонить:
chown :alice document.docx
И тогда результат будет:
$ лс-л всего 20 -рв-рв-р--. 1 Алиса Алиса 16433 7 окт 18:06 document.docx
В Linux, как обычный пользователь, невозможно передать право собственности на наши файлы кому-то другому. Мы либо должны работать как root, либо иметь привилегии для запуска chown через sudo :
sudo chown alice:alice document.docx
5. Изменение прав доступа с помощью
chmodПрава доступа к файлам можно изменить с помощью команды chmod . Имя chmod является сокращением от «change mode».
Мы можем использовать два способа вызова chmod , символическое или восьмеричное представление.
5.1. Символическое обозначение
В символической записи мы предоставляем chmod со строкой, разделенной запятыми, используя ссылки для пользователя ( u ), группы ( g ) и других ( o ).
Давайте вспомним права доступа документ.docx: -rw-rw-r–
Мы можем установить эти же разрешения с помощью символической записи:
chmod u=rw,g=rw,o=r документ.docx
Также можно добавлять разрешения постепенно. Например, мы можем добавить права на запись для других:
chmod o+w document.docx
Или аналогично, мы можем лишить группу прав на запись, позвонив:
chmod g-w документ.docx
Следует отметить, что добавочные изменения действуют только для указанной группы и флага, оставляя остальные права доступа такими, какими они были.
Мы можем комбинировать ссылки для одновременной установки разрешений. Чтобы сделать документ доступным только для чтения для группы и других, мы можем использовать:
chmod go=r документ.docx
Существует даже сокращенное обозначение — a — для установки разрешений для всех ссылок. Например, мы можем сделать наш документ доступным только для чтения для каждого пользователя и группы с:
chmod a=r документ.docx
5.2. Восьмеричная нотация
Широко используемая, часто более короткая форма вызова chmod использует восьмеричное представление. Это комбинация трех чисел, которыми мы можем представить все комбинации прав доступа.
В следующей таблице показаны эквивалентные восьмеричные и символьные обозначения:
ч/б/х | двоичный | восьмеричный --- | 000 | 0 --х | 001 | 1 -ш- | 010 | 2 -wx | 011 | 3 р-- | 100 | 4 г-х | 101 | 5 рв- | 110 | 6 RWX | 111 | 7
Каждая возможная комбинация прав доступа может быть записана в виде двоичного числа, где 1 и 0 означают, что разрешение включено или выключено. Эти двоичные числа представляют собой цифры от 0 до 7, 8 цифр, составляющих восьмеричную систему счисления.
Возвращаясь к примеру из предыдущего раздела, эквивалент:
chmod u=rwx,g=rx,o= документ.docx
в восьмеричном представлении:
chmod 750 документ.docx
Следует также отметить, что в восьмеричной нотации нельзя добавлять разрешения постепенно.
6. Общие примеры
Наконец, давайте рассмотрим некоторые распространенные примеры и то, что они делают.
6.1. Рекурсивное изменение владельца каталога
chown -R alice:alice /path/to/directory
В этом примере ключ -R делает chown рекурсивным.
6.2. Поделитесь каталогом с другими
chmod u=rwx,go=rx /путь/к/каталогу
или
chmod 755 /путь/к/каталогу
6.3. Защита закрытого ключа SSH
chmod u=rw,og= ~/.ssh/id_rsa
или
chmod 600 ~/.ssh/id_rsa
Следует отметить, что многие конфигурации безопасности Linux не позволяют использовать ключи в .ssh 9.0042, чтобы разрешить доступ по SSH, если к ним не применены правильные разрешения.
6.4. Сделать скрипт исполняемым
chmod +x script.sh
7. Заключение
В этой статье мы рассмотрели, как использовать chown и chmod для управления доступом к нашим файлам и папкам.
Мы увидели, как работает модель разрешений, связывая пользователей и группы-владельцы с флагами контроля доступа для каждого файла и каталога.
Следует отметить, что рекомендуется максимально ограничивать права доступа. Неправильно настроенные группы и разрешения представляют угрозу безопасности нашей личной информации.
Авторы Внизу
Если у вас есть несколько лет опыта работы с экосистемой Linux и вы хотите поделиться этим опытом с сообществом, ознакомьтесь с нашим Руководством по участию .
Как использовать команду chown (сменить владельца) в Linux
по Хитеш Джетва Атлантик. Нет (437 сообщений) в разделе Хостинг на выделенном сервере, Учебники
Команда chown означает изменение владельца — это инструмент командной строки Linux, используемый для изменения владельца файла и каталога. В Linux только пользователи root и admin могут получить доступ ко всем файлам и каталогам в файловой системе. Каждый файл и каталог связаны с владельцем и владельцем группы. Вы не можете получить доступ к файлам, принадлежащим другим пользователям. В таком случае вам нужно будет изменить владельца файла, чтобы предоставить доступ к файлу. Команда chown позволяет вам предоставлять разрешения на чтение, запись и выполнение для файлов и каталогов.
В этом посте мы покажем вам, как использовать команду chown в Linux.
Необходимые условия
- Сервер под управлением Linux на облачной платформе Atlantic. Net
- Пароль root, настроенный на вашем сервере
Создать облачный сервер Atlantic.Net
Сначала войдите в свой облачный сервер Atlantic.Net. Создайте новый сервер, выбрав любую операционную систему Linux с оперативной памятью не менее 1 ГБ. Подключитесь к вашему облачному серверу через SSH и войдите в систему, используя учетные данные, выделенные вверху страницы.
Основной синтаксис команды chown
Основной синтаксис использования команды chown показан ниже:
chown [опция] [владелец][группа] [файл]/[каталог]
Показано краткое объяснение каждой опции ниже:
- -c Отображать подробный вывод только после внесения изменений.
- -f Подавить большинство сообщений об ошибках
- -v Показать диагностику для каждого обработанного файла.
- -R Рекурсивно применять права собственности к файлам и каталогам.
- –help Используется для отображения справочной информации.
Отображение права собственности пользователя и группы на файл
Перед изменением владельца любого файла важно знать существующего владельца этого файла. Вы можете использовать команду ls -l, чтобы отобразить пользователя и группу владельцев файла.
Например, чтобы отобразить права пользователя и группы на файл file.txt , выполните следующую команду:
ls -l file.txt
Вы получите следующий вывод:
-rw-rw-r-- 1 выом выом 0 15 мар 08:21 файл.txt
Как видите, выом является пользователем и группой владельца файла.
Изменить пользователя-владельца файла
Чтобы изменить пользователя-владельца файла, используйте следующий синтаксис:
chown username filename
Например, чтобы изменить пользователя-владельца файла с именем file.txt на www-data , выполните следующую команду:
chown www-data file.txt
Теперь вы можете подтвердить право собственности на file. txt с помощью следующей команды:
ls -l file.txt
Вы должны увидеть, что владелец file.txt изменился.
-rw-rw-r-- 1 www-data vyom 0 15 марта 08:21 file.txt
Изменить владельца группы файла
Чтобы изменить владельца группы файла, используйте команду chown и укажите имя группы. Основной синтаксис для изменения владельца группы показан ниже:
chown :имя_группы имя_файла
Например, чтобы изменить владельца группы для файла с именем file.txt to sudo выполните следующую команду:
chown :sudo file.txt
Теперь вы можете проверить изменения, используя следующую команду:
ls -l file.txt
Вы должны увидеть, что сменился владелец группы.
-rw-rw-r-- 1 www-data sudo 0 15 марта 08:21 file.txt
Изменить пользователя и владельца группы файла
Если вы хотите одновременно изменить пользователя и владельца группы, используйте следующий синтаксис:
chown имя пользователя:имя группы файл
Например, чтобы изменить владельца пользователя на root, а владельца группы на root, выполните следующую команду:
chown root:root file. txt
их подкаталогов рекурсивно, используйте следующую команду:
chown -R www-data:www-data /var/www/html
Эта команда изменит пользователя и владельца группы /var/www/html каталог и все его подкаталоги рекурсивно.
Копировать настройки владения из одного файла в другой
Команда chown также позволяет копировать настройки владения из одного файла в другой файл. Основной синтаксис для копирования настроек владения показан ниже:
chown --reference=имя_файла новое имя_файла
Например, чтобы скопировать настройки владения из файла1.txt в файл2.txt, выполните следующую команду:
chown --reference=file1.txt file2.txt
Заключение
В этом посте мы объяснили, как изменить владельца файлов с помощью команды chown. Команда chown очень полезна, если вы работаете в многопользовательской среде. Попробуйте на выделенном хостинге от Atlantic.Net!
Команда Chown в Linux (владелец файла)
Команда chown
позволяет изменить владельца пользователя и/или группы для данного файла, каталога или символической ссылки.
В Linux все файлы связаны с владельцем и группой и назначаются с разрешениями на доступ для владельца файла, членов группы и других лиц.
В этом руководстве мы покажем вам, как использовать команду chown
на практических примерах.
Как использовать
chown
# Прежде чем перейти к использованию команды chown
, давайте начнем с изучения основного синтаксиса.
Командные выражения chown
имеют следующую форму:
chown [ОПЦИИ] ПОЛЬЗОВАТЕЛЬ[:ГРУППА] ФАЙЛ(ы)
ПОЛЬЗОВАТЕЛЬ
— это имя пользователя или идентификатор пользователя (UID) нового владельца. ГРУППА
— это имя новой группы или идентификатор группы (GID). ФАЙЛ(ы)
– это имя одного или нескольких файлов, каталогов или ссылок. Цифровые идентификаторы должны иметь префикс +
символ.
-
ПОЛЬЗОВАТЕЛЬ
— Если указан только пользователь, указанный пользователь станет владельцем данных файлов, групповое владение не изменяется. -
ПОЛЬЗОВАТЕЛЬ:
— Если за именем пользователя следует двоеточие:
, а имя группы не указано, пользователь станет владельцем файлов, а владение группой файлов изменится на группу входа пользователя. -
ПОЛЬЗОВАТЕЛЬ:ГРУППА
— Если указаны и пользователь, и группа (без пробела между ними), право собственности пользователя на файлы изменяется на данного пользователя, а право собственности группы изменяется на данную группу. -
:ГРУППА
— Если Пользователь опущен, а перед группой стоит двоеточие:
, только групповое владение файлами изменяется на данную группу. -
:
Если указано только двоеточие:
без указания пользователя и группы, никаких изменений не производится.
По умолчанию, в случае успеха, chown
не производит никакого вывода и возвращает ноль.
Использовать ls -l
команда, чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
ls -l имя_файла. txt
-rw-r--r-- 12 пользователей linuxize 12.0K 8 апр 20:51 имя_файла.txt |[-][-][-]- [------] [---] | | | +-----------> Группа +------------------> Владелец
Обычные пользователи могут изменить группу файла, только если они владеют файлом, и только в группу, членом которой они являются. Пользователи с правами администратора могут изменить групповое владение всеми файлами.
Как изменить владельца файла #
Чтобы изменить владельца файла, используйте команду chown
, за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
chown USER FILE
Например, следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
:
chown linuxize file1
Чтобы изменить владельца нескольких файлов или каталогов, укажите их как пробел -разделенный список. Приведенная ниже команда изменяет владельца файла с именем 9.0023 file1 и каталог dir1
новому владельцу с именем linuxize
:
chown linuxize file1 dir1
Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере право собственности на файл с именем file2
изменится на нового владельца с UID 1000
:
chown 1000 file2
Если в качестве имени пользователя существует числовой владелец, то право собственности будет передано имя пользователя. Чтобы избежать этого префикса ID с +
:
chown 1000 file2
Как изменить владельца и группу файла #
Чтобы изменить владельца и группу файла, используйте команду chown
, за которой следует новый владелец и группа, разделенные символом двоеточие ( :
) без пробелов и целевой файл.
chown ПОЛЬЗОВАТЕЛЬ:ГРУППА ФАЙЛ
Следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
и группу пользователей
:
chown linuxize:users file1
Если вы опустите имя группы после двоеточия ( :
), группа файла изменится на указанную группу входа пользователя:
chown linuxize: file19006 Как изменить группу файла #
Чтобы изменить только группу файла, используйте команду chown
, за которой следует двоеточие (:
), имя новой группы (без пробела между ними) и целевой файл как аргумент:
chown :ГРУППОВОЙ ФАЙЛ
Следующая команда изменит группу владельцев файла с именем file1
на www-data
:
chown :www-data file1
Другая команда, которую вы можете использовать для изменения группового владения файлами, это chgrp
.
Когда рекурсивная опция не используется, команда chown
изменяет групповое владение файлами, на которые указывают символические ссылки, а не символические ссылки
сами себя.
Например, если вы попытаетесь изменить владельца и группу символической ссылки symlink1
, который указывает на /var/www/file1
, chown
изменит владельца файла или каталога, на который указывает символическая ссылка:
chown www-data: symlink1
Скорее всего, вместо изменения цели права собственности, вы получите сообщение об ошибке «невозможно разыменовать ‘symlink1’: разрешение отклонено».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Эта опция указана в /proc/sys/fs/protected_symlinks
. 1
означает включено, а 0
отключено. Мы рекомендуем не отключать защиту симлинков.
Чтобы изменить групповое владение самой символической ссылкой, используйте параметр -h
:
chown -h www-data symlink1
Как рекурсивно изменить владельца файла #
Чтобы рекурсивно работать со всеми файлами и каталогами в указанный каталог, используйте параметр -R
( --recursive
):
chown -R ПОЛЬЗОВАТЕЛЬ:ГРУППА КАТАЛОГ
Следующий пример изменит владельца всех файлов и подкаталогов в каталоге /var/www
на нового владельца и группу с именем www-data
:
chown -R www-data: /var/www
Если каталог содержит символические ссылки, передайте параметр -h
:
chown -hR www-data: /var/www
Другие параметры, которые можно использовать при рекурсивном изменении владельца каталога: -H
и -L
.
Если аргумент, переданный команде chown
, является символической ссылкой, указывающей на каталог, то параметр -H
заставит команду перейти по нему. -L
сообщает chown
о переходе по каждой символической ссылке на встречающийся каталог. Обычно вам не следует использовать эти параметры, потому что вы можете испортить свою систему или создать угрозу безопасности.
Использование эталонного файла #
--reference=ref_file 9Параметр 0024 позволяет вам изменить пользователя и группу владельцев данных файлов, чтобы они были такими же, как у указанного эталонного файла (
ref_file
). Если эталонный файл является символической ссылкой , chown
будет использовать пользователя и группу целевого файла.
chown --reference=REF_FILE ФАЙЛ
Например, следующая команда назначит пользователя и группу владельцев файла file1
пользователю file2
chown --reference=file1 file2
Заключение #
chown
— это утилита командной строки Linux/UNIX для изменения владельца файла и/или группы.
Чтобы узнать больше о команде chown
, посетите chown man
или введите man chown
в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
чаун терминал
Как изменить владельца файла/группы с помощью команды chown в Linux
Сокращение от изменить владельца , Команда Chown — это утилита командной строки, которая используется для изменения прав пользователя или группы на файл или каталог и даже на ссылки. Философия Linux такова, что каждый файл или каталог принадлежит определенному пользователю или группе с определенными правами доступа.
На разных примерах мы попробуем рассмотреть различные варианты использования команды chown. Команда Chown использует довольно простой и понятный синтаксис.
$ chown ОПЦИИ ПОЛЬЗОВАТЕЛЬ: ГРУППА файлов
Кратко уточним параметры:
Атрибут ПОЛЬЗОВАТЕЛЬ относится к имени пользователя, которому будет принадлежать файл. Вы можете указать либо имя пользователя, либо UID (User ID). Между тем, опция GROUP указывает имя новой группы, которую файл получит после выполнения команды. Параметр file представляет собой обычный файл, каталог или даже символическую ссылку. Это три объекта, разрешения которых можно изменить.
Несколько замечаний:
1) Если параметр USER указан отдельно, право собственности на файл/каталог переходит к указанному пользователю, в то время как право собственности группы остается неизменным. Вот пример:
$ chown john file1.txt
В приведенной выше команде право собственности на файл file1.txt меняется с текущего пользователя на пользователя john.
2) Если перед параметром USER стоит полное двоеточие, т. е. USER:, и имя группы не указано, то пользователь становится владельцем файла, но групповое владение файлом переключается на группу входа пользователя. Например:
$ chown john: file1. txt
В этом примере пользователь john становится владельцем файла file1.txt, но групповое владение файлом меняется на группу пользователя john.
3) Когда параметры пользователя и группы указаны через двоеточие, т. е. ПОЛЬЗОВАТЕЛЬ:ГРУППА — без пробелов — файл становится владельцем нового пользователя и группы, как указано
$ chown john:john file1.txt
В приведенном выше примере файл становится владельцем пользователя и группы пользователя john.
4) Если параметр USER опущен, а вместо параметра group стоит полное двоеточие :GROUP, то изменяется только групповое владение файлом.
Как просмотреть права доступа к файлу
Чтобы просмотреть права доступа к файлу, просто используйте команду ls -l, за которой следует имя файла.
Из вывода видно, что файл принадлежит пользователю linuxtechi, который принадлежит к группе linuxtechi в 3-м и 4-м столбцах соответственно.
Как изменить владельца файла с помощью команды chown
Перед изменением разрешений всегда вызывайте sudo, если вы не работаете в качестве пользователя root. Это дает вам повышенные привилегии для изменения прав пользователя и группы на файл.
Чтобы изменить владельца файла, используйте следующий синтаксис:
$ sudo chown user имя файла
Например,
$ sudo chown james file1.txt
Из вывода видно, что право собственности на файл изменился с linuxtechi на пользователя james.
В качестве альтернативы, вместо использования имени пользователя вы можете вместо этого передать UID пользователя. Чтобы получить UID, просмотрите файл /etc/passwd.
$ кошка /etc/passwd | grep username
Из примера ниже видно, что UID пользователя linuxtechi равен 1002
Как изменить владельца группы с помощью команды chown
Как обсуждалось ранее, чтобы сменить владельца группы файла, не указывайте пользователя и просто добавьте перед именем группы полное двоеточие.
$ sudo chown :group file
Например, чтобы изменить владельца группы file1.txt с linuxtechi на docker, мы выполнили команду:
$ sudo chown :docker file1. txt
Как изменить оба владелец файла и владелец группы файла
Если вы хотите изменить и владельца, и группу, к которой принадлежит файл, укажите параметры пользователя и группы, разделенные полным двоеточием, как показано в приведенном ниже синтаксисе. Убедитесь, что между опциями и двоеточием нет пробелов.
$ sudo chown user:group имя файла
Например, следующая команда изменяет владельца файла file1.txt на пользователя james и группу redis, что подтверждается с помощью команды ls.
$ sudo chown james:redis file1.txt
Как рекурсивно изменить владельца файла
каталоги. Для этого используйте рекурсивную опцию -R или директиву –recursive.
$ sudo chown -R user:group directory
Например, приведенная ниже команда назначает владельцам всех файлов и папок в каталоге /var/www группу www-data.
$ sudo chown -R :www-data /var/www
В приведенном ниже примере пользователю linuxtechi назначается право собственности на отчеты каталога вместе со всеми файлами и папками в каталоге.