Intereting Posts
Как управлять error_log и access_log apache? Установите переменную env CHROME_BIN Как я могу отменить команду 'sudo' перед вводом пароля? groovy (мыло) для запуска нескольких команд оболочки (unix) Сценарий, который учитывает только установленные, TIME_WAIT и Closed Wait подключения с помощью Netstat Условия OpenBSD httpd.conf сортировать файлы размером более 1000 байт в порядке убывания Как установить драйвер Broadcom Corporation BCM4312 на Linux Mint Идентификатор родителя-сиротца не равен 1, когда родительский процесс выполняется с терминала GNOME Отображение последних N измененных файлов? Как настроить малину для получения статического IP-адреса без автоматического назначения IP-адреса DHCP? Предотвратите попытки пользователей убивать процессы, которые у них есть. Каковы последствия использования inode_ratio 16384 с точки зрения использования хранилища на ext4? неожиданные символы в ведомых файлах зоны DNS BIND USB-концентраторы и Linux

Зачем мне нужен выделенный пользователь для службы (мой git-сервис: gogs / gitea)?

Я использую git-сервис “gogs”, но хочу перейти на более активный форк, называемый gitea . Инструкции по установке говорят, что я должен создать пользователя (например, git ), выделенного для использования gitea:

 adduser \ --system \ --shell /bin/bash \ --gecos 'Git Version Control' \ --group \ --disabled-password \ --home /home/git \ git 

В настоящее время я использую Gogs в Windows, без специального пользователя. Теперь я хочу использовать gitea в linux, отсюда мое замешательство – я полагаю, это потому, что я не могу понять деmonoв в целом.

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

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

(Я предполагаю, что это связано с запуском службы без входа пользователя в систему и ее запуска. Но многие другие службы уже запущены, и им не нужны выделенные пользователи, не так ли?)

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

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

    Причины использования выделенных учетных записей для служб на самом деле являются общими для операционных систем Windows и Linux. Запуск сервисов как отдельных процессов под эгидой выделенных учетных записей означает, что механизмы операционной системы, которые защищают пользователей друг от друга (помните, что Windows NT и Linux являются многопользовательскими с самого начала), также защищают процессы сервиса от вас , интерактивный пользователь и из других сервисов . Они также защищают вас и другие службы от службы .

    Многопользовательские механизмы позволяют находить детализированный контроль доступа к файлам и каталогам, которые использует служебная программа, предотвращают отправку службами произвольных сигналов вредоносными процессами, предотвращают отслеживание процессов службы с помощью API отладки, предотвращают внедрение streamов и предотвращают произвольные процессы от возможности приостановить и возобновить streamи. И все эти предупреждения работают и другим способом, а это означает, что служба, в случае ее компрометации, не может делать эти вещи с другими.

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

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

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

    Таким образом, теперь вы должны думать, достаточно ли инструкций gitea. Создаваемой учетной записи службы разрешен интерактивный вход в систему через SSH, в качестве программы входа в систему используется интерактивная shell, и он владеет домашним каталогом, предоставляя взломанной службе возможность помещать туда вещи и предоставлять им доступ.

    дальнейшее чтение

    • Джонатан де Бойн Поллард (2018). « Введение ». Руководство Nosh . Softwares.
    • Джонатан де Бойн Поллард (2018). « Служба безопасности журнала: выделенные учетные записи пользователей журнала ». Руководство Nosh . Softwares.
    • Джонатан де Бойн Поллард (2018). « Ограничение услуг: запуск под эгидой непривилегированных учетных записей пользователей ». Руководство Nosh . Softwares.
    • « Сервис учетных записей пользователей ». Рабочий стол Windows: системные службы . MSDN. Microsoft.
    • « Настройка учетной записи пользователя Сервиса ». Рабочий стол Windows: доменные службы Active Directory . MSDN. Microsoft.
    • Даниэль Дж. Бернштейн. Гарантия безопасности qmail . cr.yp.to.
    • Джонатан де Бойн Поллард (2011). Консольная и терминальная парадигмы для TUI . Часто задаваемые ответы.
    • https://unix.stackexchange.com/a/198713/5132
    • https://unix.stackexchange.com/a/447329/5132