sudoの際のホームディレクトリの変更

login as: naoyes
naoyes@192.168.120.128's password:
Last login: Sat Aug 23 10:49:12 2008 from 192.168.120.1
[naoyes@localhost ~]$
[naoyes@localhost ~]$ sudo -u svn -s
Password:
bash: /home/naoyes/.bashrc: 許可がありません
bash-3.2$ svn ls file:///var//svn/repos
svn: ファイル '/home/naoyes/.subversion/servers' を開けません: 許可 がありません
bash-3.2$

となり、orzなんですが。
どうやら'naoyes'ユーザのホームを$HOMEとしているのがいろいろ不具合を引き起こしてるっぽい。

よって、

bash-3.2$ exit
exit
[naoyes@localhost ~]$ sudo -u svn -s -H
[svn@localhost naoyes]$ whoami
svn
[svn@localhost naoyes]$ echo $HOME
/home/svn
[svn@localhost naoyes]$ svn ls file:///var//svn/repos
test01/
test02/
test03/
[svn@localhost naoyes]$

( ・∀・)デキタ!

-H
-H (HOME) オプションが指定されると、環境変数 HOMEが passwd(5) で指定された対象ユーザ (デフォルトでは root) のホームディレクトリに設定される。 デフォルトでは、sudo は HOMEを変更しない。

Manpage of sudo