sudoでvimを実行すると、「プロトコルが指定されていません」


9

最近、を使用すると「プロトコルが指定されていません」というメッセージが表示され始めますsudo vim。すべてが正常に機能していた(ファイルを開いて編集して保存できる)ため、これは単なる警告です。使ってsudo -E vimもメッセージが出ないので/etc/profile最近編集した時に何かおかしなことになったと思いますが、よくわかりません。どうすれば修正できますか?


1
すべてが正常に機能しているわけではありません。マウスサポートが機能していません。gpmやxtermマウスプロトコルなどのプロトコルが必要です。
ninjalj

回答:


8

最近のアップグレードにより、のデフォルト設定が変更されましたsudo。誰かがこの問題を抱えている場合は、sudoer設定を確認してください。manページの例から:

# Run X applications through sudo; HOME is used to find the
# .Xauthority file.  Note that other programs use HOME to find
# configuration files and this may lead to privilege escalation!
Defaults env_keep += "DISPLAY HOME"

そのようなものがあることを確認してください/etc/sudoersvisudo必要に応じてファイルを編集するために使用します)。

編集:いつからか正確にはわかりませんが、少なくともxauth 1.0.9は環境変数をサポートしていますXAUTHORITY。これを設定してHOMEをそのままにしておくと、プロトコル警告も修正され、ルートリソースを指す世界で書き込み可能なIPCリソース(ソケット/パイプ)が作成されないため、より優れたソリューションになります(特権昇格の1つの手段)。xauthは変数を環境に自動的にエクスポートしないので、シェルの初期化で変数を設定するのが最善の方法です。


3

このスレッドによると、問題には2つの解決策があります。

rootユーザー.bashrcスクリプトに次の行を追加します

export XAUTHORITY=/home/<user>/.Xauthority

次に、.Xauthorityをルートにもコピーしました、すなわち

sudo cp ~/.Xauthority /root

そして今警告は消えました。

を介して実行することもできgksudoます。

とにかく、どちらも試してみる価値があります...


にコピー.Xauthorityしまし/rootた。これで完了です。
phunehehe

いいえ、再起動後に「無効なキー」エラーが発生しました。
phunehehe

1
.Xauthorityファイルの内容が変更されたことを覚えている限り、コピーする代わりにシンボリックリンクを作成する必要があります。
Adam Byrtek、2011年

2

質問にはすでにいくつかの回答がありますが、完全にうまくいったものはありません。上記のいくつかの提案と私のDebianディストリビューションのためのいくつかの組み合わせを組み合わせることで解決しました。

.Xauthorityrootと他のすべてのユーザーのファイルへのシンボリックリンクを作成しました。rootにはそのファイルへのアクセス許可がありますが、他のユーザーにはないため、rootユーザーの問題は解決しました。.Xauthorityファイルに対する他のすべてのユーザーの読み取り専用権限を追加しました。

#do this for all other users who do not have .Xauthority file    
ln -s /home/userwithxauth/.Xauthority .Xauthority

#run the following command to give read only access permission to .Xauthority file
chmod 644 /home/userwithxauth/.Xauthority
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.