Почему su world является исполняемым файлом?

Благодаря подсказкам @Gilles я собрал кое-что, что мигает командным окном, когда в видимом сеансе есть звонок. Для этого я написал быстрый bash-скрипт :

.
#!/bin/bash
#flash console as a visible bell
#requires installation of xcalib

xcalib -i -a
sleep 0.01
xcalib -i -a

и ввел полный путь к этому сценарию в разделе «Выполнить команду» для «Bell in Visible Session» в диалоговом окне консоли «Настройка уведомлений».

20
16.08.2019, 22:27
5 ответов

Один момент, который отсутствует в ответе ilkkachu , заключается в том, что повышение до корня — это только одно конкретное использование для su. Общая цель su — открыть новую оболочку под учетной записью другого пользователя. Этот другой пользователь может быть root(и, возможно, чаще всего ), но suможно использовать для принятия любой личности, которую может аутентифицировать локальная система.

Например, если я вошел в систему как пользователь jimи хочу исследовать проблему, о которой сообщил mike, но которую я не могу воспроизвести, я могу попробовать войти в систему как mike, и запускает команду, которая доставляет ему проблемы.

13:27:20 /home/jim> su -l mike
Password:(I type mike's password (or have him type it) and press Enter)
13:27:22 /home/mike> id
uid=1004(mike) gid=1004(mike) groups=1004(mike)
13:27:25 /home/mike> exit  # this leaves mike's login shell and returns to jim's
13:27:29 /home/jim> id
uid=1001(jim) gid=1001(jim) groups=1001(jim),0(wheel),5(operator),14(ftp),920(vboxusers)

Использование опции -lпараметра suприводит к имитации полного входа в систему (на странице man).

Однако вышеизложенное требует знания пароля пользователя mike. Если у меня есть доступ sudo, я могу войти как mikeдаже без его пароля.

13:27:37 /home/jim> sudo su -l mike
Password:(I type my own password, because this is sudo asking)
13:27:41 /home/mike>

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

40
27.01.2020, 19:43

У вас уже есть несколько хороших ответов, но они не касаются одной части вашего поста.

As far as I can tell, the world execute permission on /usr/bin/su is the only avenue for users attempting to gain root on my server.

Это опасное предположение. Если вы установили хороший пароль для root, то в большинстве случаев гораздо более вероятно, что успешное повышение привилегий будет связано с использованием ошибки в ядре или двоичном файле setuid (, который вы, конечно, также можете удалить. бит setuid из них, но passwd- это setuid, и если вы хотите обеспечить высокий уровень безопасности, вы также должны предлагать это своим пользователям, и отказ им в возможности смены пароля несовместим с этим ).

7
27.01.2020, 19:43

Исторически (на не -GNU unices )этого не было, или, по крайней мере, вручную проверялось, входите ли вы в группу под названием "wheel", разрешенную su. Версия GNU suне воспроизводила эту функциональность из-за идеологии RMS в отношении контроля доступа в то время :

.
Why GNU `su' does not support the `wheel' group
===============================================

   (This section is by Richard Stallman.)

   Sometimes a few of the users try to hold total power over all the
rest.  For example, in 1984, a few users at the MIT AI lab decided to
seize power by changing the operator password on the Twenex system and
keeping it secret from everyone else.  (I was able to thwart this coup
and give power back to the users by patching the kernel, but I wouldn't
know how to do that in Unix.)

   However, occasionally the rulers do tell someone.  Under the usual
`su' mechanism, once someone learns the root password who sympathizes
with the ordinary users, he or she can tell the rest.  The "wheel
group" feature would make this impossible, and thus cement the power of
the rulers.

   I'm on the side of the masses, not that of the rulers.  If you are
used to supporting the bosses and sysadmins in whatever they do, you
might find this idea strange at first.

Вы можете найти гораздо больше информации по этому вопросу, погуглив "wheel group rms" или что-то подобное.

20
27.01.2020, 19:43

Другие ответы верны, говоря, что «su» позволяет вам входить в учетные записи, отличные от root.

Одно замечание по поводу "sudo su". Это фактически позволяет вам войти в учетную запись root, не зная пароля root. Вам нужно знать пароль учетной записи, с которой вы запускаете sudo, а также иметь эту учетную запись в файле sudoers.

-2
27.01.2020, 19:43

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

Если вы беспокоитесь о том, что кто-то подберёт пароль root, вы можете просто отключить его. (сделать хэш недействительным, чтобы ни один заданный пароль не мог совпадать с ним)

Не знаю насчет консенсуса, но я бы посчитал, что возможность входа в систему как root напрямую является проблемой безопасности сама по себе.

1
27.01.2020, 19:43

Теги

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