Home » OS » 리눅스 사용자 그룹 조회를 해 봅시다.

리눅스 사용자 그룹 조회를 해 봅시다.

리눅스에는 그룹이 있습니다. 파일의 권한을 언급할 때 등장하는 것 중 하나가 그룹인데요. 어떤 파일이 내가 가지고 있지 않습니다. 그런데, 내가 속한 그룹이 가지고 있으면, 그룹 권한으로 들어가기 때문입니다. 보통 소유자가 그룹보다, 다른 유저보다 그룹 권한을 더 많이 가지게 세팅하기 때문에, 447과 같은 권한은 다루지 않겠습니다. 이렇게 중요한 리눅스 사용자 그룹. 어떻게 조회하는지 알아봅시다.


먼저 /etc/group 파일을 보겠습니다.

[그림 1] etc 디렉토리에 있는 group 파일

이 파일에는 그룹에 대한 정보들이 있습니다. :로 구분된 필드들이 있습니다. 1번째 필드는 그룹을 의미합니다. 그리고, 4번째 필드는 그룹에 속한 유저들을 의미해요. 예를 들자면, adm 그룹에는 syslog 유저와 cho 유저가 속해 있습니다.

그리고 cdrom 그룹에 cho가 속해 있어요. 여기서 특정 그룹에 속하는 유저는 어떻게 알아낼 수 있을까요? 예를 들자면, scanner 그룹에 속하는 유저를 알고 싶습니다.

[그림 2] scanner에 속하는 유저 알아내기

이 경우, cat /etc/group | grep -E “^scanner:”를 입력해 주시면 됩니다. 정규 표현식에서 ^는 시작을 의미합니다. /etc/group에서 :로 구분되는 필드들의 1번째 부분은 그룹 이름입니다. 위 명령어는 접두어가 scanner: 로 시작하는 패턴을 얻어옵니다. 이 의미는 scanner 그룹에 대한 정보를 얻어오는 것과 동치입니다.

saned 1명을 볼 수 있네요. 혹은 조금 더 수고를 해서 cat /etc/group | grep “scanner” 명령어를 입력 해도 됩니다.


그러면 이 그룹이 어디에 쓰이는가? 파일에는 권한이 있다고 했어요. /home/cho에 있는 1.txt의 권한을 봅시다.

[그림 3] 1.txt의 권한

4번째 필드 root는 파일 소유자가 root임을 의미합니다. 5번째 필드 adm이 있는데요. adm은 소유하고 있는 그룹을 의미해요. 2번째 부분은 권한을 의미하는데요. 2번째 것부터 3자씩 끊어서 봅시다. rw- r– — 이렇게 들어가 있지요. 먼저 앞에 rw-는 소유자의 권한을 의미해요. root는 읽고 쓸 수 있는 권한이 있다는 것입니다. 다음, r– 은 그룹 adm에 속한 유저의 권한을 의미합니다. 읽기 권한만 있습니다. 다음 —은 소유한 그룹에도 속하지 않고 소유자도 아닌 유저들의 권한입니다. 아무것도 없다는 것입니다.

[그림 4] cho는1.txt를 읽을 수 있다.

cho 유저로 1.txt를 읽어볼까요? 읽을 수 있습니다. 왜 그럴까요? 잠깐 도식화를 시켜 볼까요?

1.txt의 소유자와 소유 그룹은 root와 adm입니다. 일단, cho는 root가 아닙니다. 따라서, 아래쪽 화살표로 내려갑니다.

다음에 cho가 adm 그룹에 속하는지 검사하겠군요. adm 그룹에 속하나요? 네. 그러므로 group 권한을 따르게 됩니다.

그룹의 권한은 r– 였습니다. 따라서, 1.txt를 읽는 것만 가능합니다.

[그림 5] cho 유저로 1.txt를 연 결과

vi로 열어보니, 1.txt는 읽기 전용이라고 되어 있습니다. 쓰는 것은 안 된다는 의미입니다.


리눅스에서 유저가 속한 그룹을 알아낼 수 있는 방법은 없을까요?

[그림 6] 리눅스 groups 명령어

groups 명령어를 이용하면 됩니다. 그러면, 유저가 속한 그룹을 모두 출력하게 됩니다. groups x는 유저 x가 속한 그룹을 모두 출력합니다.

[그림 7] 유저 cho가 속한 그룹

groups cho를 입력해 보겠습니다. 이건 유저 cho가 속한 그룹을 모두 출력하는 명령어입니다. cho : cho adm cdrom dip plugdev users lpadmin이 나옵니다. :로 구분되어 있는데요. :의 왼쪽 부분은 유저, 오른쪽 부분은 속한 그룹입니다. 위 결과를 통해, 유저 cho는 adm 그룹에 속한다는 것을 알 수 있습니다.

Leave a Comment

16 + 3 =