사용자 이름에 점이 있으면 단점은 무엇입니까?


27

한 학생이 방금 .사용자 이름에 점 ( ) 이있는 단점을 물었습니다 . 예를 들면 다음과 같습니다.john.doe

이것이 시스템 또는 해당 사안의 앱에 어떤 영향을 미칩니 까?

답변:


38

POSIX 는 사용자 이름에 대해 다음과 같이 말합니다 .

[...] IEEE Std 1003.1-2001을 준수하는 시스템에서 이식 가능하도록 값은 이식 가능한 파일 이름 문자 세트의 문자로 구성됩니다. 하이픈을 휴대용 사용자 이름의 첫 문자로 사용해서는 안됩니다.

... 이식 가능한 파일 이름 문자 세트 는 다음과 같습니다.

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -

또한 파일 맨 페이지에 다음과/etc/adduser.conf맨 페이지 아이콘 같이 나와 있습니다.

   VALID NAMES
          adduser and addgroup enforce conformity to IEEE Std 1003.1-2001,
          which  allows  only  the following characters to appear in group
          and user names: letters, digits, underscores, periods, at  signs
          (@) and dashes. The name may not start with a dash. The "$" sign
          is allowed at the end of usernames (to conform to samba).

          An additional  check  can  be  adjusted  via  the  configuration
          parameter NAME_REGEX to enforce a local policy.

하나,

두 사양 모두 점을 포함하는 것처럼 보이지만 우분투 (최소 13.04 이상)에서는 허용하지 않는 것 같습니다.

⊳ sudo adduser as.df
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.

NAME_REGEXUbuntu 의 기본값 은 ( /etc/adduser.conf맨 페이지에서)입니다.

^[a-z][-a-z0-9]*$
  • 소문자로 시작한 다음 대시, 소문자 또는 숫자를 입력하십시오. 아니 _, @..

그래서,

결론 점은 .우분투 사용자 이름에 사용할 수는 NAME_REGEX단지 변경되어야한다 /etc/adduser.conf. POSIX를 준수하는 것으로 보았을 때 아무런 문제가 없어야합니다.. POSIX 호환 프로그램의 사용자 이름을 합니다.

사용자 이름에서 점을 활성화하려면

  1. 터미널에서이 명령을 실행하십시오.

    sudo nano /etc/adduser.conf
    
  2. 이 줄을 찾으십시오 (파일 끝 근처)

    #NAME_REGEX="^[a-z][-a-z0-9]*$"
    

    그리고 그것을 대체하십시오

    NAME_REGEX='^[a-z][-.a-z0-9]*$'
    

    (가) 있습니다 -브래킷 식의 첫 번째 문자를 유지해야 [...]그렇지 않으면 범위를 지정으로 처리됩니다 a-z.

  3. Ctrl+ X,을 Y차례로 누릅니다 Enter.


참고 문헌 :


@ vasa1 지적 해 주셔서 감사합니다.
kiri

2
안녕하세요 minerz029, 내가 볼 수있는 한, 그것은 의심 할 여지없이 훌륭한 답변입니다. 우분투 가이 결정을 내린 이유를 알려 주시겠습니까?
Luis Alvarado

2
@LuisAlvarado :보다 제한된 문자 세트를 사용하는 사용자 이름을 기대하는 [POSIX 이외의] 프로그램과의 호환성이있을 수 있습니다. Ubuntu가 기본적으로 허용하는 문자는 거의 모든 프로그램에서 작동하도록 거의 보장됩니다. adduser 맨 페이지는 기본 정규식을 "가장 보수적 인"것으로 설명하며, 사용자 이름의 안전한쪽에 있습니다.
kiri

1
이것은 나를 위해 작동하지만 추가하지 않았습니다 NAME_REGEX="^[a-z][-a-z0-9_.]*\$?$"에서 /etc/adduser.conf했다.
Mario

1
정규식을 변경하지 마십시오. useradd대신에 전화하십시오 : sudo useradd -m my.user. 이것이 우리가 Userify에서하는 일이며 크로스 플랫폼이기도합니다.
Jamieson Becker

3

사용자 이름을 읽는 응용 프로그램은 사용자 이름이 규칙을 따르고 사용자 이름을 처리 할 수 ​​없다고 가정하는 정규식을 사용할 수 있습니다.


그러나 마찬가지로 그들은 배포판에 의해 만들어진 가정과 충돌하는 가정을 할 수 있습니까?
0xC0000022L

3

Marc Haber는 데비안 버그 # 604242 의 가능한 단점을 설명합니다 (기본적으로 사용자 이름에 점 허용).

사용자 이름에 점이 있으면을 사용하여 scipts에서 일부 문제가 발생하는데 chown,이 점은 여전히 ​​사용자 이름과 그룹 이름 사이의 구분자로 점을 허용합니다. 만약chown 여전히 점을 받아, 사용자 이름이 점을 포함하는 경우 깰 것이 표기법을 사용하여 스크립트가있을 것입니다.

chown점을 구분 기호로 허용하지 않을 때까지 현재 기본값 (로컬 구성으로 덮어 쓸 수 있음)을 유지하는 것이 좋습니다 .

그리고 chown더 이상 문서화되어 있지 않지만 점을 구분 기호로 계속 사용합니다. POSIX 호환성이 우선해야한다는 데 동의하며 실제로 여러 시스템에서 점이 포함 된 사용자 이름을 악영향없이 사용합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.