Какой механизм не позволяет любому пользователю получить доступ к файлам другого пользователя через root?

Какой механизм не позволяет любому пользователю получить доступ к файлам другого пользователя через root?

Что защищает многопользовательскую систему от доступа любого пользователя к файлам других пользователей через root? В контексте вопрос основан на моем понимании следующим образом:

Есть две команды, связанные с привилегиями root, sudoи su. С помощью sudoвы не становитесь другим пользователем (включая root). sudoимеет предопределенный список одобренных команд, которые он выполняет от вашего имени. Поскольку вы не становитесь root или другим пользователем, вы просто аутентифицируетесь с помощью собственного пароля.

С su, вы фактически становитесь пользователем root или другим пользователем. Если вы хотите стать пользователем Bob, вам нужен пароль Bob. Чтобы стать пользователем root, вам нужен пароль root (который будет определен в многопользовательской системе).

рефери:howtogeek.com:

suпереключает вас на учетную запись пользователя root и требует пароль учетной записи root. sudoзапускает одну команду с привилегиями root — она не переключает вас на учетную запись пользователя root.

и

Если вы выполните команду su bob, вам будет предложено ввести пароль Боба, и оболочка переключится на учетную запись пользователя Боба; аналогичное описание см. наcomputerhope.com

tecmint.com:

«sudo» — это двоичный setuid root, который выполняет команды root от имени авторизованных пользователей.

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

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

Если любой пользователь может стать пользователем root без пароля root, какой механизм защищает файлы пользователя от несанкционированного доступа?

решение1

TheглавныйРазница между sudoи suзаключается в механизме, используемом для аутентификации. При этом suпользователь должен знать rootпароль (который должен быть тщательно охраняемым секретом), в то время как sudoобычно настраивается на запрос собственного пароля пользователя. Чтобы остановить всех пользователей, устраивающих беспорядки, привилегии, выдаваемые командой sudo, к счастью, можно настроить с помощью /etc/sudoersфайла.

Обе команды довольно часто запускают команду от имени другого пользователя root.

sudo su -работает в приведенном вами примере, потому что пользователь (или группа, членом которой является пользователь) настроен в файле /etc/sudoers. То есть, онидопустимыйдля использования sudo. Вооружившись этим, они используют , sudoчтобы временно получить rootпривилегии (которые предоставляются по умолчанию, если имя пользователя не указано) и rootзапустить другую оболочку ( su -). Теперь у них есть rootдоступ, не зная rootпароля .

И наоборот, если вы не разрешите пользователю использовать, sudoто он не сможет sudo su -.

В дистрибутивах обычно есть группа (часто называемая wheel), членам которой разрешено использовать sudoдля запуска всех команд. Удаление их из этой группы будет означать, что они sudoвообще не смогут использовать по умолчанию.

Строка, /etc/sudoersкоторая это делает, выглядит так:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

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

Более разумным компромиссом была бы настройка, sudoкоторая дала бы вам более тонкий контроль над тем, кому разрешено использовать sudo, а кому нет, а также какие команды им разрешено использовать (вместо настройки по умолчаниювсекоманды). Например,

## Allows members of the users group to mount and unmount the
## cdrom as root
%users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

(полезно только если предыдущая строка %wheel закомментирована или в wheelгруппе нет пользователей).

Вероятно, дистрибутивы не поставляются с такой детальной конфигурацией в стандартной комплектации, поскольку невозможно предсказать, какие требования администратора предъявляются к его/ее пользователям и системе.

Суть в том, чтобы изучить детали sudoи вы можете остановиться sudo su -, разрешив другие команды, которые не дают rootдоступ к оболочке пользователя или доступ к командам, которые могут изменять файлы других пользователей. Вам следует серьезно подумать о том, кому вы разрешаете использовать sudoи на каком уровне.

ПРЕДУПРЕЖДЕНИЕ:Всегда используйте visudoкоманду для редактирования sudoersфайла, поскольку она проверяет ваши правки за вас и пытается спасти вас от неловкой ситуации, когда неправильно настроенный файл (из-за синтаксической ошибки) не позволяет вам использовать sudoдля редактирования любых ошибок. Это особенно актуально для Debian/Ubuntu и вариантов, где rootучетная запись отключена по умолчанию.

решение2

Есть две команды, связанные с привилегиями root, sudoи su. С помощью sudoвы не становитесь другим пользователем (включая root). sudoимеет предопределенный список одобренных команд, которые он выполняет от вашего имени (это отвечает на мой вопрос в комментарии о том, как вы предоставляете выбранным пользователям выборочные привилегии). Поскольку вы не становитесь root или другим пользователем, вы просто аутентифицируетесь с помощью собственного пароля.

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

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

С su, вы фактически становитесь пользователем root или другим пользователем. Если вы хотите стать пользователем Bob, вам нужен пароль Bob. Чтобы стать пользователем root, вам нужен пароль root (который будет определен в многопользовательской системе).

Вы также можете стать любым пользователем sudo, используя свой собственный пароль, при условии, что правила в нем /etc/sudoersнастроены так, чтобы это было разрешено. sudoПозволяет вам ограничивать команды, которые может выполнять пользователь, и избавляет вас от необходимости раскрывать пароли определенных пользователей или даже не иметь пароля вообще для определенных пользователей, запрещая обычные входы в систему.

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

Все это имеет смысл, пока вы не посмотрите на что-то вроде [этой ссылки][1], которая представляет собой руководство по использованию sudo -Vи sudo su -получению прав root с использованием только вашего собственного пароля.

Если любой пользователь может стать пользователем root без пароля root, какой механизм защищает файлы пользователя от несанкционированного доступа? [1]:http://home.ubalt.edu/abento/linux/terminal/sudo.html

Прежде всего, sudo -Vвыводит версию вашего sudoдвоичного файла и sudo -vпроверяет кэшированные учетные данные, которые не имеют значения для дальнейшей части.

Во-вторых, sudo suэто довольно глупое занятие, поскольку уже существует sudoвозможность запустить интерактивную оболочку от имени указанного пользователя ( sudo -i), а запуск одного инструмента авторизации привилегий ( sudo) для запуска другого инструмента авторизации привилегий ( su) действительно глуп.

В-третьих, «любой пользователь» должен обязательноНЕТиметь возможность стать root. Если они могут, то вся ваша система полностью незащищена. Пользователь root обладает всеми полномочиями и может делать все, что угодно, и запуск команды как root — это лишь одно из применений sudo, это общий инструмент авторизации, который может позволить определенному пользователю запустить определенную команду как определенному пользователю.

решение3

Короткий ответ — нет.

Если вы разрешите кому-либо (например, simth) войти в группу sudoer, он может выдать, sudo su -затем стать пользователем root, затем другим пользователем (например, wesson). Это альтернативный способ дать пароль root пользователю simth. Однако он (smith) может изменить пароль root.

Отмечает также, что

1) необходимо указать в /etc/sudoersстроке типа

%sudo   ALL=(ALL:ALL) ALL

2) smith (в примере выше) должен входить в группу sudo.

это не настройка по умолчанию.

Вы должны полностью доверять кому-то (кузнецу), чтобы получить sudo su -доступ.

решение4

Ни один из этих ответов не отвечает на вопрос каким-либо образом. Правильный ответ — права доступа к файлам запрещают любому пользователю получать доступ к файлам другого пользователя, включая root. Да, есть способы запретить root читать и писать в ваши файлы (или каталоги, которые являются файлами).

Например, каталог может содержать следующие записи:

drwxrwxr-x 13 root root 8192 17 янв. 15:38 bash-5.2.15 drwxr-xr-x 15 root root 4096 20 янв. 08:13 биткойн drwxr-xr-x 8 root root 4096 6 дек. 16:37 boost_1_84_0 -rwx------ 1 root root 13210 19 янв. 17:44 doit_configure -rwx------ 1 root root 7491 17 окт. 11:44 doit_configure_bash

Каталоги начинаются с 'd'. Обычные файлы начинаются с '-'. Затем идут разрешения на файл/каталог, например rwxrwxrwx, разбитые на три раздела: владелец, группа и другие. r=чтение, w=запись, x=разрешение на выполнение соответственно.

Командные утилиты «su» и «sudo» помогают с доступом, но они не являются настоящим ответом на исходный вопрос.

Связанный контент