Назад | Перейти на главную страницу

Как мне заставить nano сообщать мне, если у меня нет прав на запись в файл?

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

Я хотел бы продублировать это поведение на нескольких других серверах, но не вижу нигде на страницах nano, где это возможно.

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

Это модификация: http://tuts4tech.net/2009/07/08/nano-write-check-before-editing/

#!/bin/bash
FILE="$1"

[ $# -eq 0 ] && exit 1

if [ -w "$FILE" ] || ( [ ! -e "$FILE" ] && [ -w `readlink -f $FILE | grep -o '/.*/'` ] ) ; then
   nano $FILE
else
   tput bel
   echo "WARNING: You do not have write acess to $FILE"
   echo -n "Continue? y/[n]: "
   read REPLY
   if [ $REPLY ] && [ $REPLY == "y" ] ; then
        nano $FILE
   fi
fi

Почему бы не заменить nano команда со сценарием, который проверяет, есть ли у вас права на запись, и автоматически вызывает sudo nano если нет? Экономим еще больше времени!

Возможно, вы захотите получить вывод сценария, который у вас нет прав на запись, перед вызовом sudo nano так что вам не интересно, почему вас просят ввести пароль.