Я часто неправильно использую "гм" для "мв"! Я надеюсь сделать "rm" командой, требующей привилегий root, например «apt-get». Как это сделать, пожалуйста? Моя система - Ubuntu 10.10.
6 ответов
Лучшее решение - использовать rm -i
Определенно, псевдоним интерактивной версии rm
- лучшее решение, потому что вы не хотели бы, чтобы нормальные сценарии ломались, когда rm
вдруг начинает вести себя по-другому. Просто добавьте alias rm="rm -i"
в ваш ~/.bashrc
и вы получите вопрос типа rm: remove regular file 'filename'?
, на который вам придется ответить с помощью y [ENTER]
или n [ENTER]
.
Я думаю, что лучше использовать псевдоним sudo rm
, потому что вам явно говорят, какие файлы нужно удалить, в то время как с sudo вас запрашивают пароль, как в десятке других случаев, и прежде чем вы узнаете его, вы утвердите команду sudo rm *
Команда rm -i
защищает вас от таких (и менее очевидных) слишком жадных подстановочных знаков, потому что она спрашивает вас о каждом отдельном файле.
Как насчет псевдонима rm для 'sudo rm'? Каждый раз, когда вам нужно ввести пароль.
Вы могли бы alias rm
к чему-то вроде echo 'Do you really want to remove this?'
Это помешает вам использовать rm.
Затем, если вы действительно хотите удалить что-то, вам нужно будет ввести /bin/rm
(чтобы обойти псевдоним).
Это с моей головы. Я уверен, что люди исправят редактирование, если у меня отключен синтаксис или что-то в этом роде.
Вставьте этот скрипт в ваш ~/bin и назовите его rm.
#!/bin/sh
# Run /bin/rm using all the arguments from the command line
/bin/rm $@
Убедитесь, что ~/bin является первым в вашем $ PATH, чтобы ваш rm был найден перед /bin /rm.
Установите для этого сценария права владения root:your_group и permissions 760, чтобы вам пришлось выполнять sudo для выполнения rm, и вам не нужно быть пользователем root для записи или чтения файла. Затем вы также можете обойти этот сценарий, просто используя /bin /rm вместо rm, но вы будете делать это сознательно. Возможно, вы даже привыкнете указывать rm по абсолютному пути и в конечном итоге обойдетесь без небольшого дополнительного сценария.
Если вы не знакомы с настройкой собственной переменной пути, отредактируйте ваш .bash_profile с этими строками (или отредактируйте, если они уже существуют).
PATH=~/bin:$PATH
export PATH
Вам нужно будет перезапустить bash или использовать команду «source .bash_profile», чтобы внести изменения в текущую оболочку.
(Конечно, rm -i
намного проще и менее сложен, чем сам chmoding rm, но это отвечает на заданный вопрос, не нарушая ничего, что не выполняется пользователем, который уже знает об ограничении.)
Хотя вы можете использовать chmod для предоставления прав доступа только пользователю root, это, вероятно, создаст много проблем в системе. Лучше выбрать псевдоним команды в вашем файле .bashrc, добавив следующую строку:
псевдоним rm = "rm -i"
Это делает команду интерактивной, и вам будет предложено подтвердить каждое удаление.
Спасибо другим авторам за указание на это.