💇 Как удаленно выполнить функцию оболочки |

💇 Как удаленно выполнить функцию оболочки

Мануал

Иногда очень удобно определить функцию оболочки и выполнить ее удаленно.

Это действительно весело.

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

Определите функцию find_setuid, которая будет использоваться для поиска файлов с разрешениями setuid.

Это довольно просто, но в то же время он служит отличным примером для этого варианта использования.

$ function find_setuid() { find $(echo $PATH | tr ":" " ") -user root -perm -4000 -exec ls -lh {} \;; }

Я буду использовать команду declare, чтобы получить определение функции.

$ declare -f find_suid
find_setuid () 
{ 
    find $(echo $PATH | tr ":" " ") -user root -perm -4000 -exec ls -lh {} \;
}

Выполните функцию find_setuid на удаленном сервере, предполагая, что будет использоваться Bash.

$ ssh cloud.sleeplessbeastie.eu "$(declare -f find_setuid); find_setuid"
-rwsr-xr-x 1 root root 31K May 17  2017 /usr/bin/newgrp
-rwsr-xr-x 1 root root 57K May 17  2017 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 133K Jun  5  2017 /usr/bin/sudo
-rwsr-xr-x 1 root root 18K May 24  2017 /usr/bin/pkexec
-rwsr-xr-x 1 root root 45K May 17  2017 /usr/bin/passwd
-rwsr-xr-x 1 root root 40K May 17  2017 /usr/bin/chfn
-rwsr-xr-x 1 root root 31K May 17  2017 /usr/bin/chsh
-rwsr-xr-x 1 root root 35K Mar  7  2018 /bin/mount
-rwsr-xr-x 1 root root 55K Nov 10  2016 /bin/ping
-rwsr-xr-x 1 root root 22K Mar  7  2018 /bin/umount
-rwsr-xr-x 1 root root 31K May 17  2017 /bin/su

Выполните функцию find_setuid на удаленном сервере, гарантируя, что Bash будет использоваться.

$ ssh cloud.sleeplessbeastie.eu /bin/bash -c "\"$(declare -f find_setuid);find_setuid\""
-rwsr-xr-x 1 root root 31K May 17  2017 /usr/bin/newgrp
-rwsr-xr-x 1 root root 57K May 17  2017 /usr/bin/gpasswd
-rwsr-xr-x 1 root root 133K Jun  5  2017 /usr/bin/sudo
-rwsr-xr-x 1 root root 18K May 24  2017 /usr/bin/pkexec
-rwsr-xr-x 1 root root 45K May 17  2017 /usr/bin/passwd
-rwsr-xr-x 1 root root 40K May 17  2017 /usr/bin/chfn
-rwsr-xr-x 1 root root 31K May 17  2017 /usr/bin/chsh
-rwsr-xr-x 1 root root 35K Mar  7  2018 /bin/mount
-rwsr-xr-x 1 root root 55K Nov 10  2016 /bin/ping
-rwsr-xr-x 1 root root 22K Mar  7  2018 /bin/umount
-rwsr-xr-x 1 root root 31K May 17  2017 /bin/su

Проверьте функцию find_setuid на удаленном сервере, чтобы убедиться, что Bash будет использоваться.

$ ssh cloud.sleeplessbeastie.eu /bin/bash -vc "\"$(declare -f find_setuid)\""
find_setuid () 
{ 
    find /usr/local/bin /usr/bin /bin /usr/games -user root -perm -4000 -exec ls -lh {} \;
}

Обратите внимание, что PATH развернут на удаленном сервере, как и ожидалось.

Именно поэтому эта функция оболочки служит отличным примером для этого варианта использования.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий