sudoコマンドを使えるように設定
(ubuntuはsudoで全て行うポリシーなのでデフォルトで設定済みかと思うけど)# visudo
...
## Allow root to run any commands anywhere
root ALL=(ALL) ALL
okap ALL=(ALL) ALL
...
ちなみに、visudoは/etc/sudoersをviで編集しているだけだが、排他のため/etc/sudoers.tmpを編集している。vipwやvigrも同様に排他をかけている。
rootユーザでもvimを
Fedora(というよりRedHat)ではrootユーザではviがvimにリンクされていない。「vim」と打てば良いだけだが意外と面倒である。(rootでvimを使うときって大概設定ファイルをいじる時だからカラー表示してくれるだけでも違う!)
そこで、rootでもviでvimが起動出来るようにする。
# vi /etc/profile.d/vim.sh
if [ -n "$BASH_VERSION" -o -n "$KSH_VERSION" -o -n "$ZSH_VERSION" ]; then
[ -x //usr/bin/id ] || return
[ `//usr/bin/id -u` -le 100 ] && return
# for bash and zsh, only if no alias is already set
alias vi >/dev/null 2>&1 || alias vi=vim
fi
このスクリプトを見ると、uidが100以下の場合は以降のaliasが設定されない。
rootは当然uid=0なので、その判定をコメントアウトしてしまう。
[ `//usr/bin/id -u` -le 100 ] && return
↓
# [ `//usr/bin/id -u` -le 100 ] && return
これで、この設定を読み込むか新しいセッションではrootでviとしてもvimが起動するようになる。
viewでもvimに
viewとは "vi -R" つまりRead-onlyでファイルを開くコマンドである。"view:眺める(Read-only)"と"vi"をかけているのだと思う(笑Vimerが言うのも何だがvimでファイルを閲覧中にキーを触って(vimのコマンド・モードが幸いし)変更してしまうことがる。なのでソースやスクリプトを見るときはviewを使用している。
でも上記同様Fedoraでは、viewは一般ユーザでもviにリンクされているのでviewとしてもカラー表示されない。
# which view
/bin/view
# ll `!!`
ll `which view`
lrwxrwxrwx 1 root root 2 2009-03-23 17:54 /bin/view -> vi
なので、vimにリンクを張り直す。
# rm /bin/view
rm: remove シンボリックリンク `/bin/view'? y
# which vim
/usr/bin/vim
# ln -s /usr/bin/vim /bin/view
# ll `which view`
lrwxrwxrwx 1 root root 12 2009-04-05 22:19 /bin/view -> /usr/bin/vim
これで、新しいセッションではviewでもvimが起動するようになる。
ちなみにこのリンクでコマンド名を変える手法はbusyboxのに似ている。
lsなら、"busybox ls"と引数指定でも実行出来るけど、/bin/busybox を /bin/ls にリンクを張っておくと、lsで実行出来るようになる。argv[0]で判別しているのだと思う。
0 件のコメント:
コメントを投稿