web-dev-qa-db-ja.com

「Sudo su」を使用するためのベストプラクティス

私は今、時々端末を使用しています(実際には、多く回)、次のようなコマンドを使用します:

cp /etc/test ~/testFolder/

私はこのエラーを受け取ります:

cp: cannot open `/etc/test` for reading: Permission denied

それは、その前にSudoコマンドを忘れてしまったことを覚えているので、上矢印を押してから CTRL+A 行の先頭に移動して、Sudoを挿入するには:

Sudo cp /etc/test ~/testFolder/

さらに悪いシナリオとして、vimを使用してファイルを編集し、Sudoコマンドを忘れて、プログラムの起動時に警告が表示されず、ファイル全体を編集し、最後に、保存できません!

何度もやっていることに気づくと、特に私のようでSudoなしでコマンドを入力するのに慣れていると、面倒になります。この問題を解決する方法があります。ターミナルを起動するときに、Sudo suと入力するだけでrootユーザーとしてコマンドを使用できますが、間違いを犯す可能性が高いと言う人もいます。

私の質問は、rootとしてコマンドを実行するためのベストプラクティスは何ですか? Sudoを使用して毎回それをなくすか、自動的にSudo bashを使用し、システム全体を破壊するリスクがありますか?

2
Evandro Silva

リラックス。まず、rm -rf *またはホームディレクトリで通常のユーザーとして実行するようなものは、同様に壊滅的です。システムは簡単に復元できますが、重要なのはデータです。 Linuxを使用してから15年ほどで、rootを使用しないことで回避できる大きな災害はありませんでした。

(まあ、特に運用サーバーのシステム管理者であれば、それは別の問題です。歯を食いしばって適切に行うだけです。この質問に対する別の回答で@ jmartin2279の恐怖物語を参照してください)。

次に、別のプロンプトがある場合(デフォルトでは、ルートプロンプトはハッシュで終わる、#、しかしあなたはそれをカラフルにすることができます)、それはあなたが通常のユーザーとして走っていないことを思い出させます。

第三に、あなたは知的人間なので、定期的にバックアップを取ります。しませんか?あなたは彼らの言うことを知っています:バックアップをする人とそうする人の2種類があります。

最後に、私の芝生を降りて、昔はsuSudoの臭いがなかったので、毎月20個のランダムな文字のパスワードを記憶していました。 ! (そして、「enter」を押す前に、1つのコマンドラインで30分チャットすることもありました)

ただし、vimは、読み取り専用ファイルを編集していることを常に警告します("/etc/passwd" [readonly]のステータス行)。また、ファイルに書き込めない場合は、常に:w /tmp/whatever

4
January

Sudoシステムを使用する前の時代(読み:古代のRed Hat)、ルートとして実行しているときに思い出させるためにいくつかのテクニックを使用しました:赤いプロンプト、タイトルバーの「ルート」など。最近ではSudoを実行していますが、プロンプトの変更はありません。コマンドとしてSudoを追加しなければならないことで解決される、rootとしての操作で問題が発生したことはありません。

ファイルを編集するためのショートカットがあります。 ~/bin/viに次のようなbashスクリプトがあります(そして~/binが$ PATHの最初のエントリです):

#!/bin/bash
if [[ ! -w "$1" ]]; then
  exec Sudo vim "$@"
else
  exec vim "$@"
fi

私はこれをメモリから入力していますので、バグに注意してください。アイデアは、Iという名前の最初のファイルが書き込み不可の場合、自動的にSudoを使用するということです。明らかに、このアプローチは完璧ではありませんが、何年もの間十分でした。

1
Scott Severance