LINUX.ORG.RU
ФорумAdmin

Как ввести пароль sudo в vi/vim не выходя из него

 , , ,


3

4

Простите, может я мало искал, но как ввести пароль sudo в vi/vim не выходя из него.

Раздражает когда забываешь писать sudo и после больших изменений нельзя сохранять результат. Приходится копировать изменения в другой файл…

Проблема XY.

как ввести пароль sudo в vi/vim не выходя из него

можно как угодно. взял да ввёл.

вопрос чего хочется этим добиться… То чего ты хочешь придётся делать не введением пароля sudo куда либо. Вернее, не им одним.

mrjaggers
()

Кстати, если бы не эта тема, не узнал бы, что есть оказывается простое решение, кроме как начать все сначала и с sudo. )

Выше написали, но я уже нашел, плюс как забиндить.

krasnh ★★★★
()
command W :execute ':silent w !sudo tee % > /dev/null' | :edit!

У меня вот так.

ggrn ★★★★★
()
Ответ на: комментарий от EXL

Нда… Тема крутая, но вот получаю в итоге

'!sudo /etc/fstab.back' No such file or directory

Единственное, что нашёл как вариант, это без w, но это не сохранит сделаный прогресс

!sudo vi %
SaintAnd
() автор топика
Последнее исправление: SaintAnd (всего исправлений: 2)
Ответ на: комментарий от krasnh

он tee похоже за имя файла принял и выкинул или что-то такое. ССЗБ, короче.

mrjaggers
()
Ответ на: комментарий от krasnh

Видимо в vi эта штука не работает, а только в vim. Да, я пробовал вместо процента и прямой путь указывать, но не сработало тоже. Это в Porteus 5, Не удалось узнать версию vi vi –version BusyBox v1.35.0 (2022-01-01 18:14:40 AEST) multi-call binary.

А вот в centos всё работает, спасибо.

Тут какие-то люди, пишут странные речи, что мол вместо имени файла tee используют. Что сказать, печально, что ничего путного не может сообщить. Возможно это нейросеть…

SaintAnd
() автор топика
Ответ на: комментарий от SaintAnd

Видимо в vi эта штука не работает, а только в vim.

Ну, у vi урезанный функционал в сравнении с vim. Это общеизвестно. )

Наверно еще влияет, что это vi BusyBox`а.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Если бы vim поставляли со всеми древними дистрибутивами и так же он был в initramfs из коробки, то было бы шикарно, но это не так, поэтому и приходится со старой версии возиться, чтобы не было неожиданностью отсутсвие vim или текстового редактора…

SaintAnd
() автор топика
Ответ на: комментарий от SaintAnd

Я сам уже не представляю редактирования без vim, и там где его нет обхожусь vi, который должен быть дефолтным во всех дистрах. Конечно он не совсем удобен, но что уж … )

Кстати на ЛОРе есть статья vim для самых маленьких . Может полезна будет.

krasnh ★★★★
()

Раздражает когда забываешь писать sudo и после больших изменений нельзя сохранять результат.

Снеси sudo и нечего будет забывать. В который раз повторю: вместо «вот я юзер но сейчас введу sudo чтоб изменить системный файл» следует делать «для изменения системного файла нужен администратор, поэтому залогинюсь сейчас за рута и всё сделаю». sudo не нужно, оно насаждает виндузятные привычки и дефективную идеологию «повышения прав».

firkax ★★★★★
()
Последнее исправление: firkax (всего исправлений: 1)
Ответ на: комментарий от krasnh

Это не в vi урезанный, а vim надстроенный. vi - юниксовый оригинал и стандарт.

firkax ★★★★★
()
Ответ на: комментарий от krasnh

Проверил, в vi работает метод, а вот в busybox vi та же ошибка '!sudo /etc/fstab' No such file or directory

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от Aceler

Иногда бывает нужно в случаях, когда изменение конфига приводит к поломке системы. Через эту штуку можно систему восстановить

SaintAnd
() автор топика
Ответ на: комментарий от firkax

И да и нет. Если это вариант «поддиванного» то sudo не особо уперлось, лишняя прослойка. Если вариант ынтерпрайз сервака, у которого чуть больше одного админа, которые занимаются разными сервисами, то sudo не самый плохой вариант. Ну и на десктопе sudo вполне рулит, скачал пользак какую-то хрень, а она требует рутовых прав, пользак иногда может и задуматься «а шо это за хрень я скачал».

anc ★★★★★
()

для таких целей давно придумана специальная тулза, sudoedit (не учитывая тот факт что sudo давно пора выкинуть на помойку и использовать doas вместо него, для doas есть doasedit). Она делает это автоматически: делает временную копию файла, ты редактируешь эту временную копию без рута, когда сохраняешь и выходишь - просит ввести пароль рута и копирует твои изменения обратно.

Lrrr ★★★★★
()
Ответ на: комментарий от Lrrr

Это конечно дело привычки использовать sudoedit file, но vi file как-то быстрее и интуитивнее набирать. Вообщем, понятно, проще алиасы создать.

А doasedit где его из коробки возьмёшь?

SaintAnd
() автор топика
sudo apt remove vim
sudo apt install emacs
sudo ln -s /usr/bin/emacs /usr/bin/vi

Должно помочь. А в emacs это просто решается через M-x sudo-edit.

ugoday ★★★★★
()
Ответ на: комментарий от SaintAnd

Тогда vi можно не удалять, а emacs установить через обычную последовательность ./configure && make && sudo make install. В остальном всё то же.

ugoday ★★★★★
()
Ответ на: комментарий от SaintAnd

А doasedit где его из коробки возьмёшь?

это шелл-скрипт на 100 строк, который легко скопировать по ssh

Lrrr ★★★★★
()
Ответ на: комментарий от SaintAnd

Бубунту и бейбиЯн не юзаю обычно. Slackware пожалуйста

1. Установить с полным инталом
2. Если не хватило, то докачать из SlackBuilds.org

anc ★★★★★
()
4 марта 2024 г.
Ответ на: комментарий от Werenter

От рута если запустить то синтаксис появляется? Или работает только если запускать от обычного пользователя?

SaintAnd
() автор топика
Ответ на: комментарий от Werenter

Попробуй использовать параметр: -E, –preserve-env сохранить пользовательское окружение при выполнении команды

SaintAnd
() автор топика
Ответ на: комментарий от SaintAnd

Дело не в этом. А в том, что sudoedit генерирует случайное имя временного файла, из-за чего ломается подсветка. Пример:

sudo vim /etc/passwd       - норм
sudoedit /etc/passwd       - подсветка не работает

Происходит это из-за того, что редактируется на самом деле файл /var/tmp/passwd.СЛУЧАЙНОЕ_ЧИСЛО и редактор этого не понимает.

Werenter ★★☆
()
Последнее исправление: Werenter (всего исправлений: 1)
Ответ на: комментарий от Werenter

Тогда рекомендую новую тему создать. Простого решения видимо не будет

SaintAnd
() автор топика
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.