Я наткнулся на проблему с доступом к системным файлам с помощью suid
исполняемых файлов./etc/shadow и suid dilemma
Я написал эти короткие ДОУ:
#include <unistd.h>
#include <stdio.h>
int main()
{
if (access("/etc/shadow", W_OK) == 0)
printf("shadow writable!\n");
else
printf("shadow not writable\n");
return 0;
}
тогда я скомпилирован и дал ему SUID с chown root:root
и chmod u+s
(пробежал корень)
это полученное исполняемого
-rwsrwxr-x 1 root root 4847 Apr 14 08:40 a.out
целевой файл имеет следующие права:
-rw------- 1 root root 1836 Oct 8 2014 /etc/shadow
Когда я запускал программу, он дал этот выход:
[[email protected] ~]$ ./a.out
shadow not writable
Почему это происходит? Я имею в виду ... Я обращаюсь к файлу как root
и root
CAN пиши в этом файле!
Примечание: selinux
отключен
идеи?
Вы должны попробовать использовать 'vipw -s' [Лучший способ редактирования теневого файла] (http://www.cyberciti.biz/tips/what -is-The-лучший способ-на-редактировать-etcpasswd-тен-и-групповые файлы.html) –