it-swarm-ja.com

VIM:「Sudovim bad_idea」?

#Vimのirc-userは、次のようにVimでSudoを使用しないように私に促しました。

Sudo vim bad_idea

/ var/www /のような場所で何かをしているとき、それなしでは書くことができません。そのため、Sudoを使用しないことが問題になります。もちろん、/ tmp /などのさまざまな場所で変更を加えてから、dirを/ var/wwwにコピーすることもできます。しかし、私はもっと簡単な方法を感じます。

  1. 「SudoVim」をしないのなら、なぜですか?
  2. 最初の質問に「はい」の場合、sudoを使用しないという問題をどのように回避しますか?

私は最初のカテゴリに分類されます。Sudo vim /var/www/html/some_fileは悪い考えです。ログに記録されないシェルエスケープを許可します。代わりに、sudoedit /var/www/html/some_fileを使用してください。同じ効果があります。

37
Kevin M

参照: https://stackoverflow.com/questions/1005/getting-root-permissions-on-a-file-inside-of-vi

%は現在のファイル名に置き換えられるため、次を使用できます。

:w!Sudo tee%

10
hyperslug

vimを使用すると、ユーザーは任意のシェルコマンドを実行できるため、多くのシステム管理者はvimをSudoで使用することを許可していません。

rvimはvimに含まれています。これは制限付きのvimであり、シェルコマンドを許可しません。 (または、同じ理由で、vimを一時停止できるようにします。)

あなたがあなた自身の箱でそれらの極端に行く必要があるかどうかは議論の余地があります。

7
Richard Hoskins

システム全体の構成ファイルを編集するときは、まったく問題ありません---常にルートであり、すべての権限を持っていることを忘れないでください。必要がなくなったらすぐにそれらの特権を削除してください。

特別な場合/var/www/、つまりWebサーバーのページでは、所有権/グループ/権限の変更を検討することをお勧めします---ただし、特定の設定(シングル/マルチユーザー、実際のWebサーバー/ローカルホストのみ、動的/静的)に大きく依存するかどうか、またどの程度依存するかなど)

6
balpha

このような質問は私に額を叩かせます。私はセキュリティの反対側にいます。「平均的な人が悪意のある活動を行うのを防ぐことが期待または要求されない限り、セキュリティはユーザーエクスペリエンスを妨げるべきではありません。」

Sudoによるvimの使用を防ぐことは単なる絆創膏です。前に述べたように、誰かがただ使うことができます:

Sudo su -

または

Sudo /bin/bash

または

Sudo nano file

または

Sudo my_exectuable_text_editor file

電気ショック療法

誰かがボックスで悪意のあることをしていることを本当に心配している場合は、Sudo(または明らかにrootパスワード)特権、期間を与えないでください。 Sudoを使用して悪意のあるアクティビティを防ぐためのスライバーの弾丸はありません。すべての「修正」を「適用」して、人が悪意のあることを実行できないようにすることで、自分を夢中にさせるだけです。

誰かが所有権/グループの変更について言及しました。これは、Webサーバーが別のユーザーとして実行されているかのように厄介な問題であり、ファイルのアクセス許可を変更すると、突然サイトが機能しなくなります。まあ、明らかにそれはあなたを助けません。 Webサーバーが実行されているグループに自分自身を追加できますが、グループにファイルへの書き込みアクセス権がない場合は、chmod -R g + w *(またはchmodの個々のファイル)を実行する必要があります。すべてのファイルをchmodする必要がある場合は、必要なものが面倒になる可能性があります。

一部の人々はrvimの使用を提案しました。確かに、/ etc/sudoersに行を追加して、特定のユーザーのみにSudo rvimを許可することもできますが、そのルートに進む必要がある場合は、Webベースのファイルマネージャーを実装する方がよい場合があります。このように、Webサーバーが実行されているユーザーとして実行されるため、ファイルのアクセス許可の問題は発生せず、誰がどのファイルを編集するかをきめ細かく制御できます。

とにかく私の2セント。

4
Natalie Adams

_Sudo vim_を実行しても_$HOME_ディレクトリは変更されないため、root権限でVimを実行しますが、_$HOME_は引き続き通常のユーザーを指します。

Vimを初めて実行する場合は、_~/.viminfo_ファイルが通常のユーザーディレクトリ内に作成されますが、root権限が付与されている場合があります。

2

IF THIS IS YOUR OWN COMPUTER ...デニルソンが指摘したEdgeの場合を除いて、「Sudovim」を使用できない理由はわかりません-それrootが所有する〜/ .viminfoが作成される可能性があります。

そうでない場合-システム管理者が実行できることと実行できないことを制限している場合-"man Sudo": "ほとんどのシステムでは、Sudoのnoexec機能を使用してShellエスケープを防ぐことができます。sudoersを参照してください。 (5)詳細はマニュアル」

したがって、この場合、システム管理者がvim内からrootとしてサブシェルを実行する可能性を懸念している場合は、noexec機能を使用できます。しかし...最初のケースに戻ります-これがあなたのコンピュータなら、あなたは「Sudovim」を実行するのはかなり安全だと思います。

1
pbr

グループに関するbalphaの返信への参照:

ハウツー:Linuxユーザーをグループに追加