Как дать права группы linux

Как дать права на папку пользователю Linux

Система прав доступа к файлам и папкам в Linux организована очень интересно. Права разделяются на три категории: права владельца, права группы файла и права всех остальных. Прочитать подробнее про права в Linux можно в отдельной статье.

Иногда возникает необходимость дать определенному пользователю или программе возможность доступа к папке. На первый взгляд, это может показаться сложным, но решается все довольно просто. В этой статье мы разберем как дать права на папку пользователю Linux.

Права пользователя на папку Linux

Как я уже сказал, права делятся на три категории для владельца, для группы и для всех остальных. Таким образом, мы можем дать пользователю доступ к папке несколькими способами:

  • Изменить права для всех — тогда все пользователи получат доступ к нашей папке, в том числе и нужный пользователь. Но, обычно, так никто не делает, потому что это небезопасно и в производственных системах важные данные могут попасть в чужие руки;
  • Изменить владельца папки на нашего пользователя — по умолчанию владелец имеет полные права на папку, то есть запись и чтение. Если мы сделаем владельцем нашего пользователя, то он автоматически получит все права, а другие пользователи по-прежнему не смогут получить доступ к папке. Но такой вариант тоже не совсем правильный, потому что, обычно, у папки уже есть владелец и изменив владельца мы уберем у него доступ;
  • Добавить к папке группу и добавить в нее пользователя — самый верный путь. Файл или папка может принадлежать определенной группе пользователей, но только одной, и мы можем установить для этой группы отличающиеся от владельца права. Но в группу можно добавить несколько пользователей, поэтому мы никого не оставляем без доступа. По умолчанию, для всех файлов устанавливается группа владельца, но это можно очень просто изменить.

Теперь давайте разберем как это реализуется на практике. Допустим, у нас есть папка /storage, владельцем которой является пользователь /root:

ls -l / | grep storage

У папки такие права, что записывать в нее данные может только root, а другие пользователи могут их только смотреть. Нам надо предоставить к ней доступ на запись и чтение пользователю sergiy. Сейчас у него такого доступа нет:

Давайте создадим группу storage и добавим в нее пользователя sergiy:

sudo groupadd storage
sudo usermod -aG storage sergiy

Смотрим список групп нашего пользователя:

После добавления пользователя в группу нужно перелогиниться, чтобы система увидела это изменение. Затем меняем группу нашей папки на storage:

sudo chgrp storage /storage

Если нужно дать права на папку в Linux еще какому-нибудь пользователю, то достаточно добавить его в эту группу. Посмотрим список пользователей группы:

Теперь наша папка выглядит вот так:

ls -l / | grep storage

Осталось подправить права для группы, нужно дать разрешение на чтение и запись:

chmod g+rw /storage

Затем пользователь sergiy сможет записывать и читать файлы из этой папки, а все остальные пользователи только читать.

Выводы

В этой небольшой статье мы рассмотрели дать права пользователю linux на доступ к папке. Для серверов это может быть достаточно частой задачей, поскольку пользователи — это не только люди, использующие систему, но и программы, выполняемые от имени того или иного пользователя. А это создает еще одно применение для этой системы прав. Если у вас остались вопросы, спрашивайте в комментариях!

Источник

Как изменить Права Доступа в Linux

Введение

В этом руководстве вы научитесь изменять права доступа в Linux / Unix и устанавливать нового владельца файла/папки через командную строку. Существует 2 базовые команды, которые могут быть использованы для данных целей: chmod и chown.

Прокачайте ваш Linux сервер, воспользовавшись скидками на VPS-хостинг в Hostinger!

Что вам понадобится

Перед тем, как вы начнете это руководство, вам понадобится следующее:

  • Доступ к командной строке

Шаг 1 – Как изменить права доступа в Linux через командную строку

chmod – эта команда используется для изменения прав доступа к файлу или папке. Каждый файл имеет типы пользователей, которые могут с ним взаимодействовать:

Тип Объяснение
Владелец (owner) Пользователь, создавший и владеющий данным файлом или папкой.
Группа (group) Все пользователи, члены одной группы.
Другие (other) Все другие пользователи в системе, не являющиеся ни владельцами, ни членами группы.

Команда ls -l, может быть использована для отображения прав доступа и владельца. К примеру, команда ls -l file1.txt отобразит:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

  • “-rwxr–rw-“ – эта часть строки показывает права доступа. Здесь 4 главные буквы на которые вам надо обратить внимание: r,w,x,d. d означает, что тип файла — это каталог. В нашем примере, такой буквы нет (она стояла бы первой в строке), здесь вместо нее стоит символ “-“ (который в основном означает “нет”). Буква x означает разрешение на выполнение файла или папки (это разрешение необходимо для входа в папку). Буква w означает разрешение на запись файла или папки (редактирование, удаление и т.д.) И наконец последняя буква r, которая означает чтение. Если у вас есть права на чтение файла, вы можете прочесть содержимое файла, но не сможете предпринять другие действия (к примеру, вы можете прочитать код скрипта, но не сможете выполнить его).
  • 1 – число хард связи. Проще говоря, хард связь это дополнительное имя для существующего файла.
  • user user – это значение показывает владельца файла и его группу.
  • 0 – это значение показывает размер файла.
  • Jan 19 12:59 – отображает дату последнего изменения.
  • file1.txt – предоставляет имя файла или папки.

Хорошо, теперь давайте вернемся к команде chmod. Это команда позволяет нам изменить права доступа к файлу или папке. Мы научим вас, как это сделать просто складывая номера. Каждое из прав доступа имеет свой собственный номер:

  • r (чтение) – 4
  • w (запись) – 2
  • x (выполнение) – 1

К примеру, если мы хотим изменить права доступа к файлу file1.txt на эти:

-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt

Мы должны написать следующую команду:

Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для получения числа 7 — сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа (чтение, запись, выполнение — rwx). Первый номер устанавливает права доступа для владельца файла. Второй номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца. Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение (4) и запись (2) файла. Третья часть в команде (file1.txt) – это имя файла для которого мы изменяем права доступа.

Еще один пример:

эта команда даст все права для каждого типа пользователей (владелец, группа и другие).

Вот список самых наиболее распространённых прав доступа для файлов:

Значение Цифровое значение Объяснение
-rw——- 600 Владелец может читать и записывать файл.
-rw-r–r– 644 Владелец может читать и записывать файл, группа и другие могут только читать.
-rw-rw-rw- 666 Владелец, группа и другие могут читать и записывать.
-rwx—— 700 Владелец может читать, записывать и выполнять, группа и другие не имеют никаких прав доступа.
-rwx–x–x 711 Владелец может читать, записывать и выполнять, группа и другие могут только выполнять.
-rwxr-xr-x 755 Владелец может читать, записывать и выполнять, группа и другие могут читать и выполнять.
-rwxrwxrwx 777 Все типы пользователей могут читать, записывать и выполнять.

Наиболее распространенные права доступа для каталогов:

Значение Цифровое значение Объяснение
drwx—— 700 Только владелец может читать и записывать в этом каталоге.
drwxr-xr-x 755 Владелец, группа и другие могут читать каталог, но только владелец может изменять содержимое.

Существуют и другие способы изменения прав доступа в Linux, используя команду chmod. Но нашей персональной рекомендацией станет, изучение одной из этих команд и её использование (в этом случае способ с номерами). Если вы хотите узнать больше о других путях изменения прав доступа, вы можете прочитать об этом здесь.

Шаг 2 – Изменение владельца файла или папки через командную строку

chown – команда используется для смены владельца файла или папки. Самый стандартный синтаксис для этой команды:

К примеру, если у нас есть файл “demo.txt” и мы хотим изменить владельца на “jerry” и группу владельца на “clients”, нам необходима эта команда:

Как вы видите, мы отделили владельца и группу владельца символом “:” (двоеточие). Если мы хотим поменять только владельца файла, используем этот код:

Мы просто убрали группу владельца и вписали нового владельца файла, в таком случае группа владельца останется без изменений.

Другой схожий пример, если мы хотим поменять только группу владельца:

В этом случае, группа владельца изменится на clients (владелец останется прежним).

Шаг 3 – Использование дополнительных опций с командами chmod и chown

Одна из основных опций работающая с обеими командами это -R, которая означает рекурсивный. Эта опция позволяет вам менять права доступа и владельца файла, заданной папки и ВСЕХ других файлов внутри нее.

ВАЖНО! Будьте очень осторожны с этой опцией, если вы используете ее неправильно, вы можете изменить права доступа и владельца ВСЕХ файлов в вашей системе, что приведет к ошибкам в работе и трате огромного количества времени на откат изменений.

  • “-f” – тихая или силовая опция. При использовании данной опции скроет большинство сообщений об ошибках.
  • “-v” – делает диагностику каждого файла затронутого командой.
  • “-c” – схожа с опцией -v, но предоставляет информацию только в случае реальных изменений.

Заключение

В этом руководстве вы научились, как изменить права доступа Linux и узнали команды для смены владельца папки или файла. Знание данных команд поможет вам в более удобном управлении вашим сервером. Если вы хотите продолжить изучение по данной теме, проверьте эти руководства:

Источник

Группы пользователей Linux

Основа распределения прав доступа в операционной системе Linux лежит на понятии пользователь. Пользователю-владельцу файла выдаются определенные полномочия для работы с ним, а именно на чтение, запись и выполнение. Также отдельно устанавливаются полномочия на чтение, запись и выполнение для всех остальных пользователей. Поскольку в Linux все есть файлом, то такая система позволяет регулировать доступ к любому действию в этой операционной системе с помощью установки прав доступа на файлы. Но еще при создании Linux, разработчики поняли, что этого явно недостаточно.

Поэтому и были придуманы группы пользователей. Пользователи могут объединяться в группы, чтобы уже группам выдавать нужные полномочия на доступ к тем или иным файлам, а соответственно и действиям. В этой статье мы рассмотрим группы пользователей в Linux, рассмотрим зачем они нужны, как добавить пользователя в группу и управлять группами.

Что такое группы?

Как я уже сказал группы в Linux появились еще в самом начале разработки этой операционной системы. Они были разработаны для того, чтобы расширить возможности управления правами. Разберем небольшой пример, возьмем организацию в которой есть только один компьютер, у нас есть администраторы и пользователи. У каждого человека свой аккаунт на нашем компьютере. Администраторы могут настраивать систему, пользователям же лучше не давать воли, чтобы что-то не сломали. Поэтому администраторы объединяются в группу admin, и ей дается доступ ко всему оборудованию, реально же ко всем файлам в каталоге dev, а пользователи, объеденные в группу users, и этой группе дается возможность читать и записывать файлы в общий каталог, с помощью которого они могут обмениваться результатами своей работы. Мы могли бы назначать права для каждого пользователя отдельно разрешая ему доступ к тому или иному файлу, но это слишком неудобно. Поэтому и были придуманы группы. Говорите, да ничего, можно назначить? Ну а теперь представьте что наши пользователи — это процессы. Вот тут вся краса групп выходит на передний план, группы используются не столько для обеспечения доступа для пользователей, сколько для управления правами программ, особенно их доступом к оборудованию. Для сервисов создаются отдельные группы и пользователь, от имени которого запущен он, сервис может состоять в нескольких группах, что обеспечивает ему доступ к определенным ресурсам.

А теперь давайте рассмотрим как посмотреть группы linux.

Группы в Linux

Все группы, созданные в системе, находятся в файле /etc/group. Посмотрев содержимое этого файла, вы можете узнать список групп linux, которые уже есть в вашей системе. И вы будете удивлены.

Кроме стандартных root и users, здесь есть еще пару десятков групп. Это группы, созданные программами, для управления доступом этих программ к общим ресурсам. Каждая группа разрешает чтение или запись определенного файла или каталога системы, тем самым регулируя полномочия пользователя, а следовательно, и процесса, запущенного от этого пользователя. Здесь можно считать, что пользователь — это одно и то же что процесс, потому что у процесса все полномочия пользователя, от которого он запущен.

Давайте подробнее рассмотрим каждую из групп, чтобы лучше понимать зачем они нужны:

  • daemon — от имени этой группы и пользователя daemon запускаютcя сервисы, которым необходима возможность записи файлов на диск.
  • sys — группа открывает доступ к исходникам ядра и файлам include сохраненным в системе
  • sync — позволяет выполнять команду /bin/sync
  • games — разрешает играм записывать свои файлы настроек и историю в определенную папку
  • man — позволяет добавлять страницы в директорию /var/cache/man
  • lp — позволяет использовать устройства параллельных портов
  • mail — позволяет записывать данные в почтовые ящики /var/mail/
  • proxy — используется прокси серверами, нет доступа записи файлов на диск
  • www-data — с этой группой запускается веб-сервер, она дает доступ на запись /var/www, где находятся файлы веб-документов
  • list — позволяет просматривать сообщения в /var/mail
  • nogroup — используется для процессов, которые не могут создавать файлов на жестком диске, а только читать, обычно применяется вместе с пользователем nobody.
  • adm — позволяет читать логи из директории /var/log
  • tty — все устройства /dev/vca разрешают доступ на чтение и запись пользователям из этой группы
  • disk — открывает доступ к жестким дискам /dev/sd* /dev/hd*, можно сказать, что это аналог рут доступа.
  • dialout — полный доступ к серийному порту
  • cdrom — доступ к CD-ROM
  • wheel — позволяет запускать утилиту sudo для повышения привилегий
  • audio — управление аудиодрайвером
  • src — полный доступ к исходникам в каталоге /usr/src/
  • shadow — разрешает чтение файла /etc/shadow
  • utmp — разрешает запись в файлы /var/log/utmp /var/log/wtmp
  • video — позволяет работать с видеодрайвером
  • plugdev — позволяет монтировать внешние устройства USB, CD и т д
  • staff — разрешает запись в папку /usr/local

Теперь, когда вы знаете зачем использовать группы в linux и какие они есть по умолчанию, рассмотрим управление группами LInux.

Управление группами Linux

Управлять группами можно и с помощью графического интерфейса. В KDE есть программа Kuser специально предназначенная для этого, в Gnome это выполняется с помощью настроек системы. Кроме того, в популярных дистрибутивах есть отдельные инструменты, такие как YaST в OpenSUSE или Настройки Ubuntu. Но с графическим интерфейсом я думаю вы разберетесь. А мы рассмотрим управление группами linux через терминал. Сначала разберемся с файлами, а уже потом с пользователями.

При создании файла ему назначается основная группа пользователя который его создал. Это просто например:

Здесь вы можете видеть, что владелец всех папок sergiy и группа тоже sergiy. Правильно, так как эти пользователи были созданы мной. Но давайте пойдем дальше:

Здесь мы видим что дисковым устройствам sd* назначена группа disk, а это все значит, что пользователь, состоящий в этой группе, может получить к ним доступ. Или еще пример:

Все как мы рассматривали в предыдущем пункте. Но эти группы могут быть не только установлены системой, но и вы сами вручную можете менять группы файлов для этого есть команда chgrp:

chgrp имя_группы имя_файла

Например создадим файл test:

И изменим для него группу:

Теперь этот файл смогут прочитать все пользователи из группы adm.

Если вы хотите создать группу linux, это можно сделать командой newgrp:

sudo groupadd test

С пользователями ситуация немного сложнее. Пользователь имеет основную группу, она указывается при создании, а также несколько дополнительных. Основная группа отличается от обычных тем, что все файлы в домашнем каталоге пользователя имеют эту группу, и при ее смене, группа этих каталогов тоже поменяется. Также именно эту группу получают все файлы созданные пользователем. Дополнительные группы нужны, чтобы мы могли разрешить пользователям доступ к разным ресурсам добавив его в эти группы в linux.

Управление группами Linux для пользователя выполняется с помощью команды usermod. Рассмотрим ее синтаксис и опции:

$ usermod опции имя_пользователя

  • -G — дополнительные группы, в которые нужно добавить пользователя
  • -g изменить основную группу для пользователя
  • -R удалить пользователя из группы.

Добавить пользователя в группу можно командой usermod:

sudo usermod -a -G имя_группы имя_пользователя

Можно добавить пользователя в группу linux временно, командой newgrp. Откроется новая оболочка, и в ней пользователь будет иметь нужные полномочия, но после закрытия все вернется как было:

sudo newgrp имя_группы

Для примера давайте добавим нашего пользователя в группу disk, чтобы иметь прямой доступ к жестким дискам без команды sudo:

sudo usermod -G -a disk sergiy

Теперь вы можете монтировать диски без команды sudo:

mount /dev/sda1 /mnt

Посмотреть группы linux, в которых состоит пользователь можно командой:

Также можно использовать команду id. В первом случае мы просто видим список групп linux, во втором дополнительно указанны id группы и пользователя. Чтобы включить пользователя в группу Linux, для основной группы используется опция -g:

sudo usermod -g test sergiy

Теперь все каталоги в домашней папке пользователя имеют группу test. Удалить пользователя из группы в linux можно той же командой с опцией R:

sudo usermod -R группа пользователь

Ну и наконец, удалить группу Linux можно командой:

sudo delgroup имя_группы

Выводы

Как видите, группы пользователей Linux не такое уж сложное дело. Вы можете в несколько команд добавить пользователя в группу linux или дать ему полномочия на доступ к определенным ресурсам. Если вы надумали изменять группы для системных устройств, тут все не так просто, но в этом вопросе вам поможет статья про правила udev в linux. Теперь управление группами Linux вам не кажется таким сложным. Если остались вопросы, пишите в комментариях!

Источник

Читайте также:  Создание события windows forms
Оцените статью