Linux ограничить доступ для пользователей

Как ограничить доступ пользователя в Linux

Как ограничить доступ пользователя в Linux

Представьте себе этот сценарий. Вы хотите разрешить пользователю выполнять только определенные задачи и выполнять определенные команды. Пользователь не должен изменять переменные / пути окружения. Он / она не может посещать другие каталоги, кроме своего домашнего каталога, и не может переключаться на других пользователей и т. Д. Пользователь может выполнять только несколько команд, назначенных системным администратором. Это возможно? Да! Здесь на помощь приходит Restricted Shell . Используя Restricted Shell, мы можем легко ограничить доступ пользователя к системе Linux. После того, как вы поместите пользователей в ограниченный режим оболочки, им разрешено выполнять только ограниченный набор команд. В этом кратком руководстве мы поговорим о том, как это сделать в Linux. Я тестировал это руководство на минимальном сервере CentOS 7. Однако он будет работать в большинстве Unix-подобных дистрибутивов.

Что такое Restricted Shell?

Во-первых, позвольте мне пояснить, что такое Restricted Shell. Это не отдельная оболочка, такая как Bash, Korn Shell и т. Д. Если вы запустите любую существующую оболочку, используя параметры «rbash», «—restricted», «-r», она станет оболочкой с ограничениями. Например, оболочку Bourne можно запустить как оболочку с ограниченным доступом с помощью команды bsh -r , а оболочку Korn — с помощью команды ksh -r .

  • Это не позволит вам выполнить команду cd . Так что никуда не денешься. Вы можете просто оставаться в текущем рабочем каталоге
  • Это не позволит вам изменять значения переменных окружения $PATH, $SHELL, $BASH_ENV или $ENV environmental variables.
  • Это не позволит вам выполнить программу, содержащую символ / (косая черта). Например, вы не можете запустить команду /usr/bin/uname или ./uname . Однако вы можете выполнить команду uname. Другими словами, вам разрешено запускать команды только по текущему пути
  • Вы не можете перенаправить вывод, используя ‘ > ’, ‘ >| ’, ‘ <> ’, ‘ >& ’, ‘ &> ’, and ‘ >> ’ операторы перенаправления.
  • Это не позволит вам выйти из ограниченного режима оболочки в сценариях.
  • Это не позволит вам отключить ограниченный режим оболочки с помощью ‘set +r’ или ‘set +o restricted’.

Это может быть очень полезно, когда большое количество пользователей используют общую систему. Итак, если вы хотите разрешить пользователям выполнять только определенные команды, Restricted Shell — один из способов сделать это.

Ограничьте доступ пользователей к системе Linux с помощью оболочки с ограничениями

Сначала создайте символическую ссылку под названием rbash из Bash, как показано ниже. Следующие команды следует запускать от имени пользователя root .

Затем создайте пользователя с именем «infoit» c rbash качестве его / ее оболочки входа по умолчанию.

Установите пароль для нового пользователя.

Создайте каталог bin внутри домашней папки нового пользователя.

Теперь нам нужно указать, какие команды может запускать пользователь.

Здесь я позволю пользователю запускать только команды «ls» , «mkdir» и «ping» . Вы можете назначить любые команды по вашему выбору.

Для этого выполните следующие команды:

Теперь вы понимаете, почему мы создали каталог bin на предыдущем шаге. Пользователи не могут запускать никакие команды, кроме трех вышеуказанных команд.

Затем запретите пользователю изменять .bash_profile .

Отредактируйте файл /home/infoit/.bash_profile :

Измените PATH как показано ниже.

Нажмите клавишу ESC и введите : wq, чтобы сохранить и закрыть файл.

Теперь, когда пользователь входит в систему, ограниченная оболочка (rbash) будет запускаться как оболочка входа по умолчанию и читать .bash_profile , который установит PATH в $HOME/bin, чтобы пользователь мог запускать только ls , mkdir и команды ping . Оболочка с ограничениями не позволяет пользователю изменять PATH , а разрешения на .bash_profile не позволяют пользователю изменять среду, чтобы обойти ограничения во время следующего сеанса входа в систему.

Читайте также:  Change settings windows firewall что это

Проверка Rbash

Теперь выйдите из системы от имени пользователя root и снова войдите в систему с вновь созданным пользователем, в нашем случае с ostechnix.

Затем запустите несколько команд, чтобы проверить, работает он или нет. Например, я хочу очистить Терминал.

Для этого я запустил:

Sample output:

Вы не можете использовать команду cd для перехода в другой каталог.

Пример вывода:

Вы также не можете перенаправить вывод с помощью оператора >.

Пример вывода:

Пользователь «infoit» может использовать только команды, назначенные вами (системным администратором, конечно). В нашем случае пользователь может выполнять команды ls, mkdir и ping.

Кроме этих трех команд, пользователь ничего не может выполнять. Он / она полностью под вашим контролем.

Разрешить пользователям новые команды

Если вы хотите назначить пользователю больше команд, выйдите из системы текущего пользователя и снова войдите в систему как пользователь root и назначьте команды, как показано ниже.

Например, чтобы позволить пользователю (т.е. ostechnix) выполнять команду rm , выполните следующую команду от имени пользователя root .

Теперь пользователь может использовать команду «rm».

Для получения дополнительных сведений см. Справочные страницы по приведенной ниже ссылке.

Источник

Ограничения пользователей в Linux с помощью rbash

RBash — это restricted shell bash, командная оболочка операционной системы семейства Unix, которая может ограничивать некоторые действия пользователей. Это может быть полезно, например, когда требуется ограничить доступ по SSH только рамками выполнения определенных задач и не дать пользователю доступ к системным файлам и приложениям.

Перечень встроенных ограничений rbash

Ограниченный командный интерпретатор rbash ведет себя аналогично bash, но следующие действия не разрешены или не выполняются:

  • запрещена смена текущего каталога командой cd
  • запрещено изменять переменные окружения PATH, SHELL, ENV, BASH_ENV
  • запрещен доступ к переменной SHELLOPTS
  • запрещено перенаправление вывода
  • запрещен вызов утилит, в названии которых присутствует хотя бы один символ «слэш» (/)
  • запрещен вызов команды exec для запуска другого процесса
  • запрещен ряд других команд, которые могут использовать сценарий для выполнения непредусмотренных действий
  • запрещен выход из ограниченного режима

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

Установка rbash

Rbash — это просто символьный линк, который по умолчанию отсутствует в Red Hat, Fedora, Centos, но пристутствет в Ubuntu.
Чтобы проверить установлен ли rbash или нет можно выполнить команду ниже, которая должна показать путь к rbash. Если в результате пусто, то rbash отсутствует.

Источник

Настройка прав доступа в Linux

В операционных системах, основанных на базе ядра Linux, присутствует инструмент настройки полномочий, который позволяет разделить права доступа между учетными записями. Благодаря этому выставляется ограничение на доступ к определенным файлам, директориям или приложениям. Всего существует три вида подобных прав — чтение, запись и выполнение. Любое из них может редактироваться отдельно под каждого зарегистрированного в ОС юзера с помощью специальных инструментов. Далее будет рассмотрено два метода конфигурации упомянутых параметров.

Настраиваем права доступа в Linux

Рассмотренные сегодня методы подойдут для всех дистрибутивов Линукс, поскольку они универсальны. Разве что первый способ будет недоступен тем юзерам, у кого нет установленного файлового менеджера, а управление системой производится исключительно через консоль. В таком случае сразу рекомендуем переходить ко второму варианту, где подробно расписано действие команды chmod. Другим пользователям, кто активно взаимодействует с графическим интерфейсом системы, советуем уделить время двум методам, ведь они имеют несколько разные возможности по настройке доступа.

Читайте также:  Как переустановить драйвер wifi для windows

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

Способ 1: Файловый менеджер

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

    Запустите файловый менеджер, найдите там необходимый файл или папку, щелкните на объекте правой кнопкой мыши и выберите «Свойства». Если отыскать элемент не получается, задействуйте встроенную функцию поиска, она позволит найти файл по названию, формату, дате создания или изменения.

Во вкладке «Общедоступная папка локальной сети» выполняется публикация директорий для домашней группы устройств, входящих в вашу сеть. То есть после нажатия на «Опубликовать эту папку» ее смогут просматривать другие пользователи, подключенные к вашей локальной сети.

При переходе в свойства отдельного файла вы увидите немного другие разрешения, но в целом их применение остается таким же, как в случае и с директорией. Обратите внимание, что внизу добавлен параметр «Разрешить выполнение файла как программы» — активируйте его, если нужно, чтобы другие юзеры могли запускать выполнение этого объекта.

Конечно, настройки, присутствующие в файловом менеджере, позволяют быстро и без каких-либо проблем отредактировать права доступа к объектам, однако иногда набор функций достаточно ограничен, а некоторым пользователям нужна более гибкая конфигурация. В такой ситуации мы рекомендуем обратиться к следующему методу.

Способ 2: Команда chmod

Юзеры, которые уже сталкивались с выполнением определенных задач в операционных системах на Линукс, наверняка знают, что преимущественное большинство всех действий производится через классическую консоль с применением различных команд. Редактирование прав доступа для файлов и папок не стало исключением и пригодится для этого встроенная утилита chmod.

Синтаксис chmod

Каждая команда имеет свой синтаксис — набор опций и параметров, записывающихся в определенной последовательности для указания выполнения необходимых действий. Тогда последовательность ввода будет такой: chmod + опции + права + название объекта или путь к нему . Детальную информацию о том, как использовать chmod, читайте в консоли. Запустить ее можно через меню или комбинацию клавиш Ctrl + Alt + T.

В «Терминале» вам следует прописать chmod —help и нажать на клавишу Enter. После этого отобразится официальная документация на установленном по умолчанию языке, которая поможет разобраться с основами утилиты. Но мы все же приведем более детальное описание всех опций и прав.

Права доступа

Как вы уже знаете из представленной выше информации, в Linux присутствует три вида прав — чтение, запись и выполнение. Каждое из них имеет собственное буквенное обозначение в chmod, что и следует использовать при работе с командой.

  • r — чтение;
  • w — запись;
  • x — выполнение;
  • s — выполнение от имени суперпользователя. Данное право является дополнительным и подразумевает запуск программ и скриптов от главной учетной записи (грубо говоря, через команду sudo).

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

  • u — владелец объекта;
  • g — группа;
  • o — остальные юзеры;
  • a — все перечисленные выше пользователи.
Читайте также:  Нет системного диска для установки windows

Помимо этого, рассматриваемая команда принимает обозначения прав в виде цифр. Цифры от 0 до 7 означают определенный параметр:

  • 0 — отсутствие прав;
  • 1 — исключительно выполнение;
  • 2 — только запись;
  • 3 — исполнение и запись вместе;
  • 4 — исключительно чтение;
  • 5 — чтение и исполнение;
  • 6 — чтение и запись;
  • 7 — все права вместе.

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

Опции

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

  • -c — отображение информации обо всех изменениях после активации команды;
  • -f — исключить отображение всех уведомлений о возникших ошибках;
  • -v — показывать всю информацию после активации команды;
  • —reference — выбрать маску прав из определенного файла;
  • -R — активация рекурсии. В таком случае указанные права будут применены для всех файлов и папок указанной директории;

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

Дополнительные действия

Для повышения удобства работы в «Терминале» юзеру потребуется использовать еще несколько команд, оптимизирующих выполнение последующих действий. Например, после запуска можете прописать cd /home/user/folder , где /home/user/folder — условный путь к необходимой папке. После активации данной команды произойдет перемещение в указанную директорию и все последующие действия будут осуществляться через нее. Таким образом, исключается надобность ввода полного пути к файлу или папке в дальнейшем (конечно, если они располагаются в том расположении, куда был произведен переход).

Нельзя не отметить и команду ls с опцией -l . Такая утилита позволяет просмотреть текущие установки по правам доступа к объектам. Например, результат -rw-rw-r— означает, что владелец сможет читать и редактировать файл, группа делать то же самое, а остальные юзеры только читать. (Все обозначения соответствуют описанным выше правам доступа). Подробно о действии команды ls в Linux рассказано в другой нашей статье по следующей ссылке.

Примеры команды

Напоследок хотелось бы привести несколько примеров использования утилиты, чтобы у пользователей больше не осталось вопросов касаемо синтаксиса команды и ее применения. Обратите внимание на такие строки:

  • chmod a+r File_Name — добавить всем права на чтение файла;
  • chmod a-x File_Name — забрать права на исполнение объекта;
  • chmod a+r File_Name — добавить права на чтение и запись;
  • chmod -R u+w,go-w Folder_Name — включение рекурсии (применение команды для всей директории и ее содержимого), добавление прав на запись для владельца и удаление прав на запись у остальных пользователей.

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

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

Помимо этой статьи, на сайте еще 12315 инструкций.
Добавьте сайт Lumpics.ru в закладки (CTRL+D) и мы точно еще пригодимся вам.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Источник

Оцените статью