Setcap/getcap

From 탱이의 잡동사니
Jump to: navigation, search

Overview

setcap/getcap 내용 정리.

일반 프로그램에서 1023 이하의 포트(well-known) 번호를 사용할 때 이용한다.

일반적으로 well-known 포트를 사용하기 위해서는 root 권한으로 프로그램을 실행해야 하지만 setcap 을 이용하여 권한을 할당하면 non-root 유저도 well-known 포트를 사용할 수 있게 해준다.

capabilities

$ man capabilities

Linux capabilities are special attributes in the Linux kernel that grant processes and binary executable specific privileges that are normally reserved for processes whose effective user ID is 0(The only root user has UID 0).

setcap

Set file capabilities.

$ sudo getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

getcap

Examine file capabilities.

$ getcap -v /bin/ping
/bin/ping = cap_net_raw+ep