web-dev-qa-db-ja.com

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

私は これらの指示 に従ってシャドウを構築し、groupaddコマンドを提供しました。これを試すとエラーが発生します:

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

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

13
tshepang

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

Debianはチェックを大幅に緩和します。 squeeze以降、空白と:以外は許可されます。 bug#264879 および bug#377844 を参照してください。

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

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

¹ 最新の実装はすべてchown $user:$groupを想定していますが、下位互換性のためにchown $user.$groupをサポートしており、互換性サポートを削除するにはドットを渡すアプリケーションが多すぎます。

冒険したい場合は、編集できます/etc/groupを直接使用して、任意のグループ名を入力します。また、@ Gillesで言及した問題の1つに遭遇すると、エディターをロードして問題を修正することも、まったくログインすることもできなくなる可能性があり、壊れたシステムの回復に貴重な経験をすることができます。

1
Malvineous