1

Я знаю, что мы можем выполнить команду / скрипт как супер / другой пользователь, используя команду sudo . Но есть ли вероятность, что сама утилита sudo недоступна / удалена пользователем. Если это так, что может быть альтернативой sudo кроме su? Кроме того, sudo и su служат одной и той же цели?

5 ответов5

7

«sudo» позволяет запускать любую программу от имени любого пользователя. Это «setuid root», так как для этого самой программе требуются права root. Сила sudo в том, что вы можете легко настроить, кто что может делать. Вы можете разрешить пользователю выполнять nmap (и только nmap), используя sudo.

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

Причиной использования двух вышеуказанных программ является подотчетность. Sudo регистрирует все сделанные запросы. Поэтому администратору очень легко отслеживать, что пользователь сделал, используя привилегии root. Если вы предоставляете доступ к оболочке, пользователь может делать все, что ему нравится (это «черная дыра»). (Конечно, расширенная регистрация на уровне ядра мешает этому).

Конечно, эти программы также могут быть помечены setuid . Это изменяет полномочия владельца двоичного файла при его выполнении. Если вам удастся активировать бит setuid например, в /bin/bash и установить владельца /bin/bash в root , вы будете иметь права root каждый раз, когда вы выполняете /bin/bash .

Наконец, физический доступ к машине позволит вам делать все что угодно. Вы можете загрузиться с флешки и получить доступ к локальной файловой системе. Вы даже можете настроить свой загрузчик на использование другого процесса init который немедленно запускает оболочку в однопользовательском режиме (без запроса пароля).

5

Кажется, что никто не ответил на вопрос о том, существуют ли альтернативы sudo, кроме su, поэтому вам может быть интересно узнать, что сайт sudo на самом деле поддерживает список альтернатив sudo:

http://www.sudo.ws/other.html

Список включает в себя как открытое, так и коммерческое программное обеспечение. Вот альтернативы sudo с открытым исходным кодом, перечисленные на данный момент:

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

2

Войдите в систему как пользователь root (если это разрешено на вашем tty) или перезагрузите компьютер и войдите с помощью init =/bin/bash в командной строке, чтобы восстановить необходимые функции.

Я отмечаю, что только root может удалить sudo.

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

1

Если на машине установлен openssh-server , альтернативой sudo может быть:

ssh root@localhost ..command.. ..goes.. ..here..

Если это не было отключено, то есть su как вы упомянули:

su - root -c "..command.. ..goes.. ..here.."
-3

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .