sudoers에서 (ALL)=All은 사용자 또는 권한을 나타냅니까? 사용자 권한 관리

sudoers에서 (ALL)=All은 사용자 또는 권한을 나타냅니까? 사용자 권한 관리

이런 실수는 매우 위험한 일이라는 점을 고려하면 이에 대한 명확한 답변이 필요하다고 생각합니다. sudoer에서 ALL을 사용하는 것에 대한 다른 답변이 많이 있지만 이 질문에 직접적으로 답변하지는 않습니다.

ALL은 그룹의 사용자를 참조합니까? ALL은 Cmnd_Alias[es]에 대한 액세스를 참조합니까? 아니면 행의 위치에 따라 둘 중 하나 또는 둘 다를 참조할 수 있습니까?

예를 들어, 이와 같은 그룹은 해당 그룹의 사용자에게 액세스 권한이 있음을 REGULARUSER ALL=(ALL) NOPASSWD: SHUTDOWN의미합니다 .ALLREGULARUSERCmnd_Alias SHUTDOWN

즉, 문법은 다음과 같습니다. Group \ Users \ Command Permission Specifications.이것이 맞습니까?

즉, ALL루트와 같은 인스턴스에서 ALL을 사용하여 그룹의 모든 사용자에게 모든 권한을 부여할 수 있으므로 사용자 그룹에 대해 ALL=(ALL:ALL) ALL root

사용에 대한 다른 질문ALL

sudoers 파일에서 "modernNeo ALL=(ALL:ALL) ALL"과 "modernNeo ALL=(ALL) ALL"의 차이점을 이해하려고 합니다.

"ALL ALL=(ALL) NOPASSWD:ALL"이 /etc/sudoers 파일에 자동으로 추가되었습니다. 이것이 보안 취약점입니까?

답변1

~에서맨페이지:

예약어모두내장되어 있습니다별명이는 항상 성공적인 일치로 이어집니다. Cmnd_Alias, User_Alias, Runas_Alias또는 가 사용될 수 있는 모든 위치에서 사용할 수 있습니다 Host_Alias.

따라서 상황에 따라 모든 명령, 모든 사용자 또는 그룹, 모든 사용자 또는 그룹 또는 모든 호스트가 될 수 있습니다.

예를 들어, 이와 같은 그룹은 해당 그룹의 사용자에게 액세스 권한이 있음을 REGULARUSER ALL=(ALL) NOPASSWD: SHUTDOWN의미합니다 .ALLREGULARUSERCmnd_Alias SHUTDOWN

ALL예, 하지만 "모든 사용자"는 규칙에 아무 것도 없기 때문에 그렇지 않습니다 . 첫 번째 ALL가 타겟이고 Host_Alias, 두 번째가 ALL타겟입니다 Runas_Alias. 이 때문입니다User_ListRunas_List그룹을 포함할 수 있습니다 .:

A는 User_List하나 이상의 사용자 이름, 사용자 ID( #접두사 ' '), 시스템 그룹 이름 및 ID( 각각 ' %' 및 ' ' %#접두사 ), 네트워크 그룹( +접두사 ' '), 비 Unix 그룹 이름으로 구성됩니다. ID( 각각 " %:" 및 " " %:#접두사가 붙음 ) 및 User_Aliases.

그리고:

A는 를 포함할 수 있다는 점을 제외 Runas_List하면 와 같습니다 .User_ListUser_AliasesRunas_Aliases

그룹이 포함된다는 것은 User_list부정을 통해 특정 멤버를 제외하지 않는 한 그룹의 모든 멤버를 의미합니다.

즉, 구문은 다음과 같습니다 Group \ Users \ Command Permission Specifications.

별말씀을요. 바라보다EBNF 구문을 설명하는 매뉴얼 페이지, 그러나 대략적으로는 다음과 같습니다.

<user_list> <host_list> = (<runas_list>) <tags> <commands>

또는 맨페이지에서 다음을 수행하세요.

사용자 지정의 기본 구조는 "who where=(as_whom)what"입니다.

관련 정보