История изменений
Исправление Zmicier, (текущая версия) :
алиас на sudo $EDITOR для файлов владельца root:root
Не всякий файл, принадлежащий сверхпользователю, не может быть записан вами. Не всякий файл, что не может быть записан вами, принадлежит сверхпользователю.
Сейчас извлеку из подшивки старый скриптик. Вот, по-моему, она даже когда-то работал:
#!/bin/bash
USAGE=$"Usage: trysudo { view | edit } <file>
View or edit a <file> resorting to sudo if necessary."
# if the script is started from GUI
if [[ ! -t 1 && -v DISPLAY ]]; then
msg() { kdialog --title "$SCRIPTNAME" --error "$*"; }
sudo='kdesudo'
editor='gvim'
viewer='gview'
# if from terminal
elif [[ -t 1 ]]; then
msg() { printf >&2 "$SCRIPTNAME: $*\n"; }
sudo='sudo'
editor='vim'
viewer='view'
else
exit 1
fi
err() {
msg "$*"
exit 1
}
ftype() {
stat --dereference -c '%F' "$1"
}
(($# == 2)) || err "$USAGE"
ACTION="$1"
FILE="$2"
[[ -e $FILE ]] || err $"$FILE does not exist"
FTYPE="$(ftype "$FILE")"
[[ $FTYPE == 'regular file' ]] || err $"$FILE is $FTYPE, not a regular file"
case "$ACTION" in
'edit')
if [[ -w $FILE ]]; then
exec $editor "$FILE"
else
exec $sudo $editor "$FILE"
fi
;;
'view')
if [[ -r $FILE ]]; then
exec $viewer "$FILE"
else
exec $sudo $viewer "$FILE"
fi
;;
*)
err "$USAGE"
esac
Вим и ка-дэ-ешные приблуды заменить по вкусу, разумеется.
Исходная версия Zmicier, :
алиас на sudo $EDITOR для файлов владельца root:root
Не всякий файл, принадлежащий сверхпользователю, не может быть записан вами. Не всякий файл, что не может быть записан вами, принадлежит сверхпользователю.
Сейчас извлеку из подшивки старый скриптик. Вот, по-моему, она даже когда-то работал:
#!/bin/bash
USAGE=$"Usage: trysudo { view | edit } <file>
View or edit a <file> resorting to sudo if necessary."
iscmd() {
command -v >&- "$@"
}
# if the script is started from GUI
if [[ ! -t 1 && -v DISPLAY ]]; then
msg() { kdialog --title "$SCRIPTNAME" --error "$*"; }
sudo='kdesudo'
editor='gvim'
viewer='gview'
# if from terminal
elif [[ -t 1 ]]; then
msg() { printf >&2 "$SCRIPTNAME: $*\n"; }
sudo='sudo'
editor='vim'
viewer='view'
else
exit 1
fi
err() {
msg "$*"
exit 1
}
ftype() {
stat --dereference -c '%F' "$1"
}
(($# == 2)) || err "$USAGE"
ACTION="$1"
FILE="$2"
[[ -e $FILE ]] || err $"$FILE does not exist"
FTYPE="$(ftype "$FILE")"
[[ $FTYPE == 'regular file' ]] || err $"$FILE is $FTYPE, not a regular file"
case "$ACTION" in
'edit')
if [[ -w $FILE ]]; then
exec $editor "$FILE"
else
exec $sudo $editor "$FILE"
fi
;;
'view')
if [[ -r $FILE ]]; then
exec $viewer "$FILE"
else
exec $sudo $viewer "$FILE"
fi
;;
*)
err "$USAGE"
esac
Вим и ка-дэ-ешные приблуды заменить по вкусу, разумеется.