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