Назад | Перейти на главную страницу

Что означает «kernel.suid_dumpable = 1» в Redhat?

Я запускаю сценарий bash, чтобы скопировать файлы журналов, а затем перезапустить службу в Red Hat. Каждый раз, когда я выполняю скрипт, на моей консоли появляется следующее:

[root@servername ~]# sh /bin/restart_nss.sh
kernel.suid
_dumpable = 1
Stopping Service: [ OK ]
Starting Service: [ OK ]
[root@servername ~]#

Что в этом случае означает "kernel.suid_dumpable = 1"?

Спасибо, IVR Avenger

Некоторая предыстория:

Бит setuid:
Бит setuid в исполняемом файле делает так, чтобы исполняемые файлы, запускаемые любым пользователем, выполнялись так, как если бы они были запущены владельцем исполняемого файла. Таким образом, если setuid установлен в программе, владельцем которой является root, независимо от того, кто ее запускает, она будет запускаться с привилегиями root. Это конечно не так просто, см. эта википедия статью или получите копию книги Стивена «Программирование в среде Unix».

Дамп ядра:
Дамп памяти - это дамп рабочей памяти программы в файл. Видеть эта статья в Википедии.

suid_dumpable:
Это определяет, можно ли выгрузить ядро ​​из программы setuid, как описано выше. Увидеть ниже. Это настраиваемое ядро, вы можете изменить его с помощью:

sudo sysctl -w kernel.suid_dumpable=2

Вы узнаете об этой настройке в документации для вашего исходного кода, которая, если она установлена, вы можете найти в каталоге, например: /usr/src/linux-source-2.6.27/Documentation/sysctl/. В этом случае ссылка ниже находится в файле fs.txt в этом каталоге. Использовать uname -a команда, чтобы узнать версию вашего ядра.

Почему это важно:

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

Ссылка:

This value can be used to query and set the core dump mode for setuid
or otherwise protected/tainted binaries. The modes are

0 - (default) - traditional behaviour. Any process which has changed
   privilege levels or is execute only will not be dumped
1 - (debug) - all processes dump core when possible. The core dump is
   owned by the current user and no security is applied. This is
   intended for system debugging situations only.
2 - (suidsafe) - any binary which normally not be dumped is dumped
   readable by root only. This allows the end user to remove
   such a dump but not access it directly. For security reasons
   core dumps in this mode will not overwrite one another or 
   other files. This mode is appropriate when adminstrators are
   attempting to debug problems in a normal environment.

Он определяет, можете ли вы получать дампы ядра из процессов setuid.

Некоторая информация из оригинальный патч

+suid_dumpable:
+
+This value can be used to query and set the core dump mode for setuid
+or otherwise protected/tainted binaries. The modes are
+
+0 - (default) - traditional behaviour. Any process which has changed
+   privilege levels or is execute only will not be dumped
+1 - (debug) - all processes dump core when possible. The core dump is
+   owned by the current user and no security is applied. This is
+   intended for system debugging situations only.
+2 - (suidsafe) - any binary which normally not be dumped is dumped
+   readable by root only. This allows the end user to remove
+   such a dump but not access it directly. For security reasons
+   core dumps in this mode will not overwrite one another or 
+   other files. This mode is appropriate when adminstrators are
+   attempting to debug problems in a normal environment.