нужно выполнить скрипт с правами root. Я делаю файл
rwsr-xr-x root whell test.shв нем одна строчка mkdir /var/mail/ttt
но при запуске непривилегированным юзером скрипт выдает ошибку типа access denied. Почему??? Вроде ж как скрипт отрабатывает от имени root.
Как решить мою задачу?
>Вроде ж как скрипт отрабатывает от имени root.
>Как решить мою задачу?SUID и SGID биты на скрипты не действуют.
sudo вам поможет.
>>Вроде ж как скрипт отрабатывает от имени root.
>>Как решить мою задачу?
>
>SUID и SGID биты на скрипты не действуют.
>sudo вам поможет.
кое-где действует - например в HP-UX
>нужно выполнить скрипт с правами root. Я делаю файл
>rwsr-xr-x root whell test.sh
>
>в нем одна строчка mkdir /var/mail/ttt
>но при запуске непривилегированным юзером скрипт выдает ошибку типа access denied. Почему???
>Вроде ж как скрипт отрабатывает от имени root.
>Как решить мою задачу?Напиши на си:
int main()
{
setuid(0);
system("scriptname");return 0;
}И у этой проги поставь suid бит.
Удачи.
Где вы увидели suid бит.
rwS[x]?-r-xr-x , парень просто ошибся 755
он ведь не это имел ввиду... srwxr-xr-x
============================================
А с правами все просто. если Вася сделал скрипт , то Вася или ROOT могут его пускануть.А если скрипт сделал ROOT , то Вася его не запустит.
Это же бардак какой будет если все будут с правами ROOTа :)))
>Где вы увидели suid бит.
>rwS[x]?-r-xr-x , парень просто ошибся 755
> он ведь не это имел ввиду... srwxr-xr-xrwsr-xr-x root whell test.sh
^~ % chmod 0755 mtsend
~ % ls -la mtsend
-rwxr-xr-x 1 chip users 10081 Feb 16 16:17 mtsend*
~ % chmod 4755 mtsend
~ % ls -la mtsend
-rwsr-xr-x 1 chip users 10081 Feb 16 16:17 mtsend*
~ %продолжать ?
>============================================
> А с правами все просто. если Вася сделал скрипт , то
>Вася или ROOT могут его пускануть.А если скрипт сделал ROOT
>, то Вася его не запустит.Вы вообще о чем ?!
/void $ ls -la /usr/bin/shar
-r-xr-xr-x 1 root wheel 2609 Feb 11 00:47 /usr/bin/shar*
/void $ file /usr/bin/shar
/usr/bin/shar: Bourne shell script text executable
/void $ /usr/bin/shar `find /usr/ports/Mk/` > /dev/null
/void $ echo $?
0
/void $Если права на скрипт 0755, то запустить в общем случае его может любой.
>Это же бардак какой будет если все будут с правами ROOTа
>:)))no comments
>>Где вы увидели suid бит.
>>rwS[x]?-r-xr-x , парень просто ошибся 755
>> он ведь не это имел ввиду... srwxr-xr-x
>
>rwsr-xr-x root whell test.sh
> ^
>
>~ % chmod 0755 mtsend
>~ % ls -la mtsend
>-rwxr-xr-x 1 chip users 10081 Feb 16 16:17 mtsend*
>
>~ % chmod 4755 mtsend
>~ % ls -la mtsend
>-rwsr-xr-x 1 chip users 10081 Feb 16 16:17 mtsend*
>
>~ %
>
>продолжать ?
>
>>============================================
>> А с правами все просто. если Вася сделал скрипт , то
>>Вася или ROOT могут его пускануть.А если скрипт сделал ROOT
>>, то Вася его не запустит.
>
>Вы вообще о чем ?!
>
>/void $ ls -la /usr/bin/shar
>-r-xr-xr-x 1 root wheel 2609 Feb 11 00:47 /usr/bin/shar*
>
>/void $ file /usr/bin/shar
>/usr/bin/shar: Bourne shell script text executable
>/void $ /usr/bin/shar `find /usr/ports/Mk/` > /dev/null
>/void $ echo $?
>0
>/void $
>
>Если права на скрипт 0755, то запустить в общем случае его может
>любой.
>
>>Это же бардак какой будет если все будут с правами ROOTа
>>:)))
>
>no commentsЗапустить-то может любой, а вот выполняться этот скрипт будет под именем Васи, а не рута, поэтому если этому скрипту нужны большие привелегии, чем у Васи. Если ему нужно подправить какой-то файл, доступный только руту, то он не сможет этого сделать. Но скрипт не может быть suid. Именно поэтому я и предложил написать маленькую запускалку на си. У меня так доступ к access листам один кекс имеет на шлюзе в инет.
>Но скрипт не может быть
>suid. Именно поэтому я и предложил написать маленькую запускалку на си.есть еще suidperl
>>Но скрипт не может быть
>>suid. Именно поэтому я и предложил написать маленькую запускалку на си.
>
>есть еще suidperl
Угу
>Запустить-то может любой, а вот выполняться этот скрипт будет под именем Васи,
>а не рута, поэтому если этому скрипту нужны большие привелегии, чем
>у Васи. Если ему нужно подправить какой-то файл, доступный только руту,
>то он не сможет этого сделать. Но скрипт не может быть
>suid. Именно поэтому я и предложил написать маленькую запускалку на си.
>У меня так доступ к access листам один кекс имеет на
>шлюзе в инет.как уже предлагали sudo . Другими словами Вы изобрели велосипед.
visudo
Cmnd_Alias SCRIPT = /path/to/your/scriptuser_name ALL = NOPASSWD : SCRIPT
и пользователю (sh) alias script='sudo /path/to/your/script'
за подробностями man sudoers
>>Запустить-то может любой, а вот выполняться этот скрипт будет под именем Васи,
>>а не рута, поэтому если этому скрипту нужны большие привелегии, чем
>>у Васи. Если ему нужно подправить какой-то файл, доступный только руту,
>>то он не сможет этого сделать. Но скрипт не может быть
>>suid. Именно поэтому я и предложил написать маленькую запускалку на си.
>>У меня так доступ к access листам один кекс имеет на
>>шлюзе в инет.
>
>как уже предлагали sudo . Другими словами Вы изобрели велосипед.
>visudo
>Cmnd_Alias SCRIPT = /path/to/your/script
>
>user_name ALL = NOPASSWD : SCRIPT
>
>
>и пользователю (sh) alias script='sudo /path/to/your/script'
>
>за подробностями man sudoersСпасибо. Что-то раньше на sudo не обращал внимания, всегда либо сам все делал, либо на Си запускалки писал.
>Спасибо. Что-то раньше на sudo не обращал внимания, всегда либо сам все
>делал, либо на Си запускалки писал.пожалуйста.