LINUX.ORG.RU

suid bash


0

0

sergey@sdio:~$ mkdir aaa
sergey@sdio:~$ cd aaa
sergey@sdio:~/aaa$ sudo cp /bin/bash ./
Password:
sergey@sdio:~/aaa$ ls -l ./bash 
-rwxr-xr-x  1 root root 625228 Feb 28 20:10 ./bash
sergey@sdio:~/aaa$ sudo chmod u+s ./bash 
sergey@sdio:~/aaa$ ls -l ./bash 
-rwsr-xr-x  1 root root 625228 Feb 28 20:10 ./bash
sergey@sdio:~/aaa$ ./bash -c 'touch tttt'
sergey@sdio:~/aaa$ ls -l
total 612
-rwsr-xr-x  1 root   root   625228 Feb 28 20:10 bash
-rw-r--r--  1 sergey sergey      0 Feb 28 20:11 tttt
              ^^^^^^^^^^^^^^ почему не root:root ???
sergey@sdio:~/aaa$ cd ..
sergey@sdio:~$ rm -rf aaa/
sergey@sdio:~$ 

Debian/Sarge, selinux/grsecurity отсутствуют
$ uname -a
Linux sdio 2.6.8-2-686-smp #1 SMP Tue Aug 16 12:08:30 UTC 2005 i686 GNU/Linux
★★★★★

Ответ на: комментарий от sdio

sergey@sdio:~/aaa$ ./bash -c 'head -n1 /etc/shadow'
head: cannot open `/etc/shadow' for reading: Permission denied
sergey@sdio:~/aaa$ 


sergey@sdio:~/aaa$ ls -l ksh
-rwsr-xr-x  1 root root 180812 Feb 28 20:38 ksh
sergey@sdio:~/aaa$ ./ksh -c 'head -n1 /etc/shadow'
root:$1$VRah.HMg$l0zgOfsd7rahU88tqPepL.:13162:0:99999:7:::
sergey@sdio:~/aaa$

sdio ★★★★★
() автор топика
Ответ на: комментарий от UVV

uvv% ll
-rwsr-xr-x 1 root root 454748 2005-08-03 09:45 zsh*

uvv% ./zsh -c 'touch tttt'
uvv% ll
-rw-r--r-- 1 root users 0 2006-03-01 01:47 tttt
-rwsr-xr-x 1 root root 454748 2005-08-03 09:45 zsh*
uvv%

UVV ★★★★★
()
Ответ на: комментарий от sdio

ну сделай ты запускалку suid'ную superbash.c
#include <sys/types.h>
#include <unistd.h>
#define RunShell "/bin/bash"

main()
{
setuid(geteuid()); // become suid
setgid(getegid());
execlp(RunShell,RunShell,0);
exit(0);
}

anonymous
()
Ответ на: комментарий от UVV

Ты сам отвечать вызвался, чего теперь орешь?

sdio ★★★★★
() автор топика
Ответ на: комментарий от sdio

Коментарий из исходников баша

/* Non-zero means that this shell is running in `privileged' mode. This is required if the shell is to run setuid. If the `-p' option is not supplied at startup, and the real and effective uids or gids differ, disable_priv_mode is called to relinquish setuid status. */

попробуй `-p'

kosmonavt
()
Ответ на: комментарий от kosmonavt

Оно. Спасибо!

И в мане есть, в жизни бы не нашел, так как искал по uid/euid, a они полностью написали "effective user id", а весь ман от корки до корки читать еще то развлечение.

sdio ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.