3

Я часто неправильно использую "гм" для "мв"! Я надеюсь сделать "rm" командой, требующей привилегий root, например «apt-get». Как это сделать, пожалуйста? Моя система - Ubuntu 10.10.

6 ответов6

11

Лучшее решение - использовать rm -i

4

Определенно, псевдоним интерактивной версии rm - лучшее решение, потому что вы не хотели бы, чтобы нормальные сценарии ломались, когда rm вдруг начинает вести себя по-другому. Просто добавьте alias rm="rm -i" в ваш ~/.bashrc и вы получите вопрос типа rm: remove regular file 'filename'? , на который вам придется ответить с помощью y [ENTER] или n [ENTER] .

Я думаю, что лучше использовать псевдоним sudo rm , потому что вам явно говорят, какие файлы нужно удалить, в то время как с sudo вас запрашивают пароль, как в десятке других случаев, и прежде чем вы узнаете его, вы утвердите команду sudo rm * Команда rm -i защищает вас от таких (и менее очевидных) слишком жадных подстановочных знаков, потому что она спрашивает вас о каждом отдельном файле.

2

Как насчет псевдонима rm для 'sudo rm'? Каждый раз, когда вам нужно ввести пароль.

0

Вы могли бы alias rm к чему-то вроде echo 'Do you really want to remove this?'

Это помешает вам использовать rm.

Затем, если вы действительно хотите удалить что-то, вам нужно будет ввести /bin/rm (чтобы обойти псевдоним).

0

Это с моей головы. Я уверен, что люди исправят редактирование, если у меня отключен синтаксис или что-то в этом роде.

Вставьте этот скрипт в ваш ~/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, но это отвечает на заданный вопрос, не нарушая ничего, что не выполняется пользователем, который уже знает об ограничении.)

-4

Хотя вы можете использовать chmod для предоставления прав доступа только пользователю root, это, вероятно, создаст много проблем в системе. Лучше выбрать псевдоним команды в вашем файле .bashrc, добавив следующую строку:

псевдоним rm = "rm -i"

Это делает команду интерактивной, и вам будет предложено подтвердить каждое удаление.

Спасибо другим авторам за указание на это.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .