- linux Владельцы (пользователи и группы) папок и файлов — как их узнать, менять и понять в терминале (консоли, рекурсивная смена)
- Primary tabs
- Владельцы в Linux — кто они
- Как узнать владельца файла или папки
- Как сменить владельца
- Рекурсивная смена владельцев для всего содержимого папки
- Как изменить в Linux права на папку — настройка доступа
- Как просмотреть в Linux права на папку
- Как дать права на папку Linux
- Что значит «символьная форма» прав доступа на каталоги и файлы в Linux
- Как определить владельца группы, файла или директории в Линукс
- Изменить права доступа к папке Linux в символьном режиме
- Изменение прав доступа к папке Linux в абсолютном режиме
- Как назначить владельца папки или файла в Линукс
- Как просматривать и изменять права доступа в Linux
- Смотрим права доступа
- Как в Linux определить и заменить пользователя и группу
- Меняем права в Линукс для объектов ФС
linux Владельцы (пользователи и группы) папок и файлов — как их узнать, менять и понять в терминале (консоли, рекурсивная смена)
Primary tabs
Владельцы в Linux — кто они
В Linux у ресурса (файла или папки) есть как бы два «владельца»:
- владеющий пользователь
- владеющая группа пользователей
Т.е. файлом может владеть (и всегда владеет какой-то) пользователь user1 и какая-то группа group22, при этом нужно понимать пользователь user1 в общем случае может и не состоять в группе group22.
Как узнать владельца файла или папки
Используйте команду ls c флагами -la, перейдете в папку с содержимым, для которого вы хотите узнать владельцев:
ответом может быть что-то вроде:
- myfile1 имеет владельцев: юзера qwer и группу games
- myfile2 имеет владельцев: юзера qwer и группу с тами же именем
Также можно указать путь к файлу, чтобы узнать его владельца:
ответ в моем случае:
Как сменить владельца
Сменить владельца можно с помощью команды chown, причем её формат такой:
chown [парараметры] имяпользователя:имягруппы путькресурсу
Например смена владельца-пользователя файла на user2:
Смена владеющей группы с текущей на games:
Можно и одной командой сменить и владеющего пользователя и владеющую группу на указанные:
Т.е. имя пользователя от имени группы, если они идут рядом отделяется в данном случае двоеточием.
ПРИМЕЧАНИЕ: есть ограничения логичные на смену владельцев, а именно:
- 1) чтобы сменить владельца-пользователя на другого надо выполнять chown под суперпользователем.
- 2) чтобы сменить группу-владельца, надо, чтобы пользователь состоял и в текущей группе и в той, на которую надо сменить (т.е. в обеих), в противном случае опять же потребуются права суперпользователя.
Рекурсивная смена владельцев для всего содержимого папки
Делаем пользователя training владельцем для всего содержимого папки /usr/lib/hadoop-0.20-mapreduce/input такой комадой:
а папки /usr/lib/hadoop так:
— как показывает практика флаг -R можно писать и имени пользователя и/или группы)
Источник
Как изменить в Linux права на папку — настройка доступа
Операционная система Linux обладает достаточно большим и широким функционалом по отношению безопасности файлов и папок, находящихся на жестком диске. Наиболее важная из них – система прав доступа к файлам. Линукс, как одно из продолжений ядра Unix, изначально проектировалась и позиционировалась в качестве многопользовательской системы, где права доступа и функции четко разграничены. Именно поэтому права доступа к каталогам и файлам продуманы крайне хорошо. Необходимо разобраться, как изменить владельца файла Linux, и каким способом можно дать себе некоторые права на работу с данными.
Как просмотреть в Linux права на папку
Стоит сказать, что система прав Линукс (а есть она и в Ubuntu, и в Mint, и в Kali) существует не просто так. Если бы у всех программ и пользователей операционной системы имелся локальный доступ ко всем ее файлам, то это позволило бы вредоносным программам под чистую снести и удалить ОС. Для новичков это может показаться глупым и смешным, но в то же самое время сложным, но это работает. И работает крайне хорошо. Система прав не похожа на ту, которую привыкли видеть пользователи в Microsoft Windows, но это не значит, что в ней невозможно разобраться.
Система безопасности файлов и папок в Линукс находится на крайне достойном уровне
Права доступа делятся на несколько категорий:
- Возможность чтения (R).
- Права записи и изменения (W).
- Запуск файла (X).
Если говорить о папке, то под правами доступа обычно подразумевают возможность открывать каталог и просматривать его содержимое. Администратор операционной системы способен разделить пользователей на специальные группы, которые могут иметь различные права. Некоторым пользователям привилегии могут быть выданы индивидуально.
Для того чтобы узнать владельца папки Linux, необходимо перейти в консоль (командную строку) и ввести команду «ls -l имя каталога» без кавычек. «Имя каталога» — это наименование той папки, права которой следует узнать. Пример использования: ls -l System.
Важно! В ответ будет выведена примерно такая строка «-r-r— 1 user 2115693 Jun 11 12:11 System». Параметры обозначают права доступа для самого пользователя и его группы, в которой он состоит, а также время их получения.
Наиболее часто применяемые абсолютные параметры для изменения привилегий доступа к данным
Как дать права на папку Linux
Операционные системы Линукс позволяют давать права на каталог с помощью команды «chmod». Выполнена она может быть символьным или абсолютным видом. В первом случае присваиваются параметры r, w или x, которые определяют, можно ли тому или иному пользователю читать, просматривать или изменять данные.
Гораздо практичнее воспользоваться абсолютным способом. Он основан на команде «rw-r—». Эти символы означают то, что User способен лишь читать и изменять файл (ключи r и w соответственно). При этом участники группы, в которой он состоит. Могут лишь просматривать содержимое.
Важно! Любой другой пользователь просто не получит доступа к данным, если он не в группе.
Для работы с абсолютным редактированием прав, необходимо переводить параметры в восьмеричную систему счисления. К примеру, если человек может читать файл или папку, то это «1». Если еще и редактировать, то это тоже «1». Запуск ограничен, поэтому «0». Получается число «110». Перевод его в восьмеричную систему дает результат «6». После этого по образцу шифруют права группы и посторонних людей. Получается три цифры, которые будут использованы в команде «chmod ХХХ имя_файла», где ХХХ – цифры привилегий в восьмеричной системе, а «имя файла» – наименование папки или файла, права которых редактируются.
Таблица перевода параметров из двоичной в восьмеричную систему
Что значит «символьная форма» прав доступа на каталоги и файлы в Linux
После выполнения команд на получение информации о привилегиях на доступ к файлам или папкам может появиться сообщение типа «drwxrwxr-x». Это так называемая символьная форма прав доступа Линукс. Следует разобрать ее подробнее.
Первый символ – это тип данных файла. Если указан дефис («-»), то это простой файл, если буква «d», то это папка, каталог или директория, а если «l», то символическая ссылка (symbolic link). Бывают и другие символы:
- «b» – документ блочного устройства;
- «с» – файл символьного девайса;
- «s» – гнездо домена;
- «p» – канал с именем.
Остальные девять символов означают привилегии доступа для групп и отдельных пользователей. Представленный пример состоит из трех групп «rwx», «rwx» и «r-x». Первая последовательность – права владельца, вторая – системной группы, а третья – привилегии для всех остальных пользователей.
Как определить владельца группы, файла или директории в Линукс
После просмотра этой информации у человека возникает резонный вопрос: как узнать владельца документа или каталога операционной системы. Для этого необходимо воспользоваться все теми же командами, которые были указаны выше: «ls –l» или «ls –l название каталога». В первом случае необходимо перейти в папку и ввести команду, а во втором ее достаточно указать, находясь в любом другом месте. После выполнения команды будет выведена строка. Первыми ее параметрами будут символьные формы, а затем имя владельца файла и название группы.
Важно! Если человек не является хозяином каталога или файла, но входит в группу, то он будет обладать всеми привилегиями на документ, которые определены для той или иной группы.
Вывод символьной формы при проверке привилегий доступа
Изменить права доступа к папке Linux в символьном режиме
Для того чтобы изменить привилегии доступа к файлам и каталогам в символьном режиме, необходимо выполнить команду «chmod personsOperatorRights имя_файла_или_имя_директории», где вместо слова «persons» вставляют такие ключи:
- «u» – пользователи и владельцы файлов и директорий;
- «g» – группы в которые входит пользователь;
- «o» – остальные люди, пользующиеся компьютером;
- «a» – определение изменений для всех категорий юзеров вместе.
Символ определяет сущность, которой назначаются или с которой снимаются права доступа. Вместо слова «operator» могут быть такие символы: «+» (добавить привилегии), «-» (убрать привилегии) и «=» (установить привилегии). «Rights» могут иметь такие значения: «r» – чтение, «w» – редактирование, «x» – выполнение. Если нужно дать все и сразу, топ прописывают «rwx» без пропусков, типе и пробелов.
Поменять владельца файла Linux не составит большого труда
Изменение прав доступа к папке Linux в абсолютном режиме
Абсолютный режим более прост в использовании. Он также позволяет посмотреть и изменить права пользователя в Linux. Как уже стало понятно, оно основано на изменении конфигураций через числовое представление их параметров.
Взять, к примеру, строку терминала «chmod 644 имя_файла». Она обозначает то, что владелец может спокойно редактировать и читать документ, а все другие, способны лишь просматривать его содержимое. А вот код «666» говорит о том, что чтение и перезапись документа доступны всем, включая тех пользователей, которые не принадлежат к определенным группам.
Как назначить владельца папки или файла в Линукс
Изменить администратора того или иного файла или директории можно с помощью привычной команды «chown». Шаблон ее использования выглядит следующим образом: «sudo chown имя_нового_владельца:имя_новой_группы имя_файла_или_директории». Она требует привилегий админа для ее запуска и выполнения.
То же самое, но для изменения только группы: «sudo chown :имя_новой_группы имя_файла_или_директории». Для определения имени активного пользователя применяют команду «whoami», а для группы – «groups». Вывести список всех пользователей можно по строке «users».
Узнавать полные привилегии можно через специальную команду
В этом материале было рассмотрено, как изменить права доступа к файлу или папке на Linux. Все достаточно просто, так как это базовый функционал операционной системы, и знаком с ним должен быть каждый человек, работающий на Unix-системах. Сменить или проверить привилегии людей на те или иные документы можно с помощью банальных команд.
Источник
Как просматривать и изменять права доступа в Linux
Если вы имеете за плечами хотя бы небольшой опыт работы в Windows, то наверняка вам уже приходилось сталкиваться с такой штукой как права доступа. Последние являются одной из ключевых функций безопасности, отсутствие прав доступа означало бы полную беззащитность системы перед внешними атаками и вирусами, которые с легкостью смогли бы перезаписать любой системный файл. Полагаем, вы уже разобрались, как их задавать, впрочем, иначе не могло и быть, ведь устроены они довольно просто, а самое главное, логично.
Владельцем файла в Windows может быть либо операционная система, либо пользователь, который в свою очередь может иметь права гостя, обычного юзера и администратора, при этом возможности пользователя зависят от его статуса. Например, обычный пользователь не может изменять конкретный файл, тогда как администратор волен делать с файлом всё что ему заблагорассудится. Но когда пользователь Windows пытается применить ту же логику к Linux, то непременно сталкивается с трудностями понимания организации прав доступа.
Удивляться тут особо не приходится, ибо она основательно отличается от того, с чем приходится сталкиваться пользователю в Windows. Так, одним из ключевых отличий распределения прав доступа в Linux является назначение каждому файлу не только хозяина, но и группы. Кроме того, в линукс-системах имеются особые права доступа, позволяющие юзерам запускать приложения от имени суперпользователя без ввода его пароля, но обо всём по порядку.
На базовом уровне в Linux используются три параметра доступа к файлам. К ним относятся:
- Чтение — этот параметр позволяет просматривать содержимое файлов и директорий, но не вносить в них изменения.
- Запись — наличие этого параметра позволяет вносить в файл изменения и создавать/удалять файлы и папки в каталогах.
- Выполнение — особый параметр, предоставляющий разрешение на запуск исполняемых файлов — приложений и скриптов. Без этого ключа файлы приложений не будут идентифицированы как исполняемые.
Кроме того, в Linux имеется три категории пользователей, для которых могут быть изменены права доступа.
Таковыми категориями являются:
- Владелец — входящие в эту группу пользователи обычно имеют полный набор прав на созданные ими файлы, а также на файлы, для которых пользователь назначен владельцем.
- Группа — категория пользователей, связанная с файлом. По умолчанию группа создается для каждого юзера, при этом она имеет то же имя и ID , что и пользователь.
- Все остальные — эту категорию составляют все остальные пользователи, кроме владельца и не привязанных к файлу пользователей групп. Исключением является только суперпользователь (root) , который имеет полный доступ ко всем файлам независимо от их атрибутов.
Стоит также упомянуть о специальных правах доступа, так называемых битах, расширяющих полномочия обычных пользователей.
- SUID — заменяет ID запускающего программу пользователя на ID другого юзера, того же Root .
- SGID — работает так же, как и SUID , только при этом запускающий файл пользователь будет считаться членом группы, с которой этот файл связан.
- Sticky-bit — в настоящее время флаг утратил актуальность, раньше он применялся при создании общих папок. Файлы, для которых он установлен, можно читать и исполнять, но нельзя удалять, если только желающий удалить файл не является его владельцем.
Смотрим права доступа
Но довольно теории, давайте теперь посмотрим, как просматривать и изменять права доступа в Linux. Узнать права доступа для файла или папки можно в свойствах объекта на вкладке «Права», но для получения полной картины лучше использовать терминал.
Откройте его в каталоге с файлами и выполните такую команду:
ls -l
Если нужно просмотреть права конкретного файла, к команде через пробел нужно добавить имя файла, например, ls -l NTUSER.DAT , если речь идет о папке, то указывается ее имя. В результате вы получите в терминале такую картинку.
Обратите внимание на набор из десяти символов в начале каждой строки, это символьное обозначение прав доступа в Линукс.
Первый символ обозначает тип данных, например, дефис означает, что вы имеете дело с обычным файлом, смотрите скриншоты ниже.
В следующих девяти символах «закодированы» права доступа. На самом деле, права указаны в каждой тройке символов, то есть полученную строку rwxrwxrwx можно представить как rwx—rwx—rwx. Первая группа — это права доступа хозяина объекта, вторая группа — это права системной группы, третья тройка символов означает права на файл для всех прочих пользователей.
А вот что означают сами символы:
Зная обозначения, можно легко разобрать любую комбинацию. Например, rwx означает, что пользователь или группа имеет права на чтение, запись и исполнение, r-x — права на доступ и исполнение, но с запретом на изменение или удаление, rw- станет означать наличие прав на чтение и запись, но не право запускать файл как исполняемый.
Как в Linux определить и заменить пользователя и группу
Как вы уже знаете, права в Linux могут иметь не только пользователи, но и группы, в связи с чем может возникнуть вопрос: а как определить имя владельца и название группы? Элементарно, их выводит та же команда ls -l . В третьей колонке слева указано имя владельца объекта, название же связанной с объектом группы указано в четвертой колонке.
При желании вы можете заменить хозяина и группу для файла или папки, воспользовавшись такой командой:
sudo chown u:g file
chown — это сама команда замены, u — имя пользователя, которому желаем делегировать права, g — название группы, а file — название самого файла. В данном случае мы передаем права суперпользователю — root .
Меняем права в Линукс для объектов ФС
Если за замену пользователя и группы в Линукс отвечает команда chown , то для изменения прав доступа в системе предусмотрена команда chmod .
Она имеет следующий синтаксис:
chmod категория действие права объект
Что такое категории вы уже знаете, это владельцы файлов, группы и все остальные пользователи. Обозначаются категории как u, g и o соответственно. Для сразу всех категорий используется обозначение a. Категории можно группировать, например, ug станет означать, что мы хотим изменить права на объект для владельца и группы.
Действие — это изменение прав. Для присвоения прав используется ключ «=», для добавления указывается флаг «+», чтобы забрать права, нужно использовать ключ «-». С обозначениями прав вы также уже знакомы. Всё, можно формировать команды.
Сделаем для примера файл ntuser.ini недоступным для редактирования и исполнения:
chmod ug-wx ntuser.ini
В результате символьное представление прав стало таким: r—r—rwx. Как видите, права на файл были изменены для текущих владельца и группы, но не для категории «Все остальные» , если же бы мы вместо ug указали ugo или a, право на чтение и исполнение потеряли бы все категории. Обратите внимание, что в данном случае мы не использовали sudo в начале команды, поскольку и так являемся владельцем. Если же бы изменяли права root или другого пользователя, использование sudo было бы обязательным.
Ну вот, теперь в самых общих чертах вы знаете, чем отличаются организация прав доступа в Линукс от организации прав доступа в Windows, а самое главное, умеете просматривать и изменять права. Уверены, эти знания очень вам пригодятся, позволяя максимально эффективно управлять доступом к пользовательским и системным файлам.
Источник