Astra linux libnss role

Saved searches

Use saved searches to filter your results more quickly

You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session.

NSS API library and admin tools for roles and privilegies

License

Etersoft/libnss-role

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Sign In Required

Please sign in to use Codespaces.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching GitHub Desktop

If nothing happens, download GitHub Desktop and try again.

Launching Xcode

If nothing happens, download Xcode and try again.

Launching Visual Studio Code

Your codespace will open once ready.

There was a problem preparing your codespace, please try again.

Latest commit

Git stats

Files

Failed to load latest commit information.

README.md

NSS API library and admin tools for roles and privileges. This README is also available in Russian (Русский)

libnss-role is an NSS libc module that implements adding groups to groups for Linux / Unix systems and also provides functionality similar to Windows’ «Restricted Groups».

libnss_role is an NSS module adds support for adding groups to groups. This makes certain system administration tasks easier.

For example, you can create a group named users and add it to groups such as audio , cdwriter , serial etc. Now you can add all users to users group instead of adding them to all these groups manually.

Furthermore, you can create a group named admins and add it to groups users and wheel . As a result, administrators will get all «user» groups and a wheel group in addition.

This module has its own administration utilities. These utilities divide all groups into two categories: roles and privileges.

This is an ordinary POSIX group that can be assigned to a user. Members of a «privilege» group can perform certain actions. Examples of privileges are: cdwriter , audio , serial , virtualbox and many others.

Читайте также:  Linux curl x www form urlencoded

A role is also a POSIX group, but it has another meaning: it describes a type of activity that a user performs. Examples of roles are: admin , user , power_user , developer and others.

A user may need some special rights to perform his role. It is useful to have a possibility of adding sets of privileges to users indirectly via assigning a role. For example, an user with admin role could also get privilege groups such as wheel , ssh , root etc.

This module implements such permission management model.

  • CMake 3.10+ for building
  • cmocka for unit testing
  • nss_wrapper for unit testing

The build process is as simple as:

mkdir build cd build cmake .. make make test 

Maybe you will need to create a configuration file with role info:

Now you need to enable the module. Open /etc/nsswitch.conf and append role to the end of the line that starts with groups: . . You should get something like this:

This module uses /etc/role file and a system file /etc/group to store role information.

/etc/group is a standard POSIX file and is described in many guides. /etc/role stores additional information about groups that are included in other groups. Format of /etc/role is as follows:

where is an integer group identifier.

An identifier before : means that a group is a role and will be included in other groups. Identifiers after : are identifiers of groups that include this role. Nested groups are resolved recursively.

Here is an example. Suppose that we have a user named pupkin and we have some records in /etc/group :

group1:x:1:pupkin group2:x:2:pupkin group3:x:3: group4:x:4: group5:x:5: group6:x:6: 

Meanwhile the /etc/role file contains:

With such configuration pupkin will get all the groups.

  • he gets group1 and group2 as they are assigned to him directly;
  • he gets group3 and group4 as they are assigned to group2 ;
  • he gets group5 and group6 as they are assigned to group4 .

Using identifiers in /etc/role makes it hard to edit the file manually, that’s why we have module administration utilities. There are three utilities: roleadd , roledel и rolelst .

Adds a role (if not exists) and assigns privileges and roles to it.

ROLE is a role name. Must match an existing group name.

GROUP is a name of role or a privilege.

When used with -s switch the groups are set; by default groups are appended.

Used to delete privileges from roles and to delete roles themselves (second form).

Читайте также:  Linux mint обновить mozilla firefox

Shows a nice output of /etc/role , converting identifiers into readable names.

About

NSS API library and admin tools for roles and privilegies

Источник

Модуль ролей

Модуль ролей — это модуль для службы переключения имён NSS. Модуль реализует возможность добавления групп в группы. Для администрирования модуля ролей реализованы специальные вспомогательные утилиты, которые рассматривают все группы поделёнными на две категории: роли и привилегии.

Привилегия Обычная POSIX-группа, которая может быть назначена пользователю. После этого пользователь может совершать действия, соответствующие данной привилегии. К привилегиям относятся такие группы, как cdwriter, audio, serial, virtualbox и др. Роль Роль так же является POSIX группой, но её предназначение указывать, на характерную деятельность, которую выполняет пользователь, работая за компьютером. Такими группами могут быть группы localadmins, users, poweruser, developer и др.

Для того чтобы пользователь мог выполнять определённую роль ему могут понадобиться определённые права (привилегии), поэтому полезно уметь назначать привилегии как непосредственно пользователю (как это делается в POSIX), так и косвенно добавлять ему наборы привилегий через назначение роли. Например, пользователь, которому назначена роль localadmins мог бы получать кроме группы localadmins, ещё и группы-привилегии wheel, ssh, root и пр.

Модуль ролей позволяет реализовать подобное назначение прав пользователям системы. Группы-роли назначаются непосредственно пользователю, а группы-привилегии назначаются как пользователю непосредственно, так и группам-ролям. Деление групп на два сорта условно, и администратор может управлять им самостоятельно.

Установка модуля ролей

libnss-role — это библиотека для NSS и набор инструментов для администрирования ролей и привилегий.

# apt-get install libnss-role 

Управление включением/отключением модуля

Управление включением/отключением модуля осуществляется через подсистему control:

# control libnss-role disabled # control libnss-role enabled 

Просмотреть текущее состояние:

# control libnss-role enabled

Администрирование модуля

Файлы конфигурации

Для хранения и получения информации о ролях модуль использует файл /etc/role . Начиная с версии 0.5.0, также поддерживается каталог /etc/role.d , позволяющий устанавливать отдельные конфигурации ролей. Файлы конфигурации хранят дополнительную информацию о вхождении групп в группы. Каждая строка в файлах имеет формат:

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

Для наглядности приведем пример. Пусть у нас есть пользователь pupkin. Пусть в файле /etc/group имеются записи:

group1:x:1:pupkin group2:x:2:pupkin group3:x:3: group4:x:4: group5:x:5: group6:x:6:
group2:group3,group4 group4:group5,group6

Тогда пользователь pupkin получит все имеющиеся группы. Группы group1 и group2, так как они назначены ему непосредственно, group3 и group4 — потому что они назначены группе group2, а группы group5 и group6 — так как они назначены группе group4.

Читайте также:  Лучше windows или linux

Административные утилиты

Существуют три утилиты для выполнения задач по администрированию модуля: roleadd , roledel и rolelst .

Примечание: Для выполнения задач по администрированию модуля можно также воспользоваться модулем ЦУС Управление ролями.

roleadd

roleadd — утилита, позволяющая добавлять группы привилегий в группы ролей. Это означает, что все пользователи в группе ролей входят во все группы привилегий, добавленные в измененную роль.

Использование: roleadd [-hsmv] [[-f file.role] | [-S]] РОЛЬ [*ПРИВИЛЕГИЯ] Параметры: -h, --help показать справку и выйти -s, --set установить роль только с указанными привилегиями (переопределить) -m, --skip-missing-groups пропустить отсутствующие группы (привилегии) вместо ошибки -v, --version вывести версию и выйти -f, --file=file.role изменить роль в дополнительном файле /etc/role.d/file.role -S, --system изменить системную роль (ROLE) в дополнительном файле /etc/role.d/ROLE.role

Добавляет роль (если её ещё нет) и назначает ей привилегии и группы. РОЛЬ — имя роли (должна совпадать с уже имеющейся группой). ПРИВИЛЕГИЯ — имя роли или привилегии, которые будут назначены данной (если используется вместе с параметром -s, то производится установка групп; по умолчанию группы добавляются к уже имеющимся).

    Добавить привилегию fuse роли users (запись будет добавлена в файл /etc/role ):

# roleadd --file=test.role -m users radio camera floppy xgrp scanner 

roledel

roledel — утилита, позволяющая удалять группы привилегий из групп ролей. Это означает, что все пользователи в группе ролей исключаются из всех групп привилегий, которые удалены из измененной роли.

Использование: roledel [-hrmv] [[-f file.role] | [-S]] РОЛЬ [*ПРИВИЛЕГИЯ] Параметры: -h, --help показать справку и выйти -r, --remove удалить все привилегии из роли -m, --skip-missing-groups пропустить отсутствующие группы (привилегии) вместо ошибки -v, --version вывести версию и выйти -f, --file=file.role изменить роль в дополнительном файле /etc/role.d/file.role -S, --system изменить системную РОЛЬ (ROLE) в дополнительном файле/etc/role.d/ROLE.role

    Удалить привилегию fuse для роли users (будет удалена привилегии из файла /etc/role/users.role ):

# roledel --file=test.role -m users xgrp 

rolelst

rolelst — показывает текущий список ролей и привилегий. Данные считываются из файла /etc/role . Начиная с версии 0.5.0, также поддерживается каталог /etc/role.d .

Использование: rolelst [-hnvV] [[-f file.role] | [-S]] [*РОЛЬ] Параметры: -h, --help показать справку и выйти -n, --numeric вывести GID вместо названий групп -v, --version вывести версию и выйти -V, --verbose вывести дополнительную информацию об источниках ролей -f, --file=file.role показать привилегии роли из дополнительного файла /etc/role.d/file.role -S, --system[=ROLE] показать привилегии системной РОЛИ (ROLE) из дополнительного файла /etc/role.d/ROLE.role

    Показать текущий список ролей и привилегий:

$ rolelst powerusers2:remote localadmins:wheel,remote,vboxusers,vboxadd powerusers:remote,vboxadd,vboxusers users:cdwriter,cdrom,audio,proc,radio,camera,floppy,xgrp,scanner,uucp,fuse,vboxadd,vboxusers vboxadd:vboxsf
$ rolelst -V # Settings read from /etc/role: powerusers2:remote # Resulting settings merged with /etc/role.d entries powerusers2:remote localadmins:wheel,remote,vboxusers,vboxadd powerusers:remote,vboxadd,vboxusers users:cdwriter,cdrom,audio,proc,radio,camera,floppy,xgrp,scanner,uucp,fuse,vboxadd,vboxusers vboxadd:vboxsf

Источник

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