распечатать файл / etc / shadow в консоли

Как изменить разрешения исполняемого файла для доступа к файлу / etc / shadow?

Пока у меня есть следующий сценарий bash:

#!/bin/bash gcc print.c -o print chmod +s print ./print exit 0 

и следующий c-код:

 #include <stdio.h> #include <stdlib.h> int main() { FILE *open = fopen("/etc/shadow", "r"); int tmp; do { tmp = fgetc (open); printf("%c", tmp); } while (tmp != EOF); fclose(open); return 0; } 

Я могу легко распечатать файл /etc/passwd , но я получаю сброшенное ядро, когда пытаюсь получить доступ к файлу /etc/shadow .

  • SUID не влияет на каталоги с Linux
  • Почему биты режима S_ISUID и S_ISGID были очищены, когда владелец или группа исполняемого файла были изменены непривилегированным пользователем
  • Почему setuid не работает?
  • Как заставить / dev / fd запускать сценарии оболочки в sudo safe?
  • Почему mac os x не устанавливает бит uid для / usr / bin / passwd
  • корневая программа с битом setuid
  • Почему не работает setuid с mount?
  • suid бит в SuSE не влияет на систему ()
  • 2 Solutions collect form web for “распечатать файл / etc / shadow в консоли”

    Чтобы дать двоичное разрешение для запуска файлов с правами root, вам нужно установить «липкий бит» в двоичном формате.

    Обычно после компиляции вы можете увидеть:

     # ls -l print -rwxr-xr-x 1 mark mark 111 24 Oct 17:32 print 

    Установка бита set-uid (sticky) может быть выполнена с использованием и восьмеричного режима или символически (обратите внимание, что для изменения права собственности на файл вам понадобятся «root»):

     # chown root print # chmod ox print # chmod u+s print # ls -l print -rwsr-xr-- 1 root mark 111 24 Oct 17:32 print 

    В первой версии s в разрешениях, как вы уже выяснили, указывает, что это как исполняемый файл, так и «set-uid». Но вы также должны изменить право собственности на файл, так что «set-uid» устанавливает uid для root, а не для вашего собственного пользователя. На данный момент «группа» не изменила свою ценность, но это не важно в данном конкретном случае. (Хотя это может быть фактором безопасности.)

    В последней строке выше указаны разрешения, которые также могут быть выражены как восьмеричное число, поэтому, если это результат, который вы хотите, вы можете заменить две строки chmod выше одним:

     # chmod 4754 print 

    Посмотрите man-страницу для chmod для более подробной информации.

    Если это не то, что вы ищете, уточните ваши требования в своем вопросе.

    ВАЖНОЕ ПРИМЕЧАНИЕ : файл /etc/shadow хранится конфиденциально по какой-либо причине. Если вы разоблачите его тем, что может быть запущено другими пользователями, вы можете поставить под угрозу безопасность своей системы. Удаление разрешения для исполняемого файла в мире является «кивком» в отношении безопасности, но если вы чувствуете, что вам нужно подвергать /etc/shadow таким образом, вы можете решить неправильную проблему .

    Это возможно без root, но вы должны установить SUID для своей программы. Есть 2 способа сделать это, которые в точности совпадают.

     chmod u+s [program] chmod 4755 [program] 

    Возможно, вы захотите увидеть SETUID

    Также, если вы хотите обработать это в C:

    Вы должны проверить функцию setuid

    И если вы хотите сделать это в bash:

    Вы должны проверить setuid на сценариях оболочки

    Interesting Posts

    Не удается найти входные данные приемника при использовании pacmd

    Выполнение комплексных тестов скорости на диске

    Почему команды post-up в / etc / network / interfaces выполняются несколько раз при загрузке?

    Значение синтаксического анализа конкретного элемента в случайной позиции файла JSON

    Включить встроенные прошивки в ядре двоичного кода

    Как добавить содержимое конкретного текстового файла в каждый текстовый файл в каталоге и его подкаталогах?

    Возможно ли написать портативные служебные скрипты для управления демоном?

    Для чего используется ~ / default?

    Любое другое приложение Linux похоже на Greyhole?

    cpufreqd не контролирует температуру плюс показывает отсутствие выхода

    Когда следует использовать конечную косую черту в каталоге?

    Как установить os-prober в debian / bunsenlabs?

    Команды VIM для скриптов Bash

    Сравните два потока данных, не сохраняя их как файлы

    Отключение соединения по событию

    Linux и Unix - лучшая ОС в мире.