私はVimをエディタとして使用します。
.Crontabを使って編集するときに構文の色を指定したいと思いますcrontab -e
。フォローするこれ答え。変数を設定しEDITOR=vim
てエクスポートすると、crontab -e
目的の構文の色が表示されます。 Sudoを使わずに私のユーザーとしてCrontabを編集しています。
ただし、Crontabを閉じるとエラーが発生します。
/tmp/crontab.019kNj" 4L, 278C written
E886: Can't rename viminfo file to /home/me/.viminfo!
Press ENTER or type command to continue
これは、変更を保存するときと保存せずに閉じたときに発生します。このエラーはCrontabを使用している場合にのみ発生し、Vimを使用して直接ファイルを編集することは問題ではありません。VISUAL
代わりに変数を使用しても動作は似ていますEDITOR
。
ファイルは.viminfo
私のホームディレクトリにあり、適切な権限を持っています。
-rw-------. 1 me me 11K 15.10. 12:49 .viminfo
権限/home/me
も意味があります。
drwx------. 33 me me 4,0K 15.10. 13:13 me
OSバージョンはRed Hat Enterprise Linux Workstation release 7.9 (Maipo)
、VimバージョンはVIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan 29 2020 08:09:16)
、シェルはですGNU bash, version 4.2.46(2)-release (x86_64-redhat-linux-gnu)
。クローンタブのバージョンはcrontabs-1.11-6.20121102git.el7.noarch
。
このエラーメッセージの原因は何ですか? Crontabを編集するときに構文の色付けを有効にする方法は?
編集する:
.viminfo
エラーの名前を変更すると、次のように変更されます。
E138: Cannot write viminfo file /home/me/.viminfo!
ベストアンサー1
これは、Crontabがホームディレクトリに書き込むのを防ぐSelinuxポリシーが原因であることがわかりました。同様のケースが報告されましたRed Hat バグトラッカー:
EDITOR = vimで "crontab -e"を実行し、cronファイルをいくつか変更します。 vimを終了すると、常に警告メッセージが表示されます。E138:viminfoファイル/home/hpt/.viminfoを書き込めません!および/var/log/messagesにいくつかのavcメッセージがあります。
6月15日 13:51:24 localhost カーネル: type=1400 audit(1245045084.399:17236): avc: pid=24910 comm="vim" name="hpt" dev=dm-6 ino =2301953 scontext= {write} unconfined_u:unconfined_r:admin_crontab_t:s0-s0:c0.c1023 tcontext=system_u:object_r:user_home_dir_t:s0 tclass=dir 6月15日 13:51:24 localhost kernel:type=1450 : avc :deny{ create} for pid=24910 comm="vim" name="v69994" scontext=unconfined_u:unconfined_r:admin_crontab_t:s0-s0:c0.c1023 tcontext=unconfined_u:object_r:tmp 13:51:24 localhost カーネル: タイプ=1400 監査(1245045084.400:17238): avc: pid=24910 comm=24910 comm="vim" name="hpt" dev=dm-6 ino= 2301953 scontextの {write} 拒否: admin_crontab_t:s0-s0:c0.c1023 tcontext=system_u:object_r:user_home_dir_t:s0 tclass=dir 選択したコンポーネントのバージョン - リリース番号 (該当する場合):
解決策は、これが起こるようにポリシーを変更することです。このマシンへのsudoアクセス権がないため、変更に関する詳細はありません。だから他の人が変更しました。