Исходя из ваших последних вопросов, похоже, что у вас есть проблема XY
Вот решение sed, основанное на ответе @ Zanna на ваш предыдущий вопрос Задача XY
[ f1]
Ну, есть два отдельных аспекта при запуске приложения как root; один из них улучшает безопасность, а другой может скомпрометировать его - я думаю, что смешивание этих двух аспектов объясняет вашу путаницу.
запуск приложения в качестве другого пользователя (возможно, пользователь root, но не обязательно) затрудняет работу другого процесс доступа к файлам, которые принадлежат / созданы этим приложением, и делать другие неприятные вещи (например, отправить сигнал KILL). Это хорошо. если у приложения есть уязвимость (то есть отправка его каким-то специально отформатированным вводом заставляет его выполнять некоторый код через переполнение буфера и т. д.) - тогда, после использования этой уязвимости, злоумышленник сможет выполнить код с привилегиями этого процесса , В этом смысле запуск приложения с привилегиями root - это BAD, потому что он будет предоставлять наивысший уровень привилегий для злоумышленника.Теперь вы понимаете, что запуск диспетчера обновлений в качестве пользователя root может быть плохим, если в нем содержится ошибка, которая позволит создать специально созданный файл .deb, чтобы свернуть его и заставить его выполнить некоторый код. Однако выполнение некоторых приложений, таких как диспетчер пакетов, с привилегиями суперпользователя неизбежно, потому что они изменяют основные части системы.
Общим решением этой проблемы является выполнение так называемых «сбросов привилегий» на запуск программы; это часто используется для запуска веб-серверов и других потенциально доступных (и доступных извне) программ. Идея проста: программа запускается с правами root, но как можно скорее она переключается на некоторую учетную запись пользователя с минимальными привилегиями (без входа в систему, chroot-ed в ее домашний каталог и т. Д.) Таким образом, даже если это скомпрометировано, это дало бы злоумышленнику очень ограниченный доступ к системе. Кроме того, другие учетные записи пользователей (кроме суперпользователя) не будут иметь доступа к файлам приложения
Я не уверен, насколько легко было бы запускать настольное приложение, подобное этому.
[d11 ] На самом деле, в этой ситуации я думаю, что запуск может быть , поскольку непривилегированный пользователь будет иметь больше смысла. И, конечно же, Google дает нам несколько ссылок на эту тему: запускает приложение в качестве другого пользователя (возможно, пользователь root, но не обязательно) затрудняет для другого процесса доступ к файлам принадлежащих / созданных этим приложением, и делать другие неприятные вещи (например, отправить сигнал KILL). Это хорошо.запускает приложение в качестве другого пользователя (возможно, пользователь root, но не обязательно) затрудняет для другого процесса доступ к файлам, которые принадлежат / созданы этим приложением, и делать другие неприятные вещи (отправить Например, сигнал KILL). Это хорошо.
Как настроить и запустить Firefox 3.0b2 как другой пользователь в Ubuntu
. Принимая эту идею до крайности (как вы предлагаете в комментарии) даст вам систему, похожую на то, как работает Android; на Android каждое приложение работает в пределах собственной учетной записи пользователя, поэтому оно имеет доступ только к собственным файлам. Вероятно, в Ubuntu есть некоторые проблемные области, то есть, если вы загрузили файл с помощью Firefox, запущенного в ограниченной учетной записи, он сможет сохранить его только в своей домашней папке, так что невозможно будет открыть файл в текстовый процессор (который работает как другой пользователь) ...
Ну, есть два отдельных аспекта при запуске приложения как root; один из них улучшает безопасность, а другой может скомпрометировать его - я думаю, что смешивание этих двух аспектов объясняет вашу путаницу.
Теперь вы понимаете, что запуск диспетчера обновлений с правами root может быть плохо, если в нем содержится ошибка, которая позволила бы специально созданному файлу .deb свернуть его и заставить его выполнить некоторый код. Однако запуск некоторых приложений, таких как диспетчер пакетов, с привилегиями суперпользователя неизбежен, поскольку они изменяют основные части системы.
Общим решением этой проблемы является выполнение так называемых «привилегий» на запуск программы; это часто используется для запуска веб-серверов и других потенциально доступных (и доступных извне) программ. Идея проста: программа запускается с правами root, но как можно скорее она переключается на некоторую учетную запись пользователя с минимальными привилегиями (без входа в систему, chroot-ed в ее домашний каталог и т. Д.) Таким образом, даже если это скомпрометировано, это дало бы злоумышленнику очень ограниченный доступ к системе. Кроме того, другие учетные записи пользователей (кроме суперпользователя) не будут иметь доступа к файлам приложения
. Я не уверен, насколько легко было бы запускать настольное приложение, подобное этому.
На самом деле, в этой ситуации я думаю, что запуск веб-браузера в качестве непривилегированного пользователя будет иметь больше смысла. И, конечно, Google дает нам несколько ссылок на эту тему:
Приняв эту идею до крайности (как вы предлагаете в комментариях), вы получите система, похожая на работу Android; на Android каждое приложение работает в пределах собственной учетной записи пользователя, поэтому оно имеет доступ только к собственным файлам. Вероятно, в Ubuntu есть некоторые проблемные области, то есть, если вы загрузили файл с помощью Firefox, запущенного в ограниченной учетной записи, он сможет сохранить его только в своей домашней папке, так что невозможно будет открыть файл в текстовый процессор (который работает как другой пользователь) ...
Что касается сценария запуска, я бы предположил, что скрипт будет запускаться с правами root и вызывать приложения в качестве их соответствующих пользователей. Очевидно, скрипт должен быть доступен только для записи. Читайте о setuid .
Ну, есть два отдельных аспекта при запуске приложения как root; один из них улучшает безопасность, а другой может скомпрометировать его - я думаю, что смешивание этих двух аспектов объясняет вашу путаницу.
Теперь вы понимаете, что запуск диспетчера обновлений с правами root может быть плохо, если в нем содержится ошибка, которая позволила бы специально созданному файлу .deb свернуть его и заставить его выполнить некоторый код. Однако запуск некоторых приложений, таких как диспетчер пакетов, с привилегиями суперпользователя неизбежен, поскольку они изменяют основные части системы.
Общим решением этой проблемы является выполнение так называемых «привилегий» на запуск программы; это часто используется для запуска веб-серверов и других потенциально доступных (и доступных извне) программ. Идея проста: программа запускается с правами root, но как можно скорее она переключается на некоторую учетную запись пользователя с минимальными привилегиями (без входа в систему, chroot-ed в ее домашний каталог и т. Д.) Таким образом, даже если это скомпрометировано, это дало бы злоумышленнику очень ограниченный доступ к системе. Кроме того, другие учетные записи пользователей (кроме суперпользователя) не будут иметь доступа к файлам приложения
. Я не уверен, насколько легко было бы запускать настольное приложение, подобное этому.
На самом деле, в этой ситуации я думаю, что запуск веб-браузера в качестве непривилегированного пользователя будет иметь больше смысла. И, конечно, Google дает нам несколько ссылок на эту тему:
Приняв эту идею до крайности (как вы предлагаете в комментариях), вы получите система, похожая на работу Android; на Android каждое приложение работает в пределах собственной учетной записи пользователя, поэтому оно имеет доступ только к собственным файлам. Вероятно, в Ubuntu есть некоторые проблемные области, то есть, если вы загрузили файл с помощью Firefox, запущенного в ограниченной учетной записи, он сможет сохранить его только в своей домашней папке, так что невозможно будет открыть файл в текстовый процессор (который работает как другой пользователь) ...
Что касается сценария запуска, я бы предположил, что скрипт будет запускаться с правами root и вызывать приложения в качестве их соответствующих пользователей. Очевидно, скрипт должен быть доступен только для записи. Читайте о setuid .
Ну, есть два отдельных аспекта при запуске приложения как root; один из них улучшает безопасность, а другой может скомпрометировать его - я думаю, что смешивание этих двух аспектов объясняет вашу путаницу.
Теперь вы понимаете, что запуск диспетчера обновлений с правами root может быть плохо, если в нем содержится ошибка, которая позволила бы специально созданному файлу .deb свернуть его и заставить его выполнить некоторый код. Однако запуск некоторых приложений, таких как диспетчер пакетов, с привилегиями суперпользователя неизбежен, поскольку они изменяют основные части системы.
Общим решением этой проблемы является выполнение так называемых «привилегий» на запуск программы; это часто используется для запуска веб-серверов и других потенциально доступных (и доступных извне) программ. Идея проста: программа запускается с правами root, но как можно скорее она переключается на некоторую учетную запись пользователя с минимальными привилегиями (без входа в систему, chroot-ed в ее домашний каталог и т. Д.) Таким образом, даже если это скомпрометировано, это дало бы злоумышленнику очень ограниченный доступ к системе. Кроме того, другие учетные записи пользователей (кроме суперпользователя) не будут иметь доступа к файлам приложения
. Я не уверен, насколько легко было бы запускать настольное приложение, подобное этому.
На самом деле, в этой ситуации я думаю, что запуск веб-браузера в качестве непривилегированного пользователя будет иметь больше смысла. И, конечно, Google дает нам несколько ссылок на эту тему:
Приняв эту идею до крайности (как вы предлагаете в комментариях), вы получите система, похожая на работу Android; на Android каждое приложение работает в пределах собственной учетной записи пользователя, поэтому оно имеет доступ только к собственным файлам. Вероятно, в Ubuntu есть некоторые проблемные области, то есть, если вы загрузили файл с помощью Firefox, запущенного в ограниченной учетной записи, он сможет сохранить его только в своей домашней папке, так что невозможно будет открыть файл в текстовый процессор (который работает как другой пользователь) ...
Что касается сценария запуска, я бы предположил, что скрипт будет запускаться с правами root и вызывать приложения в качестве их соответствующих пользователей. Очевидно, скрипт должен быть доступен только для записи. Читайте о setuid .
Возможно, я ошибаюсь в этом, но я понимаю, что если вы дадите привилегии администратора root и заразитесь вредоносным кодом, тогда вредоносный код также получит привилегии root.
Это мое понимание что по этой причине Ubuntu обрабатывает безопасность по-разному от других дистрибутивов. Он не устанавливает пользователя root. Он устанавливает пользователя, который получает права root, когда этот пользователь, как администратор, нуждается в привилегиях root. Как только задача будет завершена или будет достигнут срок, пользователь с доступом администратора потеряет привилегии root. Это уменьшает риск получения корневого доступа к вредоносному коду.
Вот почему в Ubuntu мы не используем «su», а «sudo» перед командой в терминале.
Это документ, из которого я получу свое понимание:
Ubuntu причины для sudo а не su или root
Я настоятельно рекомендую вам рассмотреть причины, которые разработчики Ubuntu для этого делают. Именно по этим причинам я могу сказать, что то, что вы намереваетесь сделать, небезопасно.
Я цитирую официальный документ:
По умолчанию пароль корневой учетной записи заблокирован в Ubuntu , Это означает, что вы не можете войти в систему как Root напрямую или использовать команду su, чтобы стать пользователем Root. Однако, поскольку физическая сущность Корневой учетной записи существует, все же можно запускать программы с привилегиями на уровне корневого уровня. Здесь происходит sudo - он позволяет авторизованным пользователям (обычно «административным» пользователям, для получения дополнительной информации см. AddUsersHowto) для запуска определенных программ в качестве Root без необходимости знать пароль root.Нет, это не очень хорошая идея. Это может сломаться, и это может позволить эскалации root.
Сохранение базы данных паролей от случайной или злонамеренной экспозиции другими процессами, выполняемыми как один и тот же пользователь, не является тривиальным, но стоит попробовать. Но, это намного лучше сделано вверх по течению в проекте Keypassx и другими средствами, кроме запуска его как root.
Нет, это не очень хорошая идея. Это может сломаться, и это может позволить эскалации root.
Сохранение базы данных паролей от случайной или злонамеренной экспозиции другими процессами, запущенными как один и тот же пользователь, не является тривиальным, но стоит попробовать. Но это намного лучше сделано вверх по течению в проекте Keypassx и другими средствами, кроме запуска его как root.
Нет, это не очень хорошая идея. Это может сломаться, и это может позволить эскалации root.
Сохранение базы данных паролей от случайной или злонамеренной экспозиции другими процессами, запущенными как один и тот же пользователь, не является тривиальным, но стоит попробовать. Но это намного лучше сделано вверх по течению в проекте Keypassx и другими средствами, кроме запуска его как root.
Возможно, я ошибаюсь в этом, но я понимаю, что если вы даете привилегии root, и он получает компрометацию от вредоносного кода, тогда вредоносный код также получает привилегии root.
Это мое понимание что по этой причине Ubuntu обрабатывает безопасность по-разному от других дистрибутивов. Он не устанавливает пользователя root. Он устанавливает пользователя, который получает права root, когда этот пользователь, как администратор, нуждается в привилегиях root. Как только задача будет завершена или будет достигнут срок, пользователь с доступом администратора потеряет привилегии root. Это уменьшает риск получения корневого доступа к вредоносному коду.
Вот почему в Ubuntu мы не используем «su», а «sudo» перед командой в терминале.
Это документ, из которого я получаю свое понимание:
Ubuntu причины для sudo, а не su или root
Я настоятельно рекомендую вам рассмотреть причины, которые разработчики Ubuntu для этого делают. Именно по этим причинам я могу сказать, что то, что вы намереваетесь сделать, небезопасно.
Я цитирую официальный документ:
По умолчанию пароль учетной записи root заблокирован в Ubuntu. Это означает, что вы не можете войти в систему как Root напрямую или использовать команду su, чтобы стать пользователем Root. Однако, поскольку физическая сущность Корневой учетной записи существует, все же можно запускать программы с привилегиями на уровне корневого уровня. Здесь происходит sudo - он разрешает авторизованным пользователям (обычно «административным» пользователям, для получения дополнительной информации см. AddUsersHowto), чтобы запускать определенные программы в качестве корня без необходимости знать пароль root.
blockquote>