systemd -разрешено+VPN :2-й DNS-сервер игнорируется (L2TP)

Ничего подобного не существует, и я не думаю, что это возможно. Подумайте об этом вопросе :Как оболочка или ядро ​​​​или что-то еще узнают, что вы действительно хотели запустить эту команду с помощью sudo? Например, если файл был настроен на чтение/запись корневым пользователем и чтением -только всеми остальными, и вы открыли файл, как он мог узнать, что вы хотите отредактировать файл, а не просто просмотреть его? Или, скажем, вы делаете «cp $HOME/myfile $HOME/myfile.bak». Может ли оболочка знать, что вы действительно хотели переместить файл, находящийся в /root, и поэтому вам следовало использовать sudo?

В тех случаях, когда вы точно знаете, что вам нужно быть пользователем root ('nano /etc/resolv.conf', например ), вам нужно либо повторно -написать nano, чтобы это заранее --, заменив его функцией, псевдонимом или сценарием --, или заставить оболочку каким-то образом прочитать вывод команды, выяснить, получили ли вы ошибку, и если это произошло из-за того, что вы не являетесь пользователем root, и затем попробуйте повторно -запустить команду с помощью sudo. Это было бы действительно большое заявление «если, то» для учета всех различных команд со всеми их различными выводами и способами работы и так далее.

Если бы вам удалось написать это действительно большое выражение «если тогда», возникла бы пара потенциальных проблем:

  • это никогда не сработает полностью для некоторых команд, это будет просто максимальным усилием,
  • Всегда будут появляться новые команды, которые нужно учитывать,
  • Это что-то сломает, если вы попытаетесь сделать команду такой умной, но затем вы используете ее в конвейере или скрипте, который ожидает, что команда просто запустится и либо сработает, либо потерпит неудачу,не останавливайтесь и не задавайте вопрос (, например, если у вас есть скрипт «копирует» файл конфигурации из одного места в другое, а затем перезапускает службу, которая зависит от файла... лучше, чтобы скрипт вообще не работал, чем думать КП работало, хотя на самом деле не работало! )и
  • sudo предназначен не только для root; вы можете сделать 'sudo -u bob vim /etc/bobsfile'...

Поэтому я не думаю, что целесообразно встраивать что-то подобное. Но будьте уверены, вы не единственный, кто хотел бы, чтобы это было так! Я работаю с Linux уже 20 лет и до сих пор этого хочу.

Есть несколько вещей, которые могут помочь:

  1. Некоторые команды знают, что они должны выполняться как sudo, и будут делать что-то вроде того, что вы просите. Например, команды systemd. Попробуйте systemctl restart cups, и он автоматически запросит ваш пароль sudo, если вы еще не запустили его с помощью sudo.
  2. Если вы запускаете команду в bash, которая должна была использовать sudo, вы можете немедленно ввести sudo !!, чтобы снова запустить ее с помощью sudo. "!!" заменяется любой вашей последней командой в этой оболочке. В моей системе я могу запустить "man bash | grep -A75 -P '^HISTORY EXPANSION'", чтобы посмотреть, как это работает. Вы также можете просто открыть «man bash» и найти его.
  3. У меня есть несколько псевдонимов для некоторых команд, которые я хотел бы просто запустить. Например, alias yum='sudo yum '. Мне не нужно помнить об использовании sudo для yum. Я просто запускаю «yum», и он добавляет sudo для меня.

Надеюсь, вам что-то там поможет.

0
05.08.2021, 19:54
0 ответов

Теги

Похожие вопросы