- Cap linux что это
- Список возможностей
- Возможности процессов
- Граница набора возможностей
- Текущая и будущие реализации
- Cap linux что это
- Список возможностей
- Возможности процессов
- Граница набора возможностей
- Текущая и будущие реализации
- Сервер печати CUPS
- Содержание
- Сервер печати CUPS
- Установка
- Настройка
- Web интерфейс
Cap linux что это
Для того, чтобы выполнять проверки на соответствие прав, обычные реализации Unix имели две категории процессов: привилегированные процессы (privileged, у них действующий идентификатор пользователя равен 0, соответствуя суперпользователю root) и непривилегированные процессы (unprivileged, у них действующий идентификатор пользователя не равен 0). Привилегированные процессы осуществляют все проверки прав в ядре, в то время как непривилегированные процессы являются объектом для полноценной проверки всех прав на основе параметров процесса (обычно: действующий идентификатор пользователя UID, действующий идентификатор группы GID и список дополнительных групп).
Начиная с ядра 2.2, Linux обеспечивает (хотя и не полностью) в системе много возможностей , разделяющие привилегии, традиционно ассоциированные с суперпользователем, в отдельный блок, который может быть независимо включен или выключен.
Список возможностей
В системе Linux 2.4.20 реализованы такие возможности: CAP_CHOWN Позволяет реализовывать произвольные изменения в UID и GID файлов (см. chown (2)). CAP_DAC_OVERRIDE Пропустить проверки прав на чтение, запись и исполнение.. (DAC = «discretionary access control», «управление доступом по усмотрению».) CAP_DAC_READ_SEARCH Пропустить проверку прав на чтение файла и прав на чтение и исполнение для каталогов. CAP_FOWNER Пропустить проверку прав для операций, обычно требующих от файловой системы соответствия UID процесса и UID файла (например, utime (2)), исключая операции, обрабатываемые CAP_DAC_OVERRIDE и CAP_DAC_READ_SEARCH ; игнорировать бит sticky при удалении файлов. CAP_FSETID Не очищать биты set-user-ID и set-group-ID при изменении файла; разрешить установку бита set-group-ID только для файлов, чей GID не соответствует файловой системе или любым дополнительным GID вызывающего процесса. CAP_IPC_LOCK Разрешить блокировку памяти ( mlock (2), mlockall (2), shmctl (2)). CAP_IPC_OWNER Пропустить проверки прав на операции для объектов IPC в System V. CAP_KILL Пропустить проверки прав для отправляемых сигналов (см. kill (2)). CAP_LEASE (новинка в Linux 2.4) Разрешить аренды файлов для случайных файлов (см. fcntl (2)). CAP_LINUX_IMMUTABLE Разрешить установку дополнительных атрибутов EXT2_APPEND_FL и EXT2_IMMUTABLE_FL для файловой системы ext2. CAP_MKNOD (новинка в Linux 2.4) Разрешить создание особых файлов, использующих mknod (2). CAP_NET_ADMIN Разрешить различные сетевые операции (например, установку опций привилегированных сокетов, включение многоадресной рассылки, настройки интерфейсов, изменение таблиц маршрутизации). CAP_NET_BIND_SERVICE Разрешить привязку к зарезервированным портам сокетов доменов интернет (то есть к номерам портов менее 1024). CAP_NET_BROADCAST (не используется) Разрешить широковещательные сокеты, а также прослушивание многоадресных рассылок. CAP_NET_RAW Разрешить использование сокетов RAW и PACKET. CAP_SETGID Разрешить произвольные манипуляции с GID процессов и списком дополнительных GID; разрешить забывание GID при прохождении параметров сокетов через доменные сокеты Unix. CAP_SETPCAP Разрешать или удалять любые возможности в допустимых возможностях вызывающего, установленных в/из любых других процессах. CAP_SETUID Разрешить произвольные манипуляции UID процессов ( setuid (2), etc.); разрешить ложные UID при прохождении параметров сокетов через доменные сокеты Unix. CAP_SYS_ADMIN Разрешить диапазон системных административных операций, включая: quotactl (2), mount (2), swapon (2) , sethostname (2), setdomainname (2), Операции IPC_SET и IPC_RMID на произвольных объектах IPC в System V; разрешить ложные UID при прохождении параметров сокетов. CAP_SYS_BOOT Разрешить вызовы к reboot (2). CAP_SYS_CHROOT Разрешить вызовы к chroot (2). CAP_SYS_MODULE Разрешить загрузку и выгрузку модулей ядра; разрешить изменения в наборе возможностей. CAP_SYS_NICE Разрешить поднятие приоритета процесса ( nice (2), setpriority (2)) и изменение приоритета произвольных процессов; разрешить настройку политик в режиме реального времени для вызывающего процесса и настройку политик и приоритетов для произвольных процессов ( sched_setscheduler (2), sched_setparam (2)). CAP_SYS_PACCT Разрешить вызовы к acct (2). CAP_SYS_PTRACE Разрешить отслеживание произвольных процессов, используя ptrace (2) CAP_SYS_RAWIO Разрешить операции ввода/вывода с портами ( iopl (2) и ioperm (2)). CAP_SYS_RESOURCE Разрешить: использование зарезервированного места на файловых системах ext2; вызовы ioctl (2) управляющие журналированием в ext3; переопределение дисковых квот; увеличение лимитов ресурсов (см. setrlimit (2)); RLIMIT_NPROC переопределение лимитов ресурсов; msg_qbytes ограничить лимит очередей сообщений так, чтобы он был выше ограничений в /proc/sys/kernel/msgmnb (см. msgop (2) и msgctl (2). CAP_SYS_TIME Разрешить коррекцию системных часов ( settimeofday (2), adjtimex (2)); разрешить коррекцию текущего времени (в оборудовании). CAP_SYS_TTY_CONFIG Разрешить вызовы к vhangup (2).
Возможности процессов
В текущей реализации процессу выдаются все действующие и разрешенные возможности (объекты для операции по ограничению набора возможностей описаны ниже) при исполнении программы set-UID-root, или если процесс с действительным UID равным 0 исполняет новую программу.
Порожденный через fork (2) процесс копирует себе все наборы возможностей своего родителя.
Используя capset (2), процесс может управлять своими наборами возможностей, или, если у него есть возможность CAP_SETPCAP , возможностями других процессов.
Граница набора возможностей
Только процесс init может устанавливать биты в границе набора возможностей; все другие, кроме суперпользователя, могут только очищать биты в этом наборе.
В обычной системе граница набора возможностей всегда маскируется от возможности CAP_SETPCAP . Для снятия этого ограничения измените определение CAP_INIT_EFF_SET в include/linux/capability.h и пересоберите ядро.
Текущая и будущие реализации
Если рассмотреть Linux 2.4.20, то в нем выполняются только первые два требования.
В конечном итоге можно ассоциировать эти три набора возможностей с исполняемым файлом, который в соединении с наборами возможностей процесса будет определять возможности процесса после исполнения exec : Allowed (разрешенные): набор логически умножается (AND) с наследованным набором процесса для определения наследуемых возможностей, разрешенных процессу после исполнения exec. Forced (принужденные): возможности автоматически разрешаются процессу, независимо от наследуемых возможностей процесса. Effective (действующие): эти возможности в новом разрешенном наборе также будут установлены в новый действующий набор. (F(effective) будет состоять либо из всех нулей, либо из единиц.)
В то же время, так как текущие реализации не поддерживают наборы возможностей файлов, то во время исполнения exec: 1. Все три набора возможностей файла считаются очищенными. 2. Если исполняется программа set-UID-root, или если действительный идентификатор пользователя процесса равен 0 (root), то файлу разрешены и принудительно устанавливаются все единицы в наборе (то есть полный набор возможностей). 3. Если исполняется программа set-UID-root, то действующий набор файла определен во все единицы.
Во время исполнения exec, ядро рассчитывает новые возможности процесса, используя следующий алгоритм: где: P обозначает набор возможностей процесса до исполнения P’ обозначает значение набора возможностей после исполнения F обозначает набор возможностей файла cap_bset является значением границы набора возможностей.
Источник
Cap linux что это
Для того, чтобы выполнять проверки на соответствие прав, обычные реализации Unix имели две категории процессов: привилегированные процессы (privileged, у них действующий идентификатор пользователя равен 0, соответствуя суперпользователю root) и непривилегированные процессы (unprivileged, у них действующий идентификатор пользователя не равен 0). Привилегированные процессы осуществляют все проверки прав в ядре, в то время как непривилегированные процессы являются объектом для полноценной проверки всех прав на основе параметров процесса (обычно: действующий идентификатор пользователя UID, действующий идентификатор группы GID и список дополнительных групп).
Начиная с ядра 2.2, Linux обеспечивает (хотя и не полностью) в системе много возможностей , разделяющие привилегии, традиционно ассоциированные с суперпользователем, в отдельный блок, который может быть независимо включен или выключен.
Список возможностей
В системе Linux 2.4.20 реализованы такие возможности: CAP_CHOWN Позволяет реализовывать произвольные изменения в UID и GID файлов (см. chown (2)). CAP_DAC_OVERRIDE Пропустить проверки прав на чтение, запись и исполнение.. (DAC = «discretionary access control», «управление доступом по усмотрению».) CAP_DAC_READ_SEARCH Пропустить проверку прав на чтение файла и прав на чтение и исполнение для каталогов. CAP_FOWNER Пропустить проверку прав для операций, обычно требующих от файловой системы соответствия UID процесса и UID файла (например, utime (2)), исключая операции, обрабатываемые CAP_DAC_OVERRIDE и CAP_DAC_READ_SEARCH ; игнорировать бит sticky при удалении файлов. CAP_FSETID Не очищать биты set-user-ID и set-group-ID при изменении файла; разрешить установку бита set-group-ID только для файлов, чей GID не соответствует файловой системе или любым дополнительным GID вызывающего процесса. CAP_IPC_LOCK Разрешить блокировку памяти ( mlock (2), mlockall (2), shmctl (2)). CAP_IPC_OWNER Пропустить проверки прав на операции для объектов IPC в System V. CAP_KILL Пропустить проверки прав для отправляемых сигналов (см. kill (2)). CAP_LEASE (новинка в Linux 2.4) Разрешить аренды файлов для случайных файлов (см. fcntl (2)). CAP_LINUX_IMMUTABLE Разрешить установку дополнительных атрибутов EXT2_APPEND_FL и EXT2_IMMUTABLE_FL для файловой системы ext2. CAP_MKNOD (новинка в Linux 2.4) Разрешить создание особых файлов, использующих mknod (2). CAP_NET_ADMIN Разрешить различные сетевые операции (например, установку опций привилегированных сокетов, включение многоадресной рассылки, настройки интерфейсов, изменение таблиц маршрутизации). CAP_NET_BIND_SERVICE Разрешить привязку к зарезервированным портам сокетов доменов интернет (то есть к номерам портов менее 1024). CAP_NET_BROADCAST (не используется) Разрешить широковещательные сокеты, а также прослушивание многоадресных рассылок. CAP_NET_RAW Разрешить использование сокетов RAW и PACKET. CAP_SETGID Разрешить произвольные манипуляции с GID процессов и списком дополнительных GID; разрешить забывание GID при прохождении параметров сокетов через доменные сокеты Unix. CAP_SETPCAP Разрешать или удалять любые возможности в допустимых возможностях вызывающего, установленных в/из любых других процессах. CAP_SETUID Разрешить произвольные манипуляции UID процессов ( setuid (2), etc.); разрешить ложные UID при прохождении параметров сокетов через доменные сокеты Unix. CAP_SYS_ADMIN Разрешить диапазон системных административных операций, включая: quotactl (2), mount (2), swapon (2) , sethostname (2), setdomainname (2), Операции IPC_SET и IPC_RMID на произвольных объектах IPC в System V; разрешить ложные UID при прохождении параметров сокетов. CAP_SYS_BOOT Разрешить вызовы к reboot (2). CAP_SYS_CHROOT Разрешить вызовы к chroot (2). CAP_SYS_MODULE Разрешить загрузку и выгрузку модулей ядра; разрешить изменения в наборе возможностей. CAP_SYS_NICE Разрешить поднятие приоритета процесса ( nice (2), setpriority (2)) и изменение приоритета произвольных процессов; разрешить настройку политик в режиме реального времени для вызывающего процесса и настройку политик и приоритетов для произвольных процессов ( sched_setscheduler (2), sched_setparam (2)). CAP_SYS_PACCT Разрешить вызовы к acct (2). CAP_SYS_PTRACE Разрешить отслеживание произвольных процессов, используя ptrace (2) CAP_SYS_RAWIO Разрешить операции ввода/вывода с портами ( iopl (2) и ioperm (2)). CAP_SYS_RESOURCE Разрешить: использование зарезервированного места на файловых системах ext2; вызовы ioctl (2) управляющие журналированием в ext3; переопределение дисковых квот; увеличение лимитов ресурсов (см. setrlimit (2)); RLIMIT_NPROC переопределение лимитов ресурсов; msg_qbytes ограничить лимит очередей сообщений так, чтобы он был выше ограничений в /proc/sys/kernel/msgmnb (см. msgop (2) и msgctl (2). CAP_SYS_TIME Разрешить коррекцию системных часов ( settimeofday (2), adjtimex (2)); разрешить коррекцию текущего времени (в оборудовании). CAP_SYS_TTY_CONFIG Разрешить вызовы к vhangup (2).
Возможности процессов
В текущей реализации процессу выдаются все действующие и разрешенные возможности (объекты для операции по ограничению набора возможностей описаны ниже) при исполнении программы set-UID-root, или если процесс с действительным UID равным 0 исполняет новую программу.
Порожденный через fork (2) процесс копирует себе все наборы возможностей своего родителя.
Используя capset (2), процесс может управлять своими наборами возможностей, или, если у него есть возможность CAP_SETPCAP , возможностями других процессов.
Граница набора возможностей
Только процесс init может устанавливать биты в границе набора возможностей; все другие, кроме суперпользователя, могут только очищать биты в этом наборе.
В обычной системе граница набора возможностей всегда маскируется от возможности CAP_SETPCAP . Для снятия этого ограничения измените определение CAP_INIT_EFF_SET в include/linux/capability.h и пересоберите ядро.
Текущая и будущие реализации
Если рассмотреть Linux 2.4.20, то в нем выполняются только первые два требования.
В конечном итоге можно ассоциировать эти три набора возможностей с исполняемым файлом, который в соединении с наборами возможностей процесса будет определять возможности процесса после исполнения exec : Allowed (разрешенные): набор логически умножается (AND) с наследованным набором процесса для определения наследуемых возможностей, разрешенных процессу после исполнения exec. Forced (принужденные): возможности автоматически разрешаются процессу, независимо от наследуемых возможностей процесса. Effective (действующие): эти возможности в новом разрешенном наборе также будут установлены в новый действующий набор. (F(effective) будет состоять либо из всех нулей, либо из единиц.)
В то же время, так как текущие реализации не поддерживают наборы возможностей файлов, то во время исполнения exec: 1. Все три набора возможностей файла считаются очищенными. 2. Если исполняется программа set-UID-root, или если действительный идентификатор пользователя процесса равен 0 (root), то файлу разрешены и принудительно устанавливаются все единицы в наборе (то есть полный набор возможностей). 3. Если исполняется программа set-UID-root, то действующий набор файла определен во все единицы.
Во время исполнения exec, ядро рассчитывает новые возможности процесса, используя следующий алгоритм: где: P обозначает набор возможностей процесса до исполнения P’ обозначает значение набора возможностей после исполнения F обозначает набор возможностей файла cap_bset является значением границы набора возможностей.
Источник
Сервер печати CUPS
Содержание
Сервер печати CUPS
Первичный (основной) механизм для печати и сервисов печати в Ubuntu — это Общая система печати UNIX (Common UNIX Printing System — CUPS). Данная система печати — это свободный, доступный и переносимый слой, который стал новым стандартом печати для большинства дистрибутивов Linux.
CUPS управляет заданиями печати и обеспечивает сетевую печать с использованием стандарта IPP (интернет протокол печати), поддерживая огромный список принтеров от матричных до лазерных и любых других. CUPS также поддерживает PostScript описание принтеров (PPD) и автоопределение сетевых принтеров, а также простую настройку и администрирование через web интерфейс.
Установка
Для установки CUPS на ваш Ubuntu компьютер просто используйте sudo для выполнения команды apt-get, передав ей названия пакетов в качестве параметра. Полная установка CUPS содержит много зависимостей, но они все могут быть определены в одной команде. Введите следующее в терминале для установки CUPS:
После аутентификации вас по паролю, пакеты должны загрузиться и установиться без ошибок. В заключении установки сервер CUPS будет запущен автоматически.
При необходимости решения проблем, вы можете получить доступ к ошибкам сервера CUPS через файл журнала /var/log/cups/error_log. Если журнал ошибок не дает достаточно информации для решения какой-либо проблемы, уровень журналирования CUPS можно повысить изменением директивы LogLevel в файле настроек (описывается ниже) до debug или даже debug2 со стандартного info, что будет сохранять в журнал абсолютно все. Если вы проведете такое изменение, не забудьте вернуть все обратно после решения проблемы, чтобы избежать излишнего разрастания файла журнала.
Настройка
Прежде чем редактировать файл настроек, вам стоит сделать копию оригинального файла и защитить ее от записи, чтобы у вас были оригинальные настройки в качестве руководства, которые можно восстановить при необходимости.
Скопируйте и защитите от записи файл /etc/cups/cupsd.conf.original с помощью следующих команд в терминале:
1. ServerAdmin: Для настройки email адреса назначенного администратора CUPS сервера, просто откройте на редактирование файл /etc/cups/cupsd.conf с помощью своего любимого текстового редактора, и добавьте или измените строку ServerAdmin соответствующим образом. Например, если вы администратор CUPS сервера и ваш email адрес ‘bjoy@somebigco.com’, вам следует изменить строку ServerAdmin следующим образом:
2. Listen: В Ubuntu по умолчанию установленный CUPS сервер слушает только интерфейс обратной петли по адресу 127.0.0.1. Чтобы заставить CUPS сервер прослушивать актуальный IP адрес сетевого адаптера, вы должны указать сетевое имя или пару IP адрес/порт добавочной директивой Listen. Например, если ваш сервер находится в локальной сети с IP адресом 192.168.10.250 и вы хотите сделать его доступным для других систем в этой подсети, отредактируйте /etc/cups/cupsd.conf, добавив директиву Listen, как показано ниже:
В приведенном примере вы можете закомментировать или удалить ссылки на адрес обратной петли (127.0.0.1), если вы не хотите, чтобы cupsd прослушивал этот интерфейс, а только Ethernet интерфейсы локальной сети. Чтобы разрешить прослушивать все сетевые интерфейсы, назначенные определенному сетевому имении, включая обратную петлю, вы можете создать такую запись Listen для имени (например) socrates:
или опустить директиву Listen и использовать вместо нее Port:
Для дополнительных примеров по директивам в файле настройки CUPS, смотрите ассоциированную страницу системного руководства, введя в терминале следующую команду:
Web интерфейс
Чтобы выполнить административную задачу через web интерфейс, вы должны либо разрешить учетную запись root на своем сервере, либо авторизоваться как пользователь из группы lpadmin. По соображениям безопасности CUPS не авторизует пользователей с пустыми паролями.
Чтобы добавить пользователя в группу lpadmin, выполните в терминале следующую команду:
Дальнейшая документация доступна через закладку Documentation/Help web интерфейса.
Источник