Користувач root в системах linux / unix може записувати у файл, навіть якщо прапор запису не встановлено. Тому він може змінювати зміст /etc/shadow
або будь-який інший файл, незалежний від дозволів.
The passwd
Утиліта має набір бітів setuid. Переглянути з:
ls -la /usr/bin/passwd
Це має виглядати так:
-rwsr-xr-x 1 root root 42824 Sep 13 2012 /usr/bin/passwd
Зверніть увагу на s
у дозволі власника файлу. Це вказує на setuid біт . Якщо звичайний користувач зараз виконує passwd
утиліта, вона виконується з дозволу власника файлу; в даному випадку корінь.
Біт setuid отримує тимчасово підвищені привілеї для виконання певного завдання, наприклад, зміни речей у системних файлах, наприклад /etc/shadow
або /etc/passwd
.
Біт setuid повинен оброблятися обережно. Цей механізм може бути використаний для декількох уразливостей, якщо вони встановлені на неправильній двійковій системі. Уявіть собі /bin/bash
утиліта встановила б біт setuid; так що кожен користувач системи може запустити кореневу оболонку!