Linux - Захист від себе (Root)


0

Я люблю Linux і все, за що вона виступає; проте, на жаль, я виріс у Windows. Таким чином, я вивчив дуже погані практики (такі, як влада NT захищатиме мене). У мене є кілька Linux VPS для особистих і освітніх цілей, і я керую всіма ними з командного рядка. Завдяки управлінню цими серверами я вивчив дуже болючі уроки влади користувача Root. Як от:

  • rm -d -R / *
  • chown www-user: www-user -R / *
  • І т.д.

Я лише двічі видалив кореневий каталог, але тільки минулого тижня я змінив дозвіл всього диска - ефективно блокуючи корінь.

Тепер я знаю, що я ніколи не повинен бути зареєстрований як Root, але більшу частину часу я повинен мати справу з файлами, які володіє тільки Root, тому я sudo і запустити команду.

Тому моє питання полягає в тому, чи є спосіб підказати користувачеві (який є root або sudo'ed), коли потенційно небезпечна команда виконується, щоб користувач міг переглянути своє рішення? Можливо через сценарії в Bash, або інший sudo wrapper.

Або (я прошу, сподіваюся, і дуже спрощена) чи є спосіб налаштувати дозволи, де замість дворівневої системи користувача (користувач Root, звичайний користувач) існує трирівнева система, як у Windows (NT Authority, Administrator, Other Користувач). В основному є спосіб зберегти здатність системного адміністрування, але обмежити доступ до деяких системних файлів.


Можна створити нову групу, додати до неї користувача (тип користувача адміністратора, для якого потрібно обмежити доступ), а потім у visudo file (як кореневий тип visudo ) додати групу, щоб дозволити конкретні команди sudo. Це принаймні трохи потрапляє туди. Це не попереджає вас, що ви збираєтеся зробити щось нерозумне, але я думаю, якщо вам буде запропоновано ввести пароль для запуску команди, ви повинні переконатися, що ви знаєте, що він робить.
nerdwaller

Я вважаю, що у мене вже є така установка, у мене є адміністративна група, яка здатна sudo. Я запускаю тільки так, як адміністратор, sudo'ing, коли це необхідно. На жаль, Ubuntu кешує паролі після першого sudo, так що після sudo'ing вперше всі інші команди будуть виконуватися.
Mark Lopez

Відповіді:


1

Отримати звичку робити ls перед тим, як ви відправляєте команду, призначену для рекурсивної роботи або небезпечної. Потім ви зможете побачити, які файли будуть впливати, перш ніж продовжити.

rm підтримує -i перемикач (викликаючи його), а також --preserve-root (робить його невдалий на корені), який повинен дати вам невеликий запас міцності. Інші команди можуть мати подібні параметри. Ви можете мати ці завжди присутні з alias rm=rm -i --preserve-root і, можливо, захочете покласти це у свій ~/.profile або ~/.bashrc так що він є кожен раз, коли ви викликаєте кореневу оболонку.


Ну, більшість моїх проблем не в тому, щоб бути в неправильному каталозі, а додати додаткову косу, а не крапку (/ * vs * vs ./*). Мені подобається ваша ідея псевдонімів rm. Швидкий і простий. Я знаю багато команд на linux, які можуть зруйнувати систему - деякі не мають додаткових команд, як rm. Таким чином, я сподівався на глобальну, виправити все, sudo обгортку для більшості відомих команд linux, щоб запобігти цій поганій команді chown.
Mark Lopez

1

Якщо у вас (або у когось ще в системі) є багаторічна проблема із внесенням помилок sysadmin, як це, і важливо, щоб ви зберегли свої дані, ви можете розглянути можливість збереження ваших значущих даних nilfs . Існує декілька наслідків для безпеки, які необхідно знати на файлових системах, структурованих журналами; наприклад, важче дійсно назавжди очистити щось з диска ... але з іншого боку, дуже легко відновитись з "ойп" rm -rf /.


Мій VPS працює OpenVZ, тому інша файлова система, на жаль, неможлива. Якби я працював на виділеному сервері, я пішов би за вашою ідеєю, або будь-якою іншою файловою системою.
Mark Lopez

0

SELinux робить те, що ви просите, наприклад, запобігання rm -rf /*. Також, zsh оболонка просить підтвердження, перш ніж робити a rm *, щоб захистити від помилок, як rm * .txt.


SElinux, здається, розбивається на сучасних побудовах Ubuntu.
Mark Lopez
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.