/etc/group および /etc/passwd ファイルをソートできますか?

/etc/group および /etc/passwd ファイルをソートできますか?

/etc/group新しいユーザーを追加し、自分のユーザーやグループを追加するプログラムをインストールすることで成長しました。についても同様です/etc/passwd。これで構造が足りなくなり、編集が少し面倒です。

私はできます。このファイルを並べ替える(例:数値IDまたは名前のアルファベット順)システムおよび/またはパッケージマネージャに悪影響を及ぼしませんか?

それは重要ではないと思いますが、ただ2番目のコメントを聞きたかったことを確認することです。たぶんroot最初の行や最初の1,000行などになるべきですか?

同じだ/etc/*shadow

答え1

あなたはする必要がありますわかりました。:実際には、記事とマニュアルによると、それぞれを使用してUID / GIDで並べ替える/etc/passwdことができます。/etc/grouppwck -sgrpck -s

答え2

これは一般的に大丈夫だろうというErikFの主張は正しいですが、1つの潜在的な問題を指摘したいと思います。

異なるユーザー名を同じUIDにマップできます。この機能を利用すると、UIDをユーザー名に再マップするツールは通常、そのUIDに見つかった最初のユーザー名を選択します/etc/passwd。ソートすると、別のユーザー名が最初に表示されることがあります。表示目的(ls -l出力など)では、2 つのユーザー名のいずれかが有効でなければなりませんが、ユーザー名 A からの要求を受け入れるように何かを構成している可能性があります。このリクエストを拒否します。 。

答え3

最初の行にルートを設定することは、長い間事実上の「標準」でした。これは、問題を処理したりシステムを回復したりするときにシェルを変更したりパスワードを削除したりする必要がある場合に非常に便利です。

passwd同様に、私はdaemon / utilsユーザーを真ん中に置き、標準ユーザーを最後に置くことを好みますshadow

hvd答えは、ユーザーの順序を妨げるのにも役立ちます。特に、多くのユーザーが回答を手動で保守するシステムでは、さらにそうです。

たとえば、標準ユーザーに対してのみファイルを並べ替えることができる場合は、すべてのユーザーの順序を変更するよりも合理的だと思います。

答え4

以下は、Shadow / gshadowファイルを同様にソートするためのやや複雑なbashコードです。安全にvipw -s/使用vigr -s)とコマンドラインで、次の操作を行います。

EDITOR="/usr/bin/vi -c \"1,\\\$!awk 'BEGIN {FS = \\\":\\\"} FNR==NR {x2[\\\$1] = \\\$0; next} \\\$1 in x2 {print x2[\\\$1]}' - /etc/passwd\" -c \"wq! \" >/dev/null 2>&1" vipw -s

EDITOR="/usr/bin/vi -c \"1,\\\$!awk 'BEGIN {FS = \\\":\\\"} FNR==NR {x2[\\\$1] = \\\$0; next} \\\$1 in x2 {print x2[\\\$1]}' - /etc/group\" -c \"wq! \" >/dev/null 2>&1" vigr -s

メモ:

  1. vi -cvipw/変数で指定されたエディタであるvimエディタにコマンドを渡します。vigrEDITOR
  2. awkコードソートshadow基準passwd(およびgshadow基準group
  3. バックスラッシュは、単に引用レベルに必要な複数のエスケープレベルに対応します。
  4. 2番目のコマンド(-c \ "wq! \")は、ソートされたファイルを強制的に書き込んで閉じます。 Shadow / gshadowは通常モード000(つまり書き込み不可能)なので、強制適用が必要です。シェルが bash イベントを参照する「!\」と解釈するのを防ぐには、「!」と「\」の間のスペースが必要です。

関連情報