Добавление новых оскорблений sudo

Я просто считал другое время, которые отправляют: Где оскорбления sudo хранятся?

Но у меня просто есть красивый вопрос об этих оскорблениях:

Мы можем добавить новые путем добавления, что другой регистрирует (вместо modificating заголовок внутри plugins/sudoers)?

Текущие файлы оскорблений sudo:

  • ins_2001.h
  • ins_classic.h
  • ins_csops.h
  • ins_goons.h
  • insults.h
3
задан 14 November 2019 в 19:22

2 ответа

Нет, Вы не можете просто 'добавить' оскорбления каталога и ожидать, что они будут работать. Единственный способ добавить новые оскорбления состоит в том, чтобы перекомпилировать sudo так, чтобы он включал те оскорбления во время компиляции.

ссылка от Вашего вопроса (, Где sudo' s оскорбления сохранен? ), объясняет, каковы те файлы:

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

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

2
ответ дан 1 December 2019 в 16:15

Можно добавить новые оскорбления только путем замены существующих оскорблений равной или большей длины.

Из второго ответа в Вашей ссылке эти фразы:

ins_2001.h (2 001 оскорбление Космической одиссеи):

/*
 * HAL insults (paraphrased) from 2001.
 */

"Just what do you think you're doing Dave?",
"It can only be attributed to human error.",

Находят файл

$ grepall "Just what do you think you're doing Dave?"
Binary file /usr/lib/sudo/sudoers.so matches

хорошо, мы теперь знаем имя файла. Это было легкой частью.

Резервное копирование файл

Сначала делает резервное копирование (потому что мы всегда не забываем делать то право?):

$ sudo cp -a /usr/lib/sudo/sudoers{.so,.so.bak}

$ ll /usr/lib/sudo/sudoers{.so,.so.bak}
-rw-r--r-- 1 root root 316768 Oct 11 06:01 /usr/lib/sudo/sudoers.so
-rw-r--r-- 1 root root 316768 Oct 11 06:01 /usr/lib/sudo/sudoers.so.bak

Заставляют сценарий

Затем сделать наш сценарий названным sudoinsults:

#!/bin/bash

# NAME: sudoinsult
# PATH: $HOME/askubuntu/
# DESC: For: https://askubuntu.com/questions/1188779/adding-new-sudo-insults
# DATE: November 14, 2019.

# NOTE: Change sudo insults to personal favorites

# Build array of insults from disk
IFS= 

Создают файл данных

, Надо надеяться, никакая потребность объяснить, как создать текстовый файл (подсказка: gedit)

$ cat sudoinsult.txt

Just what do you think you're doing Dave?
Just what do you think you're doing Rick?
It can only be attributed to human error.
It can only be attributed to the beer.

Запущенный скрипт и результаты проверки

$ sudo ./sudoinsult

Replacing: 'Just what do you think you're doing Dave?'
     With: 'Just what do you think you're doing Rick?'
Replacing: 'It can only be attributed to human error.'
     With: 'It can only be attributed to the beer.'
2 Insults replaced.

$ ll /usr/lib/sudo/sudoers{.so,.so.bak}

-rw-r--r-- 1 root root 316768 Nov 14 17:43 /usr/lib/sudo/sudoers.so
-rw-r--r-- 1 root root 316768 Oct 11 06:01 /usr/lib/sudo/sudoers.so.bak

$ grep "Just what do you think you're doing Rick?" /usr/lib/sudo/sudoers.so

Binary file /usr/lib/sudo/sudoers.so matches

$ grep "It can only be attributed to the beer." /usr/lib/sudo/sudoers.so

Binary file /usr/lib/sudo/sudoers.so matches
\n' Arr=( $(cat sudoinsult.txt) ) # Initialize variables File="/usr/lib/sudo/sudoers.so" upper=0 Spaces=" " Spaces="$Spaces"" " [[ ${#Arr[@]} -gt 0 ]] && upper=$(( ${#Arr[@]} - 1 )) [[ $upper -gt 0 ]] && for (( i=0; i<upper; i=i+2 )) ; do Search="${Arr[i]}" # Move array indices to named variables Replace="${Arr[i+1]}" # for a simpler life. printf "Replacing: '%s'\n With: '%s'\n" "$Search" "$Replace" if [[ "${#Search}" -lt "${#Replace}" ]] ; then echo "Replacement can't be longer than original" continue elif [[ "${#Search}" -lt 8 ]] ; then echo "Original insult cannot be less than 8 characters" continue elif [[ "${#Search}" -gt "${#Spaces}" ]] ; then echo "Original insult cannot be longer than ${#Spaces} characters" continue elif [[ "${#Replace}" -lt 1 ]] ; then echo "Replacement insult cannot be less than 1 character" continue elif ! grep "$Search" "$File" >/dev/null ; then echo "Search insult not found in $File" continue fi # Pad replacement with spaces as needed. ReplaceS="$Replace${Spaces:0:$((${#Search} - ${#Replace}))}" [[ "${#ReplaceS}" -ne "${#Search}" ]] && \ { echo Internal error ReplaceS different length than Search; exit; } # Looks wrong: https://unix.stackexchange.com/a/354493/200094 #y="${y:0:40}${forty:0:$((40 - ${#y}))}" #echo "'${y}'" sed -i "s/$Search/$ReplaceS/" "$File" (( InsultCount++ )) done if [[ $upper -gt 0 ]] ; then echo "$InsultCount Insults replaced." else echo "Insult file (sudoinsult.txt) does not exist or only has one line." >2 fi

Создают файл данных

, Надо надеяться, никакая потребность объяснить, как создать текстовый файл (подсказка: gedit)

$ cat sudoinsult.txt

Just what do you think you're doing Dave?
Just what do you think you're doing Rick?
It can only be attributed to human error.
It can only be attributed to the beer.

Запущенный скрипт и результаты проверки

$ sudo ./sudoinsult

Replacing: 'Just what do you think you're doing Dave?'
     With: 'Just what do you think you're doing Rick?'
Replacing: 'It can only be attributed to human error.'
     With: 'It can only be attributed to the beer.'
2 Insults replaced.

$ ll /usr/lib/sudo/sudoers{.so,.so.bak}

-rw-r--r-- 1 root root 316768 Nov 14 17:43 /usr/lib/sudo/sudoers.so
-rw-r--r-- 1 root root 316768 Oct 11 06:01 /usr/lib/sudo/sudoers.so.bak

$ grep "Just what do you think you're doing Rick?" /usr/lib/sudo/sudoers.so

Binary file /usr/lib/sudo/sudoers.so matches

$ grep "It can only be attributed to the beer." /usr/lib/sudo/sudoers.so

Binary file /usr/lib/sudo/sudoers.so matches
1
ответ дан 1 December 2019 в 16:15

Другие вопросы по тегам:

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