![groupadd에 허용되는 그룹 이름은 무엇입니까?](https://linux55.com/image/1391/groupadd%EC%97%90%20%ED%97%88%EC%9A%A9%EB%90%98%EB%8A%94%20%EA%B7%B8%EB%A3%B9%20%EC%9D%B4%EB%A6%84%EC%9D%80%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
나는 팔로우한다이 지침다음을 제공하는 Build Shadowgroupadd
주문하다. 지금 이것을 시도하면 오류가 발생합니다.
$ groupadd automake1.10
groupadd: 'automake1.10' is not a valid group name
영숫자 이름을 확인했는데 제대로 작동합니다.
답변1
자세한 내용은 소스 코드를 참조하세요 libmisc/chkname.c
. Shadow는 상당히 보수적입니다. 이름은 정규식과 일치해야 하며 [_a-z][-0-9_a-z]*\$?
최대 GROUP_NAME_MAX_LENGTH
1자까지 가능합니다(구성 옵션, 기본값은 16자, 사용자 이름은 일반적으로 최대 32자까지 가능하며 컴파일 시 결정됨).
데비안은 많은 검사를 완화합니다. 압출부터 시작하여 :
공백과 . 바라보다버그 #264879그리고버그 #377844.
POSIX요구 사항에서는 대문자 또는 소문자, 숫자 및 ._-
(파일명과 마찬가지로). 이식성에 관심이 없다면 POSIX는 어떤 제한도 설정하지 않습니다. 제안된 제한 사항 중 상당수는 다음을 사용하여 발생합니다.
/etc/passwd
콜론, 줄 바꿈 및 null은 모두 제외됩니다. 또는 에서는 사용할 수 없습니다/etc/group
.- 숫자로만 구성된 이름은 좋지 않습니다. 일련의 숫자가 사용자/그룹 데이터베이스에 있는 경우 이름으로 처리해야 하지만 다른 애플리케이션에서는 모든 숫자를 숫자 ID로 처리할 수 있습니다
chown
.chgrp
- 많은 애플리케이션이 외부 유틸리티(예 : ) 에 전달할 수 있기를 기대하므로 사용자 이름에 이니셜
-
이나 a를 사용하지 않는 것이 좋습니다. 그룹 이름에 A가 있으면 문제가 덜 발생하지만 여전히 사용하지 않는 것이 좋습니다..
$user.$group
chown $user.$group /path/to/file
.
/
일부 프로그램에서는 파일 이름에 사용자 이름을 사용하려고 하기 때문에 문제가 발생할 수도 있습니다.- 셸이 확장하는 모든 역할이 위험할 수 있습니다.
- 다른 인코딩을 사용할 수 있는 시스템과의 공유에 관심이 없다면 ASCII가 아닌 문자도 괜찮습니다.
1 모든 최신 구현은 이전 버전과의 호환성을 기대 chown $user:$group
하지만 지원하며 chown $user.$group
너무 많은 응용 프로그램이 호환성 지원을 제거하기 위해 지점을 통과합니다.
답변2
모험을 즐기고 싶다면 /etc/group
직접 편집하고 원하는 그룹 이름을 입력할 수 있습니다. 또한 @Gilles가 언급한 문제 중 하나에 직면했을 때 문제를 해결하기 위해 편집기를 로드할 수 없거나 전혀 로그인할 수도 없다는 추가 이점이 있습니다. 이는 손상된 시스템을 복구하는 귀중한 경험을 제공합니다. !
답변3
최근 이 문제를 탐구하는 모든 사람을 위한 업데이트:
@gilles-so-stop-being-evil은 정확합니다. 신뢰할 수 있는 소스는 https://github.com/shadow-maint/shadow/blob/master/libmisc/chkname.c
특히 해당 is_valid_name
기능이지만 해당 파일의 정규 표현식은 원래 답변을 게시한 이후 변경되었습니다.
[a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]?
코드에 경고를 적용하세요.즉, 모든 숫자 이름의 사용이 금지됩니다. 길이 확인은 길이 확인이 통과된 IFF를 is_valid_group_name
호출하여 시행됩니다( 의 경우에도 를 통해 ).is_valid_name
useradd
is_valid_user_name