groupaddに許可されているグループ名は何ですか?


13

私は、その後、これらの命令を提供し、シャドウ、構築するためにgroupaddコマンドを。これを試すとエラーが発生します:

$ groupadd automake1.10
groupadd: 'automake1.10' is not a valid group name

英数字の名前を確認したところ、問題なく動作しました。

回答:


20

特に、ソースコードを参照してくださいlibmisc/chkname.c。シャドウはかなり保守的です。名前は正規表現[_a-z][-0-9_a-z]*\$?と一致する必要があり、最大でGROUP_NAME_MAX_LENGTH文字数になる可能性があります(設定オプション、デフォルトは16。ユーザー名は通常、コンパイル時の決定に従って最大32文字です)。

Debianはチェックを大幅に緩和します。squeezeの時点では、空白文字以外:は許可されています。参照してくださいバグ#264879バグ#377844を

POSIXでは、大文字と小文字、数字、および._-ファイル名のように)許可する必要があります。移植性を気にしない場合、POSIXは制限を設定しません。いくつかの推奨される制限は、使用法に起因します。

  • コロン、改行、ヌルはすぐに使用できます。/etc/passwdまたはで使用できません/etc/group
  • 単に数字からなる名前は悪い考えです- chownそしてchgrpそれは、ユーザー/グループデータベースにかどう名として数字列を扱うことになっているが、他のアプリケーションでは、数値IDとして任意の数を扱うことがあります。
  • 多くのアプリケーションが外部ユーティリティに渡されることを期待しているため(例)¹ は、ユーザー名の頭文字-またはを.強くお勧めしません。グループ名のA は問題が少ないはずですが、それでもお勧めしません。$user.$groupchown $user.$group /path/to/file.
  • / 一部のプログラムではファイル名にユーザー名を使用できると想定しているため、トラブルも発生する可能性があります。
  • シェルが展開するキャラクターはおそらく危険です。
  • 異なるエンコーディングを使用する可能性のあるシステムとの共有を気にしない場合は、ASCII以外の文字でも問題ありません。

¹ すべての近代的な実装は期待するchown $user:$groupが、サポートchown $user.$group下位互換性のため、およびその互換性のサポートを削除するには、ドットを渡すそこにあまりにも多くのアプリケーションがあります。


chown議論:現在の構文は、少なくともGNU coreutilsでは、でありuser:group、ドットは互換性のためにのみ受け入れられます。使用できますj.smith:j.smith
user1686 2011

1
@grawity:GNU coreutilsだけでなく、問題chown自体も問題ではありません。chown $user.$group代わりに呼び出すのは既存のスクリプトや他のプログラムchown $user:$groupです。chown実装が正しいことを行おうとしても、いくつかのケースでは本質的にあいまいです。
Gilles「SO-邪悪なことをやめなさい」

1

冒険したい場合は、/etc/group直接編集して、好きなグループ名を付けることができます。また、これには、@ Gillesで言及された問題のいずれかが発生した場合、エディターをロードして問題を修正することも、まったくログインすることもできないという追加のボーナスもあります-壊れたシステムを回復する貴重な体験を提供します!


5
/etc/gshadowグループを追加するときは、必ず編集してください。また、vigr(8)ファイルを直接編集するのではなく使用してください。
camh 2011
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.