개발/Linux 썸네일형 리스트형 user is not in the sudoers file. This incident will be reported. ~ is not in the sudoers file. This incident will be reported. 로그인한 계정에 sudo 권한이 없을때 나는 메시지 이다. 그렇다면! 권한을 줘보자~! 1. su 로 root계정으로 이동 2. vi /etc/sudoers 위에 파일에 계정이 들어가 있어야 한다. 3. 계정 ALL=(ALL) ALL 추가 파일을 아래로 내려가다 보면 root ALL=(ALL) ALL 이 있는데 root 계정에 수펴 권한을 준다는 뜻! 아래로 내려가 보면 %wheel ALL=(ALL) ALL 이 있는데 이 아래에 로그인한계정명 ALL=(ALL) ALL 을 추가하고 저장해준다. 저장 후 exit 입력 하여 root 계정에서 나온 후 확인해보면 성공! 더보기 bash_profile bashrc 차이 리눅스에서 alias를 수정하거나 PATH를 변경할 때 접하게 되는 대표적인 4가지 파일들 1. /etc/profile 2. /etc/bashsrc 3. ~/.bash_profile 4. ~/.bash_rc 무엇일까 ?_? 1. /etc/profile vs ~/.bash_profile 전역적인 파일로 모든 사용자가 로그인시 실행되며, bash_profile의 경우 지역적파일로 해당하는 사용자가 로그인 시만 실행된다. 또한 profile의 경우 어떠한 shell이든 상관없지만, bash_profile의 경우 bash shell 의 경우만 해당된다. 2. /etc/bashsrc vs ~/.bashrc profile과 달리 Login 과정이 없으므로 shell을 실행시키는 사용자로 구분한다. /etc/bash.. 더보기 vi/vim의 유용한 기능 - html 문서로 변환하기 파일은 연 상태에서:TOhtml을 누르고 엔터를 누르면 짜잔!!!이상태에서 :wq를 누르면 원본파일을 연 vi가 나타나며 파일이 생성된다!!! 원본파일은 건드리지 않으므로 걱정 노노노노노노 더보기 리눅스 커널 모듈 - /* hello.c */#include (3)#include #include static int __init(1) Hello_init(void) {pr_alert("Good morrow to this fair assembly.\n");return 0 ;} static void __exit(2) hello_exit(void){pr_alert("Alas, poor world, what treasure hast thou lost!\n");} module_init(hello_init);module_exit(hello_exit);MODULE_LICENSE("GPL");MODULE_DESCRIPTIION("Greeting module");MODULE_AUTHOR("William Shakespeare"); (4) (.. 더보기 커널 관리 ■ dmesg 커널 로그 확인 ■ modinfo modinfo .ko 모듈의 정보를 볼 수 았다. * 임베디드 보즈에서는 modinfo 파일이 제공되지 않을 수 있다! 그럴땐 module-init-tools를 컴파일 하자. ■ insmod .ko 옵션 : -k : autoclean을 사용하여 적재 커널 디렉토릴르 찾아 해당 모듈을 추가한다. * 모듈 로드에 실패했다면 insmod를 이용해 정보를 확인하는 것 에는 충분하지 않을 수 있다! 그럴땐 kernel log를 확인해 보자.■ sudo modprobe 옵션 : -k : autoclean을 사용하여 추가 -r : 모듈 삭제 모듈을 추가하는데 가장 유용하게 사용되는 명령이다. 이 명령은 insmod와 달리 아무 위치에서나 모듈을 추가할 수 있고, 의존성.. 더보기 커널 모듈 커널 모듈 - 모듈은 대부팅없이 드라이버 개발을 쉽게 한다. - 커널이미지 사이즈를 최소화 하는데 유용하다.- booting 시간을 줄이는데 유용하다. (디바이스와 커널 초기화는 나중에 해도 되기 때문이다)- root 계정만 load unload를 할 수 있다. - A와 B의 모듈이 있을때 A가 동작되어야 B가 동작되는 모듈이 있다 이러한 모듈의 관계를 B가 A에 의존한다고 표현! 예를 들어!! usb-storage모듈은 scsi_mod, libusual, usbcore모듈이 먼저 동작 해야 동작 할 수 있다. - 새로운 커널이 load되면 이와 관련된 정보는 kernel log에 저장된다. 더보기 파이프 - 프로세스 파이프, popen/pclose 파이프란 무엇인가?- 파이프는 두 프로세스 사이의 자료 흐름 통로를 제공하는 수단이다. 일반적으로 파이프는 한 프로세스의 출력을 다른 프로세스의 입력에 연결하는 용도로 쓰인다. - 셸에서는 | 기호를 이용하여 명령을 넣는 것으로 파이프를 사용한다. 프로세스 파이프#include FILE *popen(const char *command, const char *open_mode);- popen_mode가 "r"인 경우 호출한 프로그램은 fread 같은 통상적인 stdio 라이브러리 함수들을 이용해서 popen이 반환한 파일 스트림 FILE*을 읽음으로써 호출된 프로그램의 표준 출력을 읽을 수 있다.- popen_mode가 "w"인 경우 호출한 프로그램은 fwrite로 popen이 반환한 파일 스트림에 자료를.. 더보기 프로세스와 신호 - 안정적인 신호 인터페이스 안정적인 신호 인터페이스#include int sigaction(int sig, const struct sigaction *act, struct sigaction *oact);이 함수는 sigaction 구조체를 이용한다 void (*) (int) sa_handler -> 신호를 처리 함수를 가리키거나 또는 SIG_DFL(기본행동복원)이나 SIG_IGN(신호무시) sigset_t sa_mask -> sa_handler에서 차단할 신호들int sa_flags -> 신호 행동 수정자들 signal 과 같은 방식으로 일어나게 하려면 SA_RESETHAND를 추가 예제 소스 실행 결과 더보기 이전 1 2 3 4 다음