유닉스의 사용자 이름은 대소 문자를 구분합니까?


20

ssh abc@servername와 다른 가요 ssh Abc@servername? 유닉스에서 사용자 이름의 경우가 중요합니까?

내 사용자는 LDAP를 통해 인증합니다.


3
Linux의 거의 모든 것은 대소 문자를 구분합니다. 의미 : ... cd와 동일하지 않음 CD... 실제로 동일하게 만드는 유일한 방법은 .bashrc파일 에서 별칭을 설정하는 것입니다 .
ryekayo

1
사용자 이름에 사용하는 LDAP 속성에 따라 다릅니다. RFC 4519uid 인 경우 대소 문자를 구분하지 않지만 인증 구현은 여전히 ​​대소 문자를 구분할 수 있습니다. 또한 LDAP로 인증이 정확히 수행되는 방법에 따라 다릅니다.
Stéphane Chazelas

1
사용자 이름으로 대문자로 로그인하면 몇 초 만에이 문제에 대한 답변을 얻을 수 있습니다.
Monica와의 가벼움 경주

답변:


14

호스트 이름 및 도메인 이름과 마찬가지로 사용자 이름은 엄격하게 유닉스가 아니지만 더 넓은 범위의 OS 유형에 걸쳐있을 수 있습니다.

대소 문자를 구분할지 여부는 지정하는 데 사용되는 표준에 따라 다릅니다.

호스트 이름과 도메인 이름은 DNS 표준에 따라 대소 문자를 구분하지 않습니다 ( RFC4343 참조 ).

로컬 백엔드 (/ etc / passwd) 또는 Unix 스타일 (NIS)에 저장된 사용자 이름 은 POSIX 표준에서 대소 문자를 구분하지 않습니다 .

는 LDAP 또는 Active Directory의 백엔드에 저장된 사용자 이름이 사용 된 속성 스키마 정의를 따를 것, uid그리고 cn어떤 종종 후자에 대한 전하지만, 대소 문자를 구별를 들어, 사용자 이름이 서로 다른 스키마 속성을 가질 경우를 구분 저장된다. 그 말 모두 Abcabc일치하거나하지 않을 수 있습니다 abcLDAP 서버 구성에 따라의 항목을.

이러한 불일치로 인해 사용자 이름과 호스트 / 도메인 이름 모두에 소문자 만 사용하고 ssh ABC@SERVERNAME.DOMAIN.COM무례한 것을 피하는 것이 좋습니다 .


1
그래서, 방법은 내가 읽은 POSIX 표준을 이 두 경우를 구분 또는 -insensitive로 지정되지 이후, 그리고 (대문자와 소문자 모두 포함) 전체 휴대용 파일 이름 문자 세트를 사용할 수있는, 그것은 구현에 의존 할 것이다. 그 맞습니까? 즉, 표준 규칙이 있습니까?
Doug R.

1
@DougR. POSIX와 관련하여 사용자 이름은 대소 문자를 구분합니다. 그렇지 않으면 대소 문자를 구분하지 않아도됩니다. 휴대용 파일 이름 문자 집합을 참조 할 때 대 / 소문자를 구분합니다.
jlliagre

설명해 주셔서 감사합니다. 그것은 나의 초기 가정이지만, 어떤 식 으로든 언급 한 휴대용 파일 이름 문자 세트와 관련하여 아무것도 찾을 수 없습니다.
Doug R.

5

예, 대소 문자를 구분합니다. 기술 정보를 가져올 수 없습니다. 방금 테스트 한 결과 왜 그렇게하지 않았는지 궁금합니다 (?).

내 로컬 머신은 리눅스 민트입니다.

# 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 ~]# 

부수적 인 문제로, 여기에서 한 것처럼 SSH 로그인을 루트로 허용하는 것이 현명한 보안 현명하지 않습니다 (특히 컴퓨터가 인터넷을 사용하는 경우) 😱 요즘 OpenSSH에서는 일반적으로 sshd_config에서. 일반 사용자로 로그인 한 다음 sudo 또는 su를 사용하여 필요할 때만 루트가되도록하는 것이 좋습니다.
JohnGH

예, 그렇습니다. 먼저 슈퍼 유저이기 때문에 동의합니다. 두 번째로 '루트'사용자 이름은 공격자에게 알려져 있으며 암호 만 있으면됩니다. 어쨌든 이것은 실제로 로컬로 실행되는 가상 머신이며 인턴에 노출되지 않습니다. 모범 사례는 허용 된 주소 (방화벽 규칙)에서 오는 요청에 대해서만 rsa ssh 인증서를 사용하여 로그인하거나 개방 ssh 포트를 사용하는 것입니다.
Lese

3

로컬 계정의 경우 사용자 이름은 대소 문자를 구분합니다. LDAP를 사용하는 경우 LDAP에 따라 다릅니다. 사용자 이름이 대소 문자를 구분하는 경우 (LDAP에 연결된 ZFS 어플라이언스에서) 및 Windows AD에 연결된 Solaris LDAP 클라이언트와 같이 중요하지 않은 경우를 보았습니다.

시도하거나 시도 할 수있는 것은 발행하여 시스템이 LDAP를 올바르게 사용하고 있는지 확인하는 것 getent passwd <username>입니다. 이 명령을 사용하면 지정된 사용자의 사용자 이름, 홈 디렉토리 및 쉘이있는 레코드가 제공됩니다. 해당 레코드가 표시되지 않으면 LDAP이 올바르게 구성되지 않은 것입니다.

LDAP를 구성해야하는 여러 위치가 있으며 그 중 하나는 다음과 같습니다.

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

또한 PAM이 올바르게 구성되어 있는지 확인해야하며 가장 중요한 단계는 LDAP 클라이언트가 구성되어 작동 중인지 확인하는 것입니다. ldapsearchLDAP를 쿼리 할 수 ​​있는지 확인하는 것과 같은 도구를 사용해보십시오 .

사용 가능한 몇 가지 LDAP 쿡북이 있으며 대부분 유닉스 버전과 사용중인 LDAP 버전에 따라 다릅니다. 추가 지원이 필요한 경우 세부 정보로 질문을 업데이트하십시오. 또한 포럼 구성원이 특정 문제를 분석하는 데 도움이되는 구성 설정 (암호 없음)도 포함하십시오.


1

유닉스 사용자 이름은 대소 문자를 구분하며, 유닉스 시스템에서 대문자로 된 사용자 이름을 사용하면 원하지 않는 결과가 발생할 수 있으므로 일반적으로 피해야합니다.

몇 가지 예는 다음과 같습니다.

사용자의 이메일을 차단할 수 있습니다. SMTP 표준에 따라 이메일 주소는 대소 문자를 구분하지 않으며 기본적으로 메시지를 수신하는 MTA는 이메일 주소를 소문자로 접어 사용자가 전달할 수 있도록합니다. 사용자 이름에 대문자가 있으면 특별한 구성 재정의가 없으면 해결되지 않습니다. (이는 sendmail, postfix 등과 같은 MTA 및 procmail과 같은 배달 처리 에이전트에 영향을 미칩니다)

많은 초기 하드웨어 터미널은 대소 문자를 구분하지 않았습니다. 대문자 만 사용하는 것이 일반적이었습니다. 일부 버전의 Unix에 로그인 할 때 대문자로 로그인 이름을 시작하면 시스템에서 고대 대문자 만 터미널을 사용한다고 가정하고 대소 문자를 접을 수 있습니다. 이렇게하면 입력 한 모든 대문자가 소문자 ( 그런 다음 대문자로 표시하려면 대문자를 이스케이프 처리해야합니다. 나는 이것이 Linux에서는 믿지 않지만 HP-UX에서 시연하는 것을 보았습니다.

사용자 이름에 소문자 만 사용하는 것이 오랫동안 관례 였으므로 시스템의 다른 도구 (우리가 생각하지 않았을 수도 있음)는 사용자 이름이 소문자 여야하고 확인, 변환 등을 가정 할 수도 있습니다. 따라서 해당 사용자를 위해 일을 중단합니다.


0

사용자 이름은 대소 문자를 구분합니다. 비슷한 이름을 가진 두 명의 사용자를 추가하여이를 쉽게 테스트 할 수 있습니다.

~ # 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.