안녕하세요. 슈다 입니다.
평소 잘 사용하던 명령어를 입력했는데, "cannot open /dev/kmem: Permission denied" 메세지가 발생하며
명령어 실행이 되지 않을 때 해결방법을 알아보겠습니다.
예를들어 netstat 명령을 사용한다고 가정합니다.
# netstat -in
cannot open /dev/kmem: Permission denied
netstat 명령어가 아닌 처음보는 /dev/kmem 경로의 파일 권한이 없다고 나오는데요,
이 파일의 권한을 살펴보면 아래와 같이 출력됩니다.
cr--r----- 1 root system 2, 1 월 일 년 /dev/kmem
현재 로그인 한 계정은 root 이고, /dev/kmem 파일의 소유자도 root 입니다.
그렇지만 원하는 명령어가 실행이 되지 않고 있는 상황입니다.
이 현상은 대부분 root권한 소유자가 잘못된 명령어를 수행하는 등의 행위로 인해 (주로 chown 명령)
/ 경로 아래 불특정 다수 파일의 owner (소유자) 가 root가 아닌 일반계정으로 변경되었을 경우 발생합니다.
아래 명령 등으로 owner 변경이 의심스러운 경로를 확인합니다.
# ls -al / |grep -v root
# ls -al /usr/sbin |grep -v root
# ls -al /usr/bin |grep -v root
위 명령을 통해 파일 소유 변경된 것을 확인했다면, find 명령을 통해 전체 경로에서 변경된 파일을 검색합니다.
예를들어 test 계정으로 파일권한이 변경되었다면 아래와 같이 입력합니다.
# find / -user test -ls
test 계정이 owner인 파일이 출력됩니다.
아래 명령으로 find로 검색된 파일 owner를 일괄 변경 가능합니다.
# find / -user test -ls |awk '{print "chown root "$11}'
> 소유자 변경 명령어 포함한 파일 경로 출력 (onwership 변경 안됨)
# find / -user test -ls |awk '{print "chown root "$11}' |sh
> 출력된 명령을 실행 (실제 onwer쉽 변경 됨)
다만 /home/test/ 등 기존 소유 파일의 권한까지 모두 변경되니
출력된 결과를 편집하여 일부 항목들만 ownership 변경하는 것을 권고합니다.
파일 오너쉽이 변경되었다면 다시한번 명령어를 사용해 결과를 확인합니다.
정상적으로 출력되는 것을 확인할 수 있습니다.
# netstat -in
위 ownership 변경 문제는 일부 명령어 실행뿐만이 아닌 smit 을 통한 명령어 실행도 불가능 할 수 있습니다.
smit 으로 실행한 경우 failed 결과값이 명령어 마다 상이할 수 있으므로
평소 잘 되던 smit 명령이 실패할 경우 위 처럼 파일 권한 변경 문제를 의심해 볼 수 있습니다.
'IT > Unix & Linux' 카테고리의 다른 글
이더채널 구성 확인 및 Active channel 전환 (0) | 2020.02.19 |
---|---|
rpm 설치시 Library 오류 해결 (libx11.a 외) - updtvpkg (0) | 2020.02.11 |
[HMC] 명령어로 Lpar, Machine, HMC 종료/기동 방법 (0) | 2020.01.28 |
[AIX] 서버 접속시 비밀번호 맞게 입력했는데 접속거부 당할때 (0) | 2020.01.13 |
[AIX] nim 명령 실패 - this command may only be executed on a NIM master 해결방법 (0) | 2020.01.11 |