일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- threadtime
- 게임 NFT
- 캠핑
- 보안강의
- 주식선택기준
- ARM Trust Zone
- ARM Trustzone 설명
- 개발자면접
- adb logcat
- ARM trustzone 내용
- 프로그래밍
- arm trustzone 강의
- 코딩
- 반고
- 면접
- nft
- arm trust zone 강의
- 아웃웰
- 프로그래머면접
- 텐트
- ARM Trustzone
- android log
- 프로그래머
- 에어텐트
- 중고텐트
- setns
- 개발자
- 캠핑장
- 초캠중고
- 언어치료
- Today
- Total
콩딱일상
[linux api] setns 함수 본문
사실 나는 system api에 대해서 많이 알고있는 편이 아니고 필요할때 모르는게 나올때마다 하나씩 찾아보는 스타일이다 최근 하는분야가 보안 분야다 보니까 생소한 api들에 대해서 이래저래 알게되는것 같다.
리눅스의 namespace는 별도의 공간을 제공해 줌으로서 각각의 독립적인 실행공간을 제공해 준다고 이해하면 편리할듯하다. 많이들 사용하는 도커가 이러한 방식을 사용한다고 알고 있다. (예전에 falinux 강의도 갔었는데...)
namespace관련하여 설정을 할수있는 api가 setns함수이다.
보통 /proc/pid/ns/ 폴더 하위에 ns파일들이 존재하며 file descriptor를 바탕으로 실행하게 된다.
함수의 원형은 다음과 같다.
int setns(int fd, int nstype);
man page의 description을 보면 다음과 같이 적혀 있다.
The setns() system call allows the calling thread to move into different namespaces. The fd argument is one of the following: • a file descriptor referring to one of the magic links in a /proc/[pid]/ns/ directory (or a bind mount to
such a link); • a PID file descriptor (see pidfd_open(2)). The nstype argument is interpreted differently in each case.
결국 다른 namespace로 변경을 한다는 것이다.
이것이 rooting tool들에서는 mount정보라거나 다른 정보들을 변경하기 위해서 setns로 namespace를 분리후 unmount등을 활용하는 방식으로 사용된다.
내가 테스트 해보니 root권한으로는 사용 가능하지만 일반 application권한으로는 사용이 불가능하다.
'소프트웨어 > 프로그래밍' 카테고리의 다른 글
Android logcat을 이용한 정보의 출력 (0) | 2021.11.09 |
---|---|
컴퓨터 프로그래밍을 공부하는 기초 (1 : 기초지식) (0) | 2021.10.06 |
코딩학원에 대한 현직 개발자의 생각 (3) | 2021.09.29 |
코딩을 어떻게 배울지 답답한 당신에게. (0) | 2021.09.28 |