- Команда chown Linux
- Команда chown Linux
- 1. Синтаксис и опции
- 2. Использование chown
- Выводы
- Команда Chown в Linux
- Chown Command in Linux (File Ownership)
- В этом руководстве мы покажем вам, как использовать chown команду на практических примерах.
- Как пользоваться chown
- Как сменить владельца файла
- Как изменить владельца и группу файла
- Как изменить группу файла
- Как изменить владельца символических ссылок
- Как рекурсивно изменить владельца файла
- Использование справочного файла
- Вывод
- Как сменить владельца папки Linux
- Как сменить владельца папки Linux
- Права доступа к файлам в Linux
- Основные права доступа к файлам в Linux
- Специальные права доступа к файлам в Linux
- Как посмотреть права доступа к файлам в Linux
- Как изменить права файла в Linux
- Выводы
Команда chown Linux
Основа философии Linux — все объекты операционной системы — это файлы, для предоставления доступа к тем или иным возможностям системы мы просто даем доступ пользователю к нужным файлам или убираем. Я более подробно рассказывал обо всех правах в статье права доступа к файлам в Linux, здесь же скажу только что у каждого файла есть три группы прав: для владельца, группы и всех остальных.
При создании файла ему тот пользователь, от имени которого он был создан становится его владельцем, а группой устанавливается основная группа владельца. Но владельца файла и группу можно менять, для этого используются команды chown и chgrp. В этой статье будет рассмотрена команда chown linux, а также основные примеры её использования.
Команда chown Linux
1. Синтаксис и опции
Синтаксис chown, как и других подобных команд linux очень прост:
$ chown пользователь опции /путь/к/файлу
В поле пользователь надо указать пользователя, которому мы хотим передать файл. Также можно указать через двоеточие группу, например, пользователь:группа. Тогда изменится не только пользователь, но и группа. Вот основные опции, которые могут вам понадобиться:
- -c, —changes — подробный вывод всех выполняемых изменений;
- -f, —silent, —quiet — минимум информации, скрыть сообщения об ошибках;
- —dereference — изменять права для файла к которому ведет символическая ссылка вместо самой ссылки (поведение по умолчанию);
- -h, —no-dereference — изменять права символических ссылок и не трогать файлы, к которым они ведут;
- —from — изменять пользователя только для тех файлов, владельцем которых является указанный пользователь и группа;
- -R, —recursive — рекурсивная обработка всех подкаталогов;
- -H — если передана символическая ссылка на директорию — перейти по ней;
- -L — переходить по всем символическим ссылкам на директории;
- -P — не переходить по символическим ссылкам на директории (по умолчанию).
Утилита имеет ещё несколько опций, но это самые основные и то большинство из них вам не понадобится. А теперь давайте посмотрим как пользоваться chown.
2. Использование chown
Например, у нас есть несколько папок dir и их владелец пользователь sergiy:
Давайте изменим владельца папки dir1 на root:
chown root ./dir1
Если вы хотите поменять сразу владельца и группу каталога или файла запишите их через двоеточие, например, изменим пользователя и группу для каталога dir2 на root:
chown root:root ./dir2
Если вы хотите чтобы изменения применялись не только к этому каталогу, но и ко всем его подкаталогам, добавьте опцию -R:
chown -R root:root ./dir3
Дальше давайте изменим группу и владельца на www-data только для тех каталогов и файлов, у которых владелец и группа root в каталоге /dir3:
chown —from=root:root www-data:www-data -cR ./
Для обращения к текущему каталогу используйте путь ./. Мы его использовали и выше. Далее указываем нужную группу с помощью опции —from и просим утилиту выводить изменения, которые она делает в файловой системе с помощью опции -c.
Выводы
Команда chown очень простая и позволяет только менять владельца и группу. Если вы хотите более подробно настроить права для владельца, группы и всех остальных, вам понадобится команда chmod. Права — довольно частая проблема при настройке работы различных программ, знание двух этих команд плюс ls и namei может помочь исправить много ошибок.
Источник
Команда Chown в Linux
Chown Command in Linux (File Ownership)
В этом руководстве мы покажем вам, как использовать chown команду на практических примерах.
Команда chown позволяет изменить владельца пользователя и / или группы для данного файла, каталога или символической ссылки.
В Linux все файлы связаны с владельцем и группой, и им назначены права доступа для владельца файла, членов группы и других.
Как пользоваться chown
Прежде чем перейти к использованию chown команды, давайте начнем с обзора основного синтаксиса.
В chown выражении команды принимает следующий вид:
- USER — Если указан только пользователь, указанный пользователь станет владельцем данных файлов, владение группой не изменится.
- USER: — Когда за именем пользователя следует двоеточие : , а имя группы не указывается, пользователь становится владельцем файлов, а принадлежность группы файлов изменяется на группу входа пользователя.
- USER:GROUP — Если указаны и пользователь, и группа (без пробелов между ними), пользовательское владение файлами изменяется на данного пользователя, а групповое владение изменяется на данную группу.
- :GROUP — Если пользователь не указан, а перед группой стоит двоеточие : , то только группа, владеющая файлами, будет изменена на данную группу.
- : Если задано только двоеточие : , без указания пользователя и группы, никаких изменений не производится.
По умолчанию в случае успеха chown не выводит никаких данных и возвращает ноль.
Используйте ls -l команду, чтобы узнать, кому принадлежит файл или к какой группе принадлежит файл:
Обычные пользователи могут изменять группу файла только в том случае, если они владеют файлом и только в группе, членом которой они являются. Административные пользователи могут изменять групповое владение всеми файлами.
Как сменить владельца файла
Чтобы изменить владельца файла, используйте chown команду, за которой следует имя пользователя нового владельца и целевой файл в качестве аргумента:
Например, следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize :
Чтобы изменить владельца нескольких файлов или каталогов, укажите их в виде списка через пробел. Команда ниже меняет владельца файла с именем file1 и каталогом dir1 на нового владельца с именем linuxize :
Числовой идентификатор пользователя (UID) можно использовать вместо имени пользователя. Следующий пример изменит владельца файла с именем file2 на нового владельца с UID 1000 :
Если в качестве имени пользователя существует числовой владелец, то владение будет перенесено в имя пользователя. Чтобы избежать этого префикса, идентификатор с помощью + :
Как изменить владельца и группу файла
Чтобы изменить владельца и группу файла, используйте chown команду, за которой следует новый владелец и группа, разделенные двоеточием ( : ) без промежуточных пробелов и целевого файла.
Следующая команда изменит владельца файла с именем file1 на нового владельца с именем linuxize и группой users :
Если вы опустите имя группы после двоеточия ( : ), группа файла изменится на группу входа указанного пользователя:
Как изменить группу файла
Чтобы изменить только группу файла, используйте chown команду с двоеточием ( : ) и именем новой группы (без пробелов между ними) и целевой файл в качестве аргумента:
Еще одна команда, которую вы можете использовать для изменения групповой принадлежности файлов — это chgrp .
Как изменить владельца символических ссылок
Когда рекурсивный параметр не используется, chown команда изменяет групповое владение файлами, на которые указывают символические ссылки , а не сами символьные ссылки .
Например, если вы попытаетесь изменить владельца и группу символической ссылки, на symlink1 которую указывает ссылка /var/www/file1 , chown изменит владельца файла или каталога, на который указывает символическая ссылка:
Скорее всего, вместо смены целевого владельца вы получите ошибку «невозможно разыменовать symlink1: Permission denied».
Ошибка возникает из-за того, что по умолчанию в большинстве дистрибутивов Linux символические ссылки защищены, и вы не можете работать с целевыми файлами. Эта опция указана в /proc/sys/fs/protected_symlinks . 1 значит включен и 0 отключен. Мы рекомендуем не отключать защиту символических ссылок.
Чтобы изменить групповое владение самой символической ссылкой, используйте -h параметр:
Как рекурсивно изменить владельца файла
Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте параметр -R ( —recursive ):
Если каталог содержит символические ссылки, передайте -h опцию:
Другими параметрами, которые можно использовать при рекурсивном изменении владельца каталога, являются -H и -L .
Если аргумент, переданный chown команде, является символической ссылкой, указывающей на каталог, эта -H опция заставит команду пройти по ней. -L указывает chown на прохождение каждой символической ссылки в каталог, который встречается. Обычно вы не должны использовать эти параметры, потому что вы можете испортить вашу систему или создать угрозу безопасности.
Использование справочного файла
—reference=ref_file Опция позволяет изменить пользователя и группы владельца указанные файлы , чтобы быть такими же , как в указанном отпечатком ( ref_file ). Если ссылочный файл является символической ссылкой, chown будут использоваться пользователь и группа целевого файла.
Вывод
chown утилита командной строки Linux / UNIX для изменения владельца файла и / или группы
Чтобы узнать больше о chown команде, посетите страницу руководства chown или введите man chown свой терминал.
Источник
Как сменить владельца папки Linux
В Linux права собственности на файлы и папки составляют основу управления доступом к различным возможностям операционной системы. То какому пользователю и группе принадлежит папка определяет кто сможет получить к ней доступ, создавать и удалять там файлы и другие папки и так далее.
В этой небольшой статье мы рассмотрим как сменить владельца папки Linux в графическом интерфейсе или с помощью терминала.
Как сменить владельца папки Linux
Вы можете изменить владельца папки с помощью файлового менеджера, например в Nautilus. Но для этого надо запустить файловый менеджер от имени суперпользователя. Откройте терминал с помощью сочетания клавиш Ctrl+Alt+T и выполните команду:
Затем найдите нужную папку, и кликните по ней правой кнопкой мыши. В открывшемся контекстном меню выберите пункт Свойства:
В появившемся окне перейдите на вкладку Права. Здесь можно изменить владельца папки и группу владельца с помощью выпадающего списка напротив соответствующего пункта:
Если вам нужно чтобы эти изменения были применены для всех вложенных папок и файлов, нажмите внизу окна кнопку Изменить права на вложенные файлы.
Вот так всё просто. Если у вас не получается запустить файловый менеджер или вы хотите работать в терминале это тоже возможно. Для того чтобы сменить владельца папки следует использовать утилиту chown. Синтаксис у неё такой:
$ chown опции новый_владелец : новая_группа /путь/к/папке
Подробнее об этой утилите вы можете просмотреть в отдельной статье. Например, чтобы сменить владельца папки
/Видео/losst/ на testuser следует выполнить такую команду:
sudo chown testuser
В данном случае группа останется без изменений, чтобы изменить также группу-владельца выполните:
sudo chown testuser:testuser
Если нужно сменить владельца папки Linux рекурсивно используйте опцию -R:
sudo chown -R testuser:testuser
Обратите внимание, что все файлы и папки, создаваемые в системе по умолчанию будут иметь владельцем пользователя, который их создаёт, а группой-владельцем — основную группу этого пользователя. Такое поведение изменить нельзя. Чтобы избежать проблем с неверно присвоенным папке владельцем в будущем запускайте программу, которая создаёт папку или файл от имени пользователя, которому папка должна принадлежать. Сделать это очень просто с помощью sudo. Например, для пользователя losst:
sudo -u losst ./script.sh
Как видите, поменять владельца папки в Linux можно очень просто. Для этого достаточно выполнить несколько команд в терминале или сделать пару щелчков мышкой.
Источник
Права доступа к файлам в Linux
В операционной системе Linux есть много отличных функций безопасности, но она из самых важных — это система прав доступа к файлам. Linux, как последователь идеологии ядра Linux в отличие от Windows, изначально проектировался как многопользовательская система, поэтому права доступа к файлам в linux продуманы очень хорошо.
И это очень важно, потому что локальный доступ к файлам для всех программ и всех пользователей позволил бы вирусам без проблем уничтожить систему. Но новым пользователям могут показаться очень сложными новые права на файлы в linux, которые очень сильно отличаются от того, что мы привыкли видеть в Windows. В этой статье мы попытаемся разобраться в том как работают права файлов в linux, а также как их изменять и устанавливать.
Основные права доступа к файлам в Linux
Изначально каждый файл имел три параметра доступа. Вот они:
- Чтение — разрешает получать содержимое файла, но на запись нет. Для каталога позволяет получить список файлов и каталогов, расположенных в нем;
- Запись — разрешает записывать новые данные в файл или изменять существующие, а также позволяет создавать и изменять файлы и каталоги;
- Выполнение — вы не можете выполнить программу, если у нее нет флага выполнения. Этот атрибут устанавливается для всех программ и скриптов, именно с помощью него система может понять, что этот файл нужно запускать как программу.
Но все эти права были бы бессмысленными, если бы применялись сразу для всех пользователей. Поэтому каждый файл имеет три категории пользователей, для которых можно устанавливать различные сочетания прав доступа:
- Владелец — набор прав для владельца файла, пользователя, который его создал или сейчас установлен его владельцем. Обычно владелец имеет все права, чтение, запись и выполнение.
- Группа — любая группа пользователей, существующая в системе и привязанная к файлу. Но это может быть только одна группа и обычно это группа владельца, хотя для файла можно назначить и другую группу.
- Остальные — все пользователи, кроме владельца и пользователей, входящих в группу файла.
Именно с помощью этих наборов полномочий устанавливаются права файлов в linux. Каждый пользователь может получить полный доступ только к файлам, владельцем которых он является или к тем, доступ к которым ему разрешен. Только пользователь Root может работать со всеми файлами независимо от их набора их полномочий.
Но со временем такой системы стало не хватать и было добавлено еще несколько флагов, которые позволяют делать файлы не изменяемыми или же выполнять от имени суперпользователя, их мы рассмотрим ниже:
Специальные права доступа к файлам в Linux
Для того, чтобы позволить обычным пользователям выполнять программы от имени суперпользователя без знания его пароля была придумана такая вещь, как SUID и SGID биты. Рассмотрим эти полномочия подробнее.
- SUID — если этот бит установлен, то при выполнении программы, id пользователя, от которого она запущена заменяется на id владельца файла. Фактически, это позволяет обычным пользователям запускать программы от имени суперпользователя;
- SGID — этот флаг работает аналогичным образом, только разница в том, что пользователь считается членом группы, с которой связан файл, а не групп, к которым он действительно принадлежит. Если SGID флаг установлен на каталог, все файлы, созданные в нем, будут связаны с группой каталога, а не пользователя. Такое поведение используется для организации общих папок;
- Sticky-bit — этот бит тоже используется для создания общих папок. Если он установлен, то пользователи могут только создавать, читать и выполнять файлы, но не могут удалять файлы, принадлежащие другим пользователям.
Теперь давайте рассмотрим как посмотреть и изменить права на файлы в Linux.
Как посмотреть права доступа к файлам в Linux
Конечно, вы можете посмотреть права доступа к файлам в Linux с помощью файлового менеджера. Все они поддерживают эту функцию, но так вы получите неполную информацию. Для максимально подробной информации обо всех флагах, в том числе специальных, нужно использовать команду ls с параметром -l. Все файлы из каталога будут выведены в виде списка, и там будут показаны все атрибуты и биты.
Чтобы узнать права на файл linux выполните такую команду, в папке где находится этот файл:
За права файлов в linux тут отвечают черточки. Первая это тип файла, который рассмотрен в отдельной статье. Дальше же идут группы прав сначала для владельца, для группы и для всех остальных. Всего девять черточек на права и одна на тип.
Рассмотрим подробнее, что значат условные значения флагов прав:
- — — нет прав, совсем;
- —x — разрешено только выполнение файла, как программы но не изменение и не чтение;
- -w- — разрешена только запись и изменение файла;
- -wx — разрешено изменение и выполнение, но в случае с каталогом, вы не можете посмотреть его содержимое;
- r— — права только на чтение;
- r-x — только чтение и выполнение, без права на запись;
- rw- — права на чтение и запись, но без выполнения;
- rwx — все права;
- —s — установлен SUID или SGID бит, первый отображается в поле для владельца, второй для группы;
- —t — установлен sticky-bit, а значит пользователи не могут удалить этот файл.
В нашем примере, файл test1 имеет типичные разрешения для программ, владелец может все, группа только чтение и выполнение, а все остальные — только выполнение. Для test2 дополнительно установлен флаг SUID и SGID. А для папки test3 установлен Sticky-bit. Файл test4 доступный всем. Теперь вы знаете как посмотреть права на файл linux.
Как изменить права файла в Linux
Чтобы изменить права на файл в linux вы можете использовать утилиту chmod. Она позволяет менять все флаги, включая специальные. Рассмотрим ее синтаксис:
$ chmod опции категория действие флаг файл
Опции сейчас нас интересовать не будут, разве что только одна. С помощью опции -R вы можете заставить программу применять изменения ко всем файлам и каталогам рекурсивно.
Категория указывает для какой группы пользователей нужно применять права, как вы помните доступно только три категории:
- u — владелец файла;
- g — группа файла;
- o — другие пользователи.
Действие может быть одно из двух, либо добавить — знак «+», либо убрать — знак — «-«. Что касается самих прав доступа, то они аналогичны выводу утилиты ls: r — чтение, w — запись, x — выполнение, s — suid/sgid, в зависимости от категории, для которой вы его устанавливаете, t — устанавливает sticky-bit. Например, всем пользователям полный доступ к файлу test5:
chmod ugo+rwx test5
Или заберем все права у группы и остальных пользователей:
chmod go-rwx test5
Дадим группе право на чтение и выполнение:
chmod g+rx test5
Остальным пользователям только чтение:
Для файла test6 установим SUID:
А для test7 — SGID:
Посмотрим что получилось:
Как видите, изменить права на файл в Linux очень просто. К тому же вы можете изменить основные права с помощью файлового менеджера.
Выводы
Вот и все, теперь вы знаете не только что такое права доступа к файлам в Linux, но и как их посмотреть, и даже как их изменить. Это очень важная тема, в которой действительно стоит разобраться новичкам, чтобы использовать свою систему более полноценно. Если у вас остались вопросы, спрашивайте в комментариях!
На завершение хочу предложить неплохое видео про права доступа в Linux:
Источник