Непонятно, как любой пользователь может изменить файл с помощью sudo

Возможно, вы сможете каким-то образом преобразовать файлы из командной строки, просмотрев файл

/usr/share/inkscape/extensions/dpiswitcher.py

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

$ dpiswitcher.py /tmp/drawing.svg  >/tmp/new.svg
$ xmltidy  /tmp/new.svg 
$ xmltidy  /tmp/drawing.svg 
$ diff /tmp/drawing.svg  /tmp/new.svg

< <svg... width="210mm" height="297mm" viewBox="0 0 744.09448819 1052.3622047" id="svg3336" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="drawing.svg">
---
> <svg... width="793.700787417" height="1122.51968506" viewBox="0.0 0.0 793.700787403 1122.51968501" id="svg3336" version="1.1" inkscape:version="0.91 r13725" sodipodi:docname="drawing.svg">
17c17
<   <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1">
---
>   <g inkscape:label="Layer 1" inkscape:groupmode="layer" id="layer1" transform="matrix(1.066667,0.000000,0.000000,1.066667,0.000000,0.000000)">

Это встроенная -справка:

$ dpiswitcher.py --help
Usage: dpiswitcher.py [options] SVGfile
Options:
  --id=IDS              id attribute of object to manipulate
  --selected-nodes=SELECTED_NODES
            id:subpath:position of selected nodes, if any
  --switcher=SWITCHER   Select the DPI switch you want
  --action=ACTION       

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

4
25.10.2020, 16:25
3 ответа

Как объясняли другие, -sudo позволяет вам временно получить административные привилегии (, эффективно выполняя вашу команду от имени пользователя root ). Это все же безопаснее, чем просто войти в систему как пользователь root -, так как это разрешение получают только команды с префиксом sudo (, защищающие вас от случайного запуска чего-либо с правами root, потому что вы забыли, что это корневая оболочка ).

Для среды домашнего рабочего стола обычно большинству пользователей предоставляется полный доступ к sudo, обычно через группу ('admin' в случае Ubuntu, но это может отличаться в зависимости от дистрибутива ). Среда производственного сервера, скорее всего, будет настроена по-другому.

Строго говоря, то, что пользователь может делать с помощью sudo, контролируется через файл /etc/sudoers -, в котором есть набор таких строк:

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

Здесь есть много возможностей для управления тем, какие команды можно запускать при желании. Вот справочная страница, которая более подробно объясняет синтаксис:https://www.sudo.ws/man/1.8.15/sudoers.man.html

Каждая строка может ограничивать, какие команды могут выполняться данным пользователем или группой (и от имени каких пользователей )-, поэтому, если вы хотите изменить, кто может использовать sudo, или ограничить их, у вас есть два варианта:

  • Добавить или удалить их из группы (, например. Администратор ), чтобы добавить или удалить соответствующие привилегии sudo.
  • Измените привилегии sudo для связанного пользователя или группы в /etc/sudoers.

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

6
18.03.2021, 22:56

Команда sudoпредоставляет пользователю временные права администратора. Если вы используете это, вы обходите все элементы управления безопасностью. В управляемой многопользовательской системе очень немногие пользователи имеют это право -, как правило, только системные администраторы. В домашней системе, вероятно, у вас будет это по умолчанию, чтобы вы могли следить за своей собственной системой.

Полностью удалить FolderA. Затем попробуйте снова ввести команды, не используя sudo, и посмотрите, что произойдет

.
32
18.03.2021, 22:56

Использование sudoиз учетной записи пользователя означает, что вы больше не работаете как этот пользователь, а каксуперпользователь. Что касается системы, userAи userBимеют одинаковые привилегии, -они оба являютсясуперпользователями , другими словами.

Если вы хотите ограничить привилегии одного пользователя под sudo, вы можете сделать это в файле sudoersс помощью команды sudo visudo. Обратите внимание, что файл sudoers должен быть открыт для редактирования таким образом.

# This file MUST be edited with the 'visudo' command as root.

11
18.03.2021, 22:56

Теги

Похожие вопросы