Unixのユーザー名は大文字と小文字が区別されますか?


20

とはssh abc@servername違うssh Abc@servername?Unixではユーザー名の大文字小文字は問題になりますか?

ユーザーがLDAPを介して認証します。


3
Linuxのほとんどすべてでは、大文字と小文字が区別されます。意味:... cdと同じではありませんCD...実際にそれらを同じにする唯一の方法は、.bashrcファイルにエイリアスを設定することです
..-ryekayo

1
これは、ユーザー名に使用するLDAP属性に依存すると思います。RFC 4519uidの場合、大文字と小文字は区別されませんが、認証の実装では、大文字と小文字が区別される場合があります。また、LDAPを使用して認証が正確に行われる方法にも依存します。
ステファンシャゼラス

1
ユーザー名を大文字にしてログインしようとすると、ほんの数秒でこれに答えられます。
モニカとライトネスレース

回答:


14

ホスト名やドメイン名と同じように、ユーザー名は厳密にはUnixのものではありませんが、多くの場合、より広範なOSタイプにまたがることができます。

大文字と小文字を区別するかどうかは、それらの指定に使用される標準に依存します。

ホスト名とドメイン名は、DNS規格で明らかに大文字と小文字が区別されません(RFC4343を参照)。

ローカルバックエンド(/ etc / passwd)またはUnixスタイルのもの(NIS)に保存されているユーザー名は、POSIX標準では大文字と小文字が区別されません。

LDAPまたはActive Directoryのバックエンドに保存されたユーザ名は使用される属性のスキーマの定義に従います、uidそしてcnその多くの場合、後者は、前者が、大文字と小文字を区別するために、ユーザー名が異なるスキーマ属性を持っているケース小文字を区別しないを格納しています。つまり、両方Abcを意味し、LDAPサーバーの構成に応じて、エントリとabc一致する場合と一致しないabc場合があります。

この不一致のため、ユーザー名とホスト/ドメイン名の両方に小文字のみを使用し、いずれにしssh ABC@SERVERNAME.DOMAIN.COMても失礼なものを避けることをお勧めします。


1
だから、私が読ん道POSIX標準では、それは大文字と小文字を区別または非感受性のどちらかとして指定されていないことから、及び(大文字と小文字の両方を含む)全体のポータブルファイル名の文字セットが利用可能である、それは実装依存となります。あれは正しいですか?そうは言っても、標準的な規則はありますか?
ダグR.

1
@DougR。POSIXに関する限り、ユーザー名は大文字と小文字に依存します。そうでなければ、大文字小文字の区別は指定されていたでしょう。ポータブルファイル名文字セットを参照する場合、大文字と小文字の区別は暗黙的に行われます。
jlliagre

説明をありがとう。それは私の最初の仮定でしたが、ある特定の方法でこれを述べたポータブルなファイル名の文字セットに関しては何も見つかりませんでした。
ダグR.

5

はい、大文字と小文字が区別されます。技術情報を持ってこられないので、テストしたばかりで、なぜそうしなかったのか疑問に思いました(?)

あなたが見ることができるように私のローカルマシンはLinuxミントです:

# cat /etc/*release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.2
DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
cat: /etc/upstream-release: Is a directory

そして、私は次のようにCentOSサーバーに接続しようとしました:

・大文字の(間違った)ユーザー名の使用:

8D prova # ssh Root@agora-server
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 

・正しいユーザー名の使用:

8D prova # ssh root@agora-server
root@agora-server's password: 
Last login: Fri Oct  2 01:50:13 2015 from 192.168.0.31
[root@agora-server ~]# 

副次的な問題として、ここで行われたようにrootとしてSSHログインを許可することはセキュリティ上賢明ではありません(特にマシンがインターネットに面している場合)Open OpenSSHを使用する最近では、 sshd_configで。通常のユーザーとしてログインし、必要な場合にのみsudoまたはsuを使用してrootになることをお勧めします。
JohnGH

はい、それは正しいです。最初はスーパーユーザーだからです。次に、「ルート」ユーザー名は攻撃者に知られています。パスワードをキャッチするだけです。とにかく、これは実際にはローカルで実行されている仮想マシンであり、インターンにはさらされていません。グッドプラクティスは、唯一許可されたアドレス(ファイアウォールルール)からの要求のログインにRSA SSH証明書を使用することで、または/プラスオープンsshのポート
lese

3

ローカルアカウントの場合、ユーザー名は大文字と小文字が区別されます。LDAPを使用する場合、依存します。ユーザー名が大文字と小文字を区別する場合(LDAPに接続されているZFSアプライアンス上)と、Windows ADに接続されているSolaris LDAPクライアントのように重要でない場合を見てきました。

すべき/できることは、システムがLDAPを正しく使用しているかどうかを確認することgetent passwd <username>です。このコマンドを使用すると、指定したユーザーのユーザー名、ホームディレクトリ、およびシェルのレコードが表示されます。そのようなレコードが表示されない場合、LDAPは正しく構成されていません。

LDAPを構成する必要のある場所がいくつかありますが、そのうちの1つは次のとおりです。

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

また、PAMが正しく構成されているかどうかを確認する必要があります。おそらく最も重要な手順は、LDAPクライアントが構成され機能しているかどうかを確認することです。ldapsearchLDAPを照会できるかどうかを確認するようなツールを試してください。

使用可能なLDAPクックブックがいくつかあり、それらのほとんどは、使用しているUnixバージョンとLDAPバージョンに依存しています。さらに支援が必要な場合は、これらの詳細で質問を更新してください。また、フォーラムメンバーが特定の問題を分析するのに役立つ構成セットアップ(もちろんパスワードなし)も含めます。


1

Unixユーザー名は、大文字と小文字が区別されることは間違いありません。さらに、Unixシステムで大文字のユーザー名を使用すると、望ましくない結果が生じる可能性があるため、通常は避けてください。

以下に例を示します。

ユーザーへのメールを破壊する可能性があります。SMTPの標準では、電子メールアドレスは大文字と小文字を区別できません。デフォルトでは、メッセージを受信するMTAは電子メールアドレスを小文字に変換して、配信先のユーザーを見つけます。ユーザー名に大文字が含まれている場合、これに対応するための特別な設定のオーバーライドがなければ解決されません。(これは、sendmail、postfixなどのMTA、およびprocmailなどの配信処理エージェントにも影響します)

初期のハードウェア端末の多くは大文字と小文字を区別しませんでした。大文字のみを使用するのが一般的でした。Unixの一部のバージョンにログインする際、大文字でログイン名を開始すると、システムは古代の大文字のみの端末を使用していると想定し、大文字の折りたたみを有効にします-入力した大文字をすべて小文字に変換します(大文字であると言うために大文字をエスケープする必要があります)、ユーザー名が小文字になると予想されるユーザー名を入力できるようにします。これはLinuxの問題ではないと思いますが、HP-UXで実証されているのを見てきました。

ユーザー名に小文字のみを使用することは長年の慣習であるため、システム上の他のツール(考えていないかもしれませんが)がユーザー名を小文字であると想定し、チェック、変換などを行うことを期待するのは合理的ですそれに応じて、そのユーザーのために物事を壊します。


0

ユーザー名では、大文字と小文字が区別されます。類似した名前の2人のユーザーを追加することで、これを簡単にテストできます。

~ # useradd foobar
~ # useradd fooBar
~ # grep ^foo /etc/passwd
foobar:x:1001:1001::/home/foobar:/bin/sh
fooBar:x:1002:1002::/home/fooBar:/bin/sh

この質問/回答は、LDAPサーバーに従って「間違った」ケースを持つユーザー名でログインしようとしているユーザーを補償する方法を示しています。ただし、これは、ユーザー名がすべて小文字でリストされている場合にのみ機能します(または、必要に応じてすべて大文字にすることができます)。

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