Як запобігти "sudo rm -rf /"


10

Кілька разів я випадково виконав команду sudo rm -rf /.

Чи є спосіб, як не допустити виконання цієї команди? Наприклад, чи можу я якось відключити його за допомогою файлу sudoers?


2
Як ви випадково набираєте цю команду, а потім виконуєте її ??
fnord_ix

Якщо я набираю таку команду, як ця. sudo rm -rf / Applications/chess.appПомітьте пробіл між / та A. Ось так
iProgram

Відповіді:


14

Ви можете додати рядок типу

%admin ALL = !/bin/rm -rf /

у ваш sudoersфайл, щоб запобігти виконанню команди з певними параметрами.

Або, якщо ви хочете виключити кілька команд, ви можете працювати з псевдонімами команд

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /
%admin ALL=!DANGEROUS_CMNDS

Ви також можете спробувати відтворити його безпечно, використовуючи

Cmnd_Alias DANGEROUS_CMNDS=/bin/rm -rf /, /bin/rm -fr /, /bin/rm / *, /bin/rm * /, /bin/rm -rf / *, /bin/rm -rf * /, /bin/rm -fr / *, /bin/rm -fr* /
%admin ALL=!DANGEROUS_CMNDS

але все ж можуть бути інші способи, з якими можна стріляти в ногу, rmтому будьте обережні .

Але майте на увазі, що все узгодження проводиться на повній рядку команди, тому sudo rm -rf /Volumesвсе одно буде працювати (як би cd /; sudo rm -rf .).

PS: У будь-якому випадку використовуйте sudo visudoдля редагування sudoersфайлу і НІКОЛИ не редагуйте його безпосередньо

PPS: я, очевидно, не перевіряв цього rm(лише /bin/echoзамість цього)


Коментарі не для розширеного обговорення; ця розмова була переміщена до чату .
bmike

6

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

Основна проблема полягає в тому, що ви не rmзмушені переносити сміття (це явно, як ви його використовуєте в даний час і в минулому) або іншим чином змушені rm -rпримушуватисяrm -ri

alias rm='/bin/rm -i'

Ви завжди можете обійти псевдонім, command rm -rf whateverколи ви навчились розуму, коли двічі міряти, один раз вирізати потрібно для rm -rfвикористання.


Дякую за цю пораду. Я думав створити прихований обліковий запис адміністратора (для доступу лише до терміналу) та стандартний рахунок лише для звичайного використання. Я міг би змусити обгортку також перейти до сміття. Дякую за цю пораду. Я думаю, що запобігання судо може бути безпечнішим кроком. Я все одно переконуюсь, що зможу отримати доступ до нього, увійшовши до прихованого адміністратора.
iProgram

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