/ etc / shadowファイルを直接編集しないでください。


10

ここでUNIX&Linux Stack Exchangeに関する別の回答で、Michael D Parkerは、そうすることが「安全」だと誰かが言ったことに対して、次のように書いています。

通常、/ etc / shadowファイルを直接編集しないでください。

そう:

なぜファイルを直接編集するべきではないの/etc/shadowですか?


パスワードが暗号化されているためです。
Milind Dumbare 2015年

7
それを壊すからです。今日ではないかもしれませんが、明日ではないかもしれませんが、すぐに
ctrl-alt-delor 2015年

1
質問を更新して(編集して)、これが事実だと思う理由へのリンクを追加します。これまで/etc/shadow 20年以上問題なく編集してきまし。また、2分間のヘルプ→ツアー、特に「気を散らすもの」、「おしゃべりなし」をよく読んでください。質問に関連する「詳細」を読むよりも、関連性の低いおしゃべりを質問で読む必要があったのは、これが初めてです。
Anthon

「通常、あなたは決してしてはならない」は「決して」と同じではありません。
roaima

2
@captchaナンセンス。それをしないのには十分な理由があります。理由だけであなたが無知な他の人を呼び出すためにあなたに権利が与えられていないすべての考えることはできません。よろしくお願いします
Gilles「SO-邪悪なことをやめよ」

回答:


15

ありません編集するにはいくつかの理由がある/etc/passwd/etc/shadow/etc/group/etc/gshadowまたは/etc/sudoers直接ではなく、使用vipwvigrまたはvisudo

  • 構文エラーが発生すると、ログインできなくなったり、rootになれなくなる可能性があります。viXXXツールを使用すると、ファイルを変更する前に健全性チェックが行われるため、このリスクが軽減されます。
  • ファイルが同時に編集された場合、最後に保存した人は以前の編集による変更を上書きします。これには、管理者によるファイルの編集とpasswd、ユーザーがを呼び出したために変更されたファイル、chshまたはchfn自分のアカウントについて何かを変更したファイルの両方が含まれます。適切なツールを使用すると、同時変更ができなくなります。これは主に、複数のユーザーがいるシステムでの問題であり、あなたが唯一のユーザーである場合はそうではありません。
  • 一部のシステム(ほとんどまたは* BSDのみ)では、vipw複数のファイル(/etc/passwdおよびなど/etc/master.passwd)を更新します。これはLinuxには適用されません。
  • vipw自動的にバックアップが作成されます(passwd-shadow-、...)、あなたが誤って行を削除したことを認識した場合に有用です。次の編集の前に気付いた場合にのみ役立つため、バージョン管理やバックアップに取って代わることはありませんが、すぐに間違いに気付いた場合は非常に便利です。visudoこれはしません。

あなたは可能ファイルを直接編集します。あなたは本当の利点なしに追加のリスクを冒しているだけです。


ポイント#2は、上の懸念事項であるすべてのユーザーが自分のパスワード、シェル、およびその他もろもろを変更することができるシステム。複数の管理者が必要条件ではありません。☺
JdeBP

3
そして、BSDでのこれの主な問題は、ソースファイルではなく生成されたファイルであるため、/etc/shadow存在せず/etc/passwd、編集するファイルが間違っていることです。☺
JdeBP

@JdeBPを除いて、まったく問題がなく、BSD。はmaster.passwdに格納されます
Rob

6

これを見るには、基本的に2つの方法があります。

  1. 指定されたツールを使用せずに特定のファイルを編集しないでください。おそらく何をしているのかわからないためです。また、前述のツールはよりよく知っていていつでも利用できるため、問題ありません。

  2. より現実的には、システムの基本的な初期loginプロセスの内部と外部に関する基本的な知識がおそらく価値があるため、バックアップコピーを事前に計画し、実行後の違いを比較できるように、それを考えているときに今すぐ壊すこともできます。後で何か別の方法でそれを壊すときに備えて、ツールは役に立たないだろうと言いました。

私はあなたがおそらく私がどちらを推薦するかを言うことができると思います。トピックが一瞬でも興味があるなら、その好奇心を活かして、その中にいる間に新しいスキルを身につけるべきだと私は言います。特にこのようなもの- shadowファイルはかなり基本的な形式であり、誤って破壊した後に私が学んだことのほとんどはわかりませんでした。それは、そのファイルに対して行った編集の結果ではありませんでした。

むしろ、パッケージ管理データベースで他の何らかのミスがあり、パッケージマネージャーがバックアップを保存せずにそれを上書きして、システム上のすべてのユーザーがkaputされた後に私の問題が発生しました。さらに無知な修理の試みは、他の関連ファイルへのダメージを広げるだけであり、/etcのテキストファイルの大部分を(希望よりも新しい)バックアップから復元しなければならないようになりました。

それを実行し、実行可能な状態であることを確認したら、私は故意に、細心の注意を払ってもう一度すべてを実行することにしました。そしてもう一度。これはすべて数か月前のことでしたが、今日はlogin、システム上の1つのログファイルを1回だけ繰り返して問題の原因を診断し、基本的なエディターで対処できることを確信しています(おそらく、一目で確認できます)または2つはman 5 problem_file影響を受けたルートファイルシステムへの基本的なアクセスを提供します。それは安く手に入れることはできませんでした-それは私にほとんどの日を要しました-そして関連する設定ファイルはディレクトリ(そしてLinux PAMのような/var/run/no_login-他のマウント)にも広がっています-しかし、それはやる価値がありました。そして、それ少しの予見でもっと安かったかもしれません。

この話の教訓は、それはおそらくであるということであるでないようなミッションクリティカルなコンフィグの形式があることは良いことshadowpasswdgroupsshells私たちはしてもしなくてもよい方法で私たちの仕事を補正してもよい特殊な編集ツールを使用しなければならないことを私たちに非常に不透明である必要があり、単純な変更を行うだけでは理解できない理由があります。少なくとも、彼らが私たちとは異なる方法で何をするかを正確に理解することは私たちの価値があると私は思います。

ただし、上記のファイルの編集に慣れると、ファイル内で作成するリスクが発生し、その後、誤植または単純な構文エラーを保存して、再確認できるツールが用意されていること、おそらく良いことです。ブレース編集を適用する前にすでに理解している方法と理由で私たちの作業。


3

カウンターポイント-現在のパスワードを知らなかったり、新しいパスワードを割り当てたりせずに、ユーザーログインのセットを1つのサーバーから別のサーバーにコピーする必要がある場合は、/ etc / shadowを直接編集して、ハッシュされたパスワードフィールドを挿入する必要があります。vipwはそのフィールドに触れることができません、それは単に「*」です

更新:またはこの場合はchpasswd -e "ハッシュされたパスワード"を使用しますが、これはコンピューター上でのみ直接実行できます。マシン(仮想マシンなど)にまだデプロイされていない一連のファイルを使用して作業していた場合は、直接編集することが唯一の解決策になる可能性があります。

つまり、通常、/ etc / shadowを直接編集せずに、やりたいことを行うためのツールがあります。それが何であるかを知る必要があるだけです...


または、LDAPサーバーをセットアップすることもできます。
クサラナンダ

0

これらのファイルを編集する必要があるもう1つの理由は、別のシステムでブートするファイルシステムイメージ内のファイルを編集していて、ブート後にそのシステムをデバッグする必要がある場合です。たとえば、コミッションの失敗やレスキューモードで使用されるMAAS epheremalファイルシステム。

絶対に言ってはいけない...あなたがそれを意味しない限り。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.