Команда 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
команду, за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
Например, следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
:
chown linuxize file1
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка через пробел. Команда ниже меняет владельца файла с именем file1
и каталогом dir1
на нового владельца с именем linuxize
:
chown linuxize file1 dir1
Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2
на нового владельца с UID 1000
:
chown 1000 file2
Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса, идентификатор с помощью +
:
chown 1000 file2
Как изменить владельца и группу файла
Чтобы изменить владельца и группу файла, используйте chown
команду, за которой следует новый владелец и группа, разделенные двоеточием ( :
) без промежуточных пробелов и целевого файла.
Следующая команда изменит владельца файла с именем 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
свой терминал.
- Печать
Страницы: [1] Вниз
Тема: как сменить владельца символьной ссылки (Прочитано 5510 раз)
0 Пользователей и 1 Гость просматривают эту тему.
Tony-M
Всем привет.
Собственно проблема такая.
Есть сайт например kw.my (пользователь-владелец kw) (квота на каталог 20 Мб)
Есть мой (пользователь chi) каталог (/home/chi) и в нём папка (distrib) с дистрибутивом на 7Гб
Мне надо сделать возможность чтоб, люди могли на сайте kw.my зайти в папку мою и скачать нужное им. Нужно на 2-3 дня, потом я эту возможность уберу.
Сразу говорю, что квоту менять — не выход.
Я думал что сделаю ln -s /home/chi/distrib /home/kw/kw.my/distrib и всё будет путём
но всё время в браузере вижу 403 You don’t have permission to access
Вроде уже сделал и chown -R kw:kw /home/chi/distrib и chmod -R 777 /home/chi/distrib
всеравно всё тоже самое вижу.
если делаю ls -la в /home/kw/kw.my то у ссылки distrib владелец — root
Вопросы:
1) как поменять владельца ссылки? делал chown kw:kw /home/kw/kw.my/distrib — нифига.
2) Пральноли я вообще делаю?
3) поскольку с ссылками не часто работал, то при rm /home/kw/kw.my/distrib удалится ссылка или каталог /home/chi/distrib ?
Sam Stone
кажется в апаче надо разрешить переходить по ссылкам. Либо в не пускает именно в /home
Попробуй также стопнуть apparmor для теста.
16.04.1 4.4.0-59-generic x86_64 GNU/Linux
Frank
Ссылка не является файлом, сменить права/хозяина невозможно, права эти неприменимы к ссылке. Права на /home/chi смотри, если на эту папку стоит 700, то апач в пролёте. Нужно 701 на хомяк. Но этого мало. Обычно, по соображениям безопасности, хождение по симлинкам для апача отключено:
The <Directory> directive will follow the symbolic link without resetting the pathname. Therefore, for the highest level of security, symbolic links should be disabled with the appropriate Options directive.
…
FollowSymLinks
The server will follow symbolic links in this directory.Even though the server follows the symlink it does not change the pathname used to match against <Directory> sections.
Note also, that this option gets ignored if set inside a <Location> section.
Читать http://httpd.apache.org/docs/2.0/mod/core.html#options
Дмитрий Бо
Топик о вещах достаточно постоянных, поэтому во избежание дезинформации случайного читателя:
Добрый день!
Статья https://forum.ubuntu.ru/index.php?topic=68013.0 заканчивается высказывание «Ссылка не является файлом, сменить права/хозяина невозможно», что не соответствует действительности, а с топик вроде закрыт для редактирования.Автору ошибся в одной букве chown -R. Смена владельца ссылки chown -h. Правда, смена пользователя может не помочь. Например в Samba надо будет подправить /etc/samba/smb.conf
unix extensions = no
wide links = yesP.S. Подкорректируйте плиз.
- Печать
Страницы: [1] Вверх
Команда 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
за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
Например, следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
:
chown linuxize file1
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка, разделенного пробелами. Приведенная ниже команда меняет владельца файла с именем file1
и каталога dir1
на нового владельца с именем linuxize
:
chown linuxize file1 dir1
Вместо имени пользователя можно использовать числовой идентификатор пользователя (UID). В следующем примере будет изменено право собственности на файл с именем file2
новому владельцу с UID 1000
:
chown 1000 file2
Если числовой владелец существует как имя пользователя, то право собственности будет передано имени пользователя. Чтобы избежать этого префикса ID с +
:
chown 1000 file2
Как изменить владельца и группу файла
Для того, чтобы изменить владельца и группу с использованием файловом chown
команды следуют новым владельцем и группой , разделенных двоеточием ( :
) без пробелов и целевого файла.
Следующая команда изменит владельца файла с именем file1
на нового владельца с именем linuxize
и сгруппирует users
:
chown linuxize:users file1
Если опустить имя группы после двоеточия ( :
) группа файла изменяется на указанного пользователя группы входа в систему :
chown linuxize: file1
Как изменить группу файла
Чтобы изменить только группу с использованием файловом chown
команды , за которым следует двоеточие ( :
) и новое название группы (без пробела между ними) и целевого файла в качестве аргумента:
Следующая команда изменит группу владельцев файла с именем 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
в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Other Alias
chown, fchown, fchownat
ОБЗОР
#include <unistd.h>
int chown(const char *pathname, uid_t owner, gid_t group);
int fchown(int fd, uid_t owner, gid_t group);
int lchown(const char *pathname, uid_t owner, gid_t group);
#include <fcntl.h> /* определения констант of AT_* */
#include <unistd.h>
int fchownat(int dirfd, const char *pathname,
uid_t owner, gid_t group, int flags);
Требования макроса тестирования свойств для glibc
(см. feature_test_macros(7)):
fchown(), lchown():
-
_BSD_SOURCE || _XOPEN_SOURCE >= 500 || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* начиная с glibc 2.12: */ _POSIX_C_SOURCE >= 200809L
fchownat():
-
- Начиная с glibc 2.10:
- _XOPEN_SOURCE >= 700 || _POSIX_C_SOURCE >= 200809L
- До glibc 2.10:
- _ATFILE_SOURCE
ОПИСАНИЕ
Данные системные вызовы изменяют владельца и группу для файла. Системные
вызовы chown(), fchown() и lchown() отличаются только в том, каким
образом задается файл:
- *
-
chown() изменяет владельца для файла, задаваемого параметром pathname,
который разыменовывается, если является символьной ссылкой. - *
-
fchown() изменяет владельца для файла, задаваемого открытым файловым
дескриптором fd. - *
-
lchown() похож на chown() за исключением того, что он не
разыменовывает символьные ссылки.
Только привилегированный процесс (Linux: имеющий мандат CAP_CHOWN) может
сменить владельца файла. Владелец файла может сменить группу файла на любую
группу, в которой он числится. Привилегированный процесс (Linux: с
CAP_CHOWN) может задавать произвольную группу.
Если параметр owner или group равен -1, то соответствующий
идентификатор не изменяется.
Когда владелец или группа исполняемого файла изменяется непривилегированным
пользователем, то биты режима S_ISUID и S_ISGID сбрасываются. В POSIX
не указано, должно ли это происходить если chown() выполняется
суперпользователем; поведение в Linux зависит от версии ядра. В случае
исполняемого файла вне группы (т.е., у которого не установлен бит
S_IXGRP) бит S_ISGID указывает на обязательную блокировку, и не
сбрасывается при выполнении chown().
fchownat()
Системный вызов fchownat() работает также как системный вызов chown(),
за исключением случаев, описанных здесь.
Если в pathname задан относительный путь, то он считается относительно
каталога, на который ссылается файловый дескриптор dirfd (а не
относительно текущего рабочего каталога вызывающего процесса, как это
делается в chown()).
Если в pathname задан относительный путь и dirfd равно специальному
значению AT_FDCWD, то pathname рассматривается относительно текущего
рабочего каталога вызывающего процесса (как chown()).
Если в pathname задан абсолютный путь, то dirfd игнорируется.
Аргумент flags представляет собой битовую маску, создаваемую побитовым
сложением (OR) следующих значений;
- AT_EMPTY_PATH (начиная с Linux 2.6.39)
-
Если значение pathname равно пустой строке, то выполнять действие над
файлом, на который указывает dirfd (который может быть получен с помощью
open(2) с флагом O_PATH). В этом случае, dirfd может указывать на
файл любого типа, а не только на каталог. Если dirfd равно AT_FDCWD,
то вызов выполняет действие над текущим рабочим каталогом. Этот флаг есть
только в Linux; для получения его определения определите _GNU_SOURCE. - AT_SYMLINK_NOFOLLOW
-
Если значение pathname является символьной ссылкой, не разыменовывать её,
а изменить владельца самой ссылки, как это делается в lchown() (по
умолчанию, fchownat() разыменовывает символьные ссылки как и chown()).
Смотрите в openat(2) объяснение необходимости fchownat().
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При успешном выполнении возвращается 0. В случае ошибки возвращается -1, а
errno устанавливается в соответствующее значение.
ОШИБКИ
В зависимости от файловой системы могут также возвращаться другие ошибки,
перечисленные далее.
Наиболее распространённые ошибки chown() перечислены далее.
- EACCES
-
Поиск запрещён из-за одного из частей префикса пути (См. также
path_resolution(7).) - EFAULT
- Аргумент pathname указывает за пределы доступного адресного пространства.
- ELOOP
-
Во время определения pathname встретилось слишком много символьных
ссылок. - ENAMETOOLONG
- Слишком длинное значение аргумента pathname.
- ENOENT
- Файл не существует.
- ENOMEM
- Недостаточное количество памяти ядра.
- ENOTDIR
- Компонент в префиксе пути не является каталогом.
- EPERM
-
Вызывающий процесс не имеет требуемых прав (см. выше), чтобы изменять
владельца и/или группу. - EROFS
-
Указанный файл находится на файловой системе, смонтированной только для
чтения.
Общие ошибки fchown() таковы:
- EBADF
- Значение fd не является правильным открытым файловым дескриптором.
- EIO
-
Во время изменения индексного дескриптора (inode) возникла низкоуровневая
ошибка ввода/вывода. - ENOENT
- См. выше.
- EPERM
- См. выше.
- EROFS
- См. выше.
В fchownat() могут возникнуть те же ошибки, что и в chown(). Также, в
fchownat() могут возникнуть следующие ошибки:
- EBADF
- Значение dirfd не является правильным файловым дескриптором.
- EINVAL
- Указано неверное значение в flags.
- ENOTDIR
-
Значение pathname содержит относительный путь и dirfd содержит
файловый дескриптор, указывающий на файл, а не на каталог.
ВЕРСИИ
Вызов fchownat() был добавлен в ядро Linux версии 2.6.16; поддержка в
glibc доступна с версии 2.4.
СООТВЕТСТВИЕ СТАНДАРТАМ
chown(), fchown(), lchown(): 4.4BSD, SVr4, POSIX.1-2001,
POSIX.1-2008.
Версия из 4.4BSD может использоваться только суперпользователем (то есть,
обычные пользователи не могут менять владельцев).
fchownat(): POSIX.1-2008.
ЗАМЕЧАНИЯ
Назначение владельца новых файлов
При создании нового файла (например с помощью open(2) или mkdir(2)),
его владельцем будет установлен ID пользователя из файловой системы
создающего процесса. Группа файла зависит от нескольких факторов, включая
тип файловой системы, параметры монтирования и установлен ли бит режима
set-group-ID на родительском каталоге. Если файловая система поддерживает
параметры mount(8) -o grpid (тоже что и -o bsdgroups) и -o nogrpid (тоже что и -o sysvgroups), то правила следующие:
- *
-
Если файловая система смонтирована с параметром -o grpid, то группой
нового файла будет группа родительского каталога. - *
-
Если файловая система смонтирована с параметром -o nogrpid и на
родительском каталоге сброшен бит set-group-ID, то группой нового файла
будет GID файловой системы того же процесса. - *
-
Если файловая система смонтирована с параметром -o nogrpid и на
родительском каталоге установлен бит set-group-ID, то группой нового файла
будет группа родительского каталога.
Начиная с Linux 2.6.25, параметры монтирования -o grpid и -o nogrpid
поддерживаются для ext2, ext3, ext4 и XFS. Для файловых систем, не
поддерживающих эти параметры монтирования, используются правила как для
-o nogrpid.
Замечания по glibc
В старых ядрах, где fchownat() отсутствует, обёрточная функция glibc
использует chown() или lchown(). Если pathname является
относительным путём, то glibc собирает путь относительно символической
ссылки в /proc/self/fd, которая соответствует аргументу dirfd.
NFS
Семантика chown() сознательно нарушается в файловых системах NFS, в
которых включено отображение UID. Также, нарушается семантика всех системных
вызовов, которые обеспечивают доступ к содержимому файлов, так как
chown() может привести к немедленному отзыву доступа к уже открытым
файлам. Кэширование на клиентской стороне может привести к задержке между
сменой доступа пользователю и временем, когда файл действительно станет
доступным.
Историческая справка
Первоначальные версии системных вызовов chown(), fchown() и
lchown() в Linux поддерживали только 16-битные идентификаторы
пользователей и групп. Позднее в Linux 2.4 были добавлены вызовы
chown32(), fchown32() и lchown32(), поддерживающие 32-битные
идентификаторы. В glibc обёрточные функции chown(), fchown() и
lchown() работают одинаково вне зависимости от версий ядра.
В версиях Linux до 2.1.81 (кроме 2.1.46) chown() не следовал по
символьным ссылкам. Начиная с версии Linux 2.1.81 chown() следует по
символьным ссылкам, и существует новый системный вызов lchown(), который
не следует по символьным ссылкам. Начиная с Linux 2.1.86 этот новый вызов
(имеющий тот же смысл, что и старый chown()) имеет тот же самый номер
системного вызова, а chown() получил новый номер.
ПРИМЕР
Следующая программа изменять владельца файла, указанного вторым в командной
строке, на значение, указанное в первом аргументе командной строки. Новый
владелец может задаваться в виде числового пользовательского ID, или в виде
имени пользователя (которое преобразуется в пользовательский ID с помощью
getpwnam(3), выполняющего поиск в системном файле паролей).
Исходный код программы
#include <pwd.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> int main(int argc, char *argv[]) { uid_t uid; struct passwd *pwd; char *endptr; if (argc != 3 || argv[1][0] == '') { fprintf(stderr, "%s <owner> <file>n", argv[0]); exit(EXIT_FAILURE); } uid = strtol(argv[1], &endptr, 10); /* Allow a numeric string */ if (*endptr != '') { /* Was not pure numeric string */ pwd = getpwnam(argv[1]); /* Try getting UID for username */ if (pwd == NULL) { perror("getpwnam"); exit(EXIT_FAILURE); } uid = pwd->pw_uid; } if (chown(argv[2], uid, -1) == -1) { perror("chown"); exit(EXIT_FAILURE); } exit(EXIT_SUCCESS); }
Содержание
- Команда Chown в Linux (владение файлом)
- Как использовать chown
- Как изменить владельца файла
- Как изменить владельца и группу файла
- Как изменить группу файла
- Как изменить право собственности на символические ссылки
- Как рекурсивно изменить право собственности на файл
- Использование справочного файла
- Выводы
- Команда chown в linux
- Примеры использования
- Смена владельца файла
- Рекурсивная смена владельцев файлов
- Команда chown Linux
- Команда chown Linux
- 1. Синтаксис и опции
- 2. Использование chown
- Выводы
- Команда chown в Linux
- Синтаксис
- Примеры
- Рекурсивно массово меняем права на папки и файлы
- Команда Chown в Linux
- Chown Command in Linux (File Ownership)
- В этом руководстве мы покажем вам, как использовать chown команду на практических примерах.
- Как пользоваться 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 в своем терминале.
Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.
Источник
Команда 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 утилите должно передаваться имя директории, а не имена отдельных файлов.
Источник
Команда chown Linux
При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.
Команда chown Linux
1. Синтаксис и опции
Синтаксис chown, как и других подобных команд linux очень прост:
$ chown пользователь опции /путь/к/файлу
В поле пользователь надо указать пользователя, которому мы хотим передать файл. Также можно указать через двоеточие группу, например, пользователь:группа. Тогда изменится не только пользователь, но и группа. Вот основные опции, которые могут вам понадобиться:
Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.
2. Использование chown
Например, у нас есть несколько папок dir и их владелец пользователь sergiy:
Давайте изменим владельца папки dir1 на root:
Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:
Дальше давайте изменим группу и владельца на www-data только для тех каталогов и файлов, у которых владелец и группа root в каталоге /dir3:
Выводы
Источник
Команда chown в Linux
В операционной системе Линукс множество пользователей и групп. При создании файла тот администратор, от чьего имени он был образован, становится его владельцем, который находится в собственной группе, но также может объединяться с другими.
Утилита сhown (ее название произошло от сочетания слов «change» и «mode») позволяет изменять владельца или группу у папок и файлов.
Когда меняется владелец, он получает возможность использовать иные возможности доступа и ограничить его для остальных администраторов. Подобное разрешение можно задавать при помощи чисел и символов.
Синтаксис
Рассмотрим синтаксис команды.
Примеры
Для первого примера изменим владельца «root» папки «katalog» на «ya». Для этого запустим команду без опций, укажем имя пользователя и путь к каталогу.
chown ya /root/katalog
Меняем владельца и группу одновременно.
Чтобы изменить сразу владельца и группу необходимо применить двоеточие без промежуточных пробелов. Синтаксис данной процедуры такой: USER:GROUP KATALOG.
Для примера изменим владельца и group для каталога «katalog» на «ya» и «nogroup».
chown ya:nogroup /root/katalog
Тоже самое сделаем для документа «dokument».
chown ya:nogroup dokument
Бывают ситуации, когда нужно поменять только группу. Для этого, впереди нужно добавить «:». Поменяем группу документа «dokument» на «nogroup».
chown :nogroup dokument
Рекурсивно массово меняем права на папки и файлы
Массово поменяем владельца и группу директории «primercataloga» включая вложенные папки и файлы.
Источник
Команда Chown в Linux
Chown Command in Linux (File Ownership)
В этом руководстве мы покажем вам, как использовать chown команду на практических примерах.
Команда chown позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.
В Linux все файлы связаны с владельцем и группой, и им назначены права доступа для владельца файла, членов группы и других.
Как пользоваться chown
Прежде чем перейти к использованию chown команды, давайте начнем с обзора основного синтаксиса.
В chown выражении команды принимает следующий вид:
По умолчанию в случае успеха chown не выводит никаких данных и возвращает ноль.
Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом и только в группе, членом которой они являются. Административные пользователи могут изменять групповое владение всеми файлами.
Как сменить владельца файла
Чтобы изменить владельца файла, используйте chown команду, за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка через пробел. Команда ниже меняет владельца файла с именем file1 и каталогом dir1 на нового владельца с именем linuxize :
Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2 на нового владельца с UID 1000 :
Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса, идентификатор с помощью + :
Как изменить владельца и группу файла
Чтобы изменить владельца и группу файла, используйте chown команду, за которой следует новый владелец и группа, разделенные двоеточием ( : ) без промежуточных пробелов и целевого файла.
Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и группой users :
Если вы опустите имя группы после двоеточия ( : ), группа файла изменится на группу входа указанного пользователя:
Как изменить группу файла
Чтобы изменить только группу файла, используйте chown команду с двоеточием ( : ) и именем новой группы (без пробелов между ними) и целевой файл в качестве аргумента:
Как изменить владельца символических ссылок
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать symlink1: Permission denied».
Как рекурсивно изменить владельца файла
Использование справочного файла
Вывод
chown утилита командной строки Linux / UNIX для изменения владельца файла и / или группы
Чтобы узнать больше о chown команде, посетите страницу руководства chown или введите man chown свой терминал.
Источник