[리눅스 일반] 일반 명령어(useradd, passwd 등등)의 실행이 안될때

먼저, root권한으로 useradd나 adduser를 이용하여 계정을 생성하고 passwd명령어로 새계정의 패스워드를 주려고 할때에

일단 이 명령어가 실행이 되고 있을때에는 /etc/passwd파일과 /etc/shadow파일이 변경이 되면 안되기 때문에
/etc/passwd.lock 파일과 /etc/shadow.lock파일이 생성이 된다.

이 파일이 존재하는 한 root라 하더라도 /etc/passwd파일과 /etc/shadow파일의 수정및 핸들링을 불가능하게 됨.

그래서, useradd와 passwd명령어를 사용하는 도중에 , /etc/passwd.lock파일과 /etc/shadow파일이 생성이 된채로 명령어가 끝나지 않았는데, 갑자기 접속연결이 끊어진 것임.

물론, useradd와 passwd명령어가 정상적으로 종료가 되었다면 당연히 lock파일은 자동삭제가 됨.

하지만, 정상적인 종료가 아닌 실행도중에 끝이났기때문에 lock파일이 계속존재하게 되고, 이후부터는 useradd명령어와 passwd라는 명령어가 전혀 안되는 것임.

이경우 조치는 간단하다.

/etc/passwd.lock 파일과 /etc/shadow.lock파일을 삭제하기만 하면 된다.

시스템이 부팅이되면, lock파일은 자동으로 삭제가 된다. 아니 그것 보다는 시스템이 종료할때에 임시파일(lock파일도 일종의 임시파일임)들이 자동으로 삭제가 된다. 이로 인하여 시스템을 재부팅하는것도 하나의 방법일 수도 있음.

하지만, lock파일을 삭제만 하면 시스템을 재부팅할 필요는 없다

[RPM] 설치된 RPM 패키지 변경가능성 여부 검증하기

1. 설치된 RPM 패키지 변경가능성 여부 검증하기

– 사용형식 : rpm -V [옵션] 패키지명

– RPM 패키지 관리에 있어서 무엇보다 중요한 것은 설치한 패키지들의 무셜성을 확인하는 것임. 특정 패키지를 설치한 후에 이 패키지에 의해 설치된 파일들이 변조된 흔적을 조사하기 위하여 주기적으로 특정 패키지의 특정 패키지의 무결성을 확인해야할 필요성이 있음.

– 검증시 확인 되는 8가지 문자열의 의미

표시문자       |         의           미           |            설                명
—————————————————————————————————————————————–
5               |      MD5 체크섬           | 현재파일의 내용이 설치당시의 내용과 같은가를 확인함.
S              |       파일크기                 | 파일의 크기를 설치당시의 크기와 비교 검사함
L               |       심볼릭링크           | 심볼릭 링크를 검사함
T               |     파일최종변경시간  | 최근 갱신날짜를 설치당시의 날짜와 비교 검사함
D              |             장치                 | 장치 정보를 검사함
U              |          사용자                | 파일의 소유자를 설치당시의 소유자 정보와 비교 검사함
G             |           그룹                    | 파일의 소유그룹을 설치당시의 소유그룹과 비교검사함
M            | 파일허가권 또는 파일형식 모드 | 파일의 퍼미션( permission ) 을 설치당시의 퍼미션과
비교 검사함.

[RPM] RPM 패키지 설치정보 확인하기

1. 패키지의 설치정보를 확인하기 위한 사용형식

– 사용형식 : rpm -q[ 옵션 ] 패키지명

2. 현재 시스템에 설치되어 있는 모든 패키지를 출력하기

– -qa 옵션을 사용함.

– rpm -qa

– 해당 결과를 파일에 저장하여 확인하는 방법
rpm -qa > rpmlist
만약 기존에 존재하는 내용에 추가하여 결과를 저장하고자 한다면
rpm -qa >> rpmlist
특정 파일에 저장하지 않고 화면에서 바로 한화면씩 확인하고자 한다면
rpm -qa | more

3. 특정 파일이나 이름으로 패키지의 설치여부 확인하기

– 사용형식 : rpm -qa | grep 확인하고자하는패키지이름문자열

4. 특정 파일명이 어떤 패키지에 속해있는지 확인하기

– 사용형식 : rpm -qf 파일명

– 어떤 파일을 수정하거나, 삭제,  또는 변경하려고 할 때, 혹은 특정 파일을 실수로 삭제하였는데 이를 RPM 재설치 방법으로 복구하여야 할 경우에 매우 유용하게 사용됨.

– rpm 명령어 사용시 사용되는 파일명을 절대경로를 지정하여 주는 것이 좋음.

– 확인하고자하는 모든 파일이 가능한 것은 아니며 RPM 으로 설치된 파일일 경우에만 확인이 가능하다는 점에 유의할 것.

5. 특정 패키지에 의해 설치된 파일들 확인하기

– 사용형식 : rpm -ql 패키지명

– 특정 패키지를 설치할 때에 생성되는 파일들의 리스트를 확인하고자 한다면 위의 방법으로 확인이 가능함.

6. 특정 패키지의 상세한 정보 확인하기

– 사용형식 : rpm -qi 패키지명

– 특정 패키지의 이름과 버전, 패키지 개발사, 그리고 배포횟수( release ) , 컴파일 날짜, 설치날짜, 패키지용량( size ) , 라이센스정보, 소스 RPM 명, 용도( Summary ) , 간단한 설명( Description ) , 등에 대한 정보를 확인하는 명령어임.

7. 특정 패키지에 의해 설치된 파일들의 정상여부 점검하기

– 사용형식 : rpm -qs 패키지명

– 특정 패키지를 설치한 후에 이 패키지에 의해서 설치된 모든 파일들이 현재 시스템에서 이상없이 정상적으로 사용이 되고 있는가를 확인하려면 rpm 명령어에 -qs 옵션을 사용하면 됨.

– 특정 패키지의 설치로 생성된 모든 파일들의 정상여부를 확인한다는 의미는 특정 서비스를 위한 패키지의 정상여부 또는 시스템의 정상여부를 확인하는 한 부분이 되기도 함.

8. 특정 패키지의 설정파일들 확인하기

– 사용형식 : rpm -qc 패키지명

– 특정 패키지의 설치로 생성되는 많은 파일들 가운데 설정파일들만을 확인하는 방법임.

9. 설치된 패키지의 문서파일위치 확인하기

– 사용형식 : rpm -qd 패키지명

– 특정 패키지에 의해 설치되는 모든 파일들 가운데에 메뉴얼파일, 즉 man 페이지 관련 파일들만을 확인하는 방법임.

10. 패키지 의존성 관계 확인하기

– rpm -qRp 패키지명

– rpm 명령어에 -qRp 옵션을 사용하여 특정 패키지의 의존성 관계를 확인할 때에 패키지명은 전체 패키지파일명으로 지정을 해야 함.

[RPM] 설치된 RPM패키지 삭제( 제거 ) 하기

1. 이미 설치된 RPM 패키지를 삭제하려면 간단히 -e 옵션을 사용하면 됨.

2. RPM 패키지 삭제의 가장 일반적인 방법

– 패키지를 삭제하는 가장 간단한 방법은 rpm 명령어에 -e 옵션을 사용하면 됨.

– rpm -e qouta-3.06-9

3. RPM 패키지 삭제시 의존성문제 해경방법 #1 : 의존하는 패키지 선 삭제후 삭제하기

– 패키지 삭제시 가장 흔하게 발생하는 에러가 ” 패키지 의존성 에러 ” 로 인한 패키지 삭제 실패임. 특정 패키지를 삭제할 때에 의존성문제로 인하여 패키지가 삭제되지 않을 경우에는 두가즤 해결방법이 있음.

– 첫번째는 의존성문제를 해결한 후에 삭제하는 방법임. 의존성관계에 있는 패키지를 모두 삭제해 준 후에 삭제하고자하는 원래의 패키지를 삭제하는 것.

– 두번째는 의존성문제를 무시하고 지정된 패키지만 삭제하는 방법임. 이방법은 –nodeps 옵션으로 간단히 해결할 수 있음.

– 확실하게 불필요하다는 것을 확인하지 않은 상태에서 의존성 관계에 있는 모든 패키지를 삭제한다는 것은 자치 시스템 장애를 발생할 수 있음.

4. RPM 패키지 삭제시 의존성문제 해결방법 #2 : 의존성 무시 삭제하기

– 의존성 관계에 있는 모든 패키지들을 삭제한 후에 원래 삭제하고자 했던 패키지를 마지막에 삭제하는 방법이 있지만 이 방법으로 삭제를 하게되면 의존성관계를 파알하는 시간도 많이 소요될 뿐아니라 자칫 시스템에 꼭 필요한 패키지까지 삭제를 하게되는 잘못을 범하게 될 수도 있음.

– 의존성 관계를 무시하고 삭제하고자하는 원래 패키지 하나만을 삭제하는 것이 보다 바람직할 것임.

– 의존성 관계를 무시하고 살제하고자 한다면 –nodeps 옵션을 사용하면 됨.

[RPM] rpm 명령어로 패키지 업그레이드 및 설치하기 실무

1. RPM 패키지를 설치할 때에 주로 -ivh 옵션을 사용하여 설치 함. 하지만 실제 실무에서는 -ivh 옵션 보다는 -Uvh 옵션을 사용하여 보다 안전하게 설치하는 방법을 사용함.

– -U 옵션을 사용하여 설치하면 기존에 설치되어 있던 RPM 패키지의 파일들을 삭제하는 것이 아니라 ” 기존파일명.rpmsave ” 라는 파일명으로 보관한 후에 새롭게 설치하게 됨.

– -i 옵션이 패키지 설치시에 사용하는 옵션이라면 -U 옵션은 패키지 업그레이드에 사용하는 옵션임. -U 옵션을 독립적으로 사용하여도 패키지 업그레이드가 가능하지만 -Uvh 옵션을 함께 사용하여 보다 자세한 업그레이드 내역을 보여주면서 설치하도록 하는 것이 보다 일반적인 패키지 업그레이드 방식임.

– -Uvh 옵션을 사용하여 패키지를 업그레이드 할 때에 설치하고자하는 패키지가 설치되어 있지않을 경우에는 설치를 하게 되고, 만약 하위버전이 설치되어 있을 경우에는 기존의 설치된 패키지 파일들을 ” 기존파일명.rpmsave ” 라는 파일명으로 보관한 후에 업그레이드 해주기 때문임.

– -Uvh 옵션은 설치와 업그레이드를 자동으로 알아서 해주며 기존파일을 보관하므로 보다 안전한 설치방법이 되기 때문.

– -Uvh 옵션을 사용하여 업그레이드를 할 때에 이미 동일한 버전의 패키지가 설치되어 있다면 ” Package 패키지명 is already installed ” 라는 메시지를 출력하면서 중복설치의 위험성을 사전에 차단할 수 있음.

– -Uvh 옵션으로 패키지를 업그레이드 할 때에 이미 상위버전이 설치되어 있다면 ” package 패키지명 ( which is newer ) is already installed ” 라는 메시지를 출력하면서 시스템에 현재 패키지보다 상위버전이 이미 설치되어 있음을 알려줌.

– -Uvh 옵션을 사용하면 패키지 의존성 문제가 발생하였을 경우에 ” failed dependencies ” 라는 메시지를 출력하면서 의존성 관계를 알려줌.

2. RPM 패키지의 간단한 업그레이드 설치방법

– rpm -U qouta-3.06-9.i386.rpm

3. RPM 패키지의 가장 일반적인 업그레이드 설치방법

– rpm -Uvh qouta-3.06-9.i386.rpm

– 대부분의 실무관리자들은 -U 옵션보다는 -Uvh 옵션을 선호함.

– -v 옵션 : 패키지 업그레이드 설치시에 자세한 설치상황을 알려 줌.

– -h 옵션 : 설치과정을 해쉬문자( # ) 로 표시해 줌.

4. 이미 설치된 중복패키지 문제 해결방법

– -Uvh 옵션으로 패키지를 업그레이드 할 경우에 업그레이드 하고자 하는 패키지가 이미 시스템에 설치되어 있을 경우에는 ” package 패키지명 is aleady installed ” 라는 메시지와 함께 중복설치되지 않으므로 업그레이드 되지 않음.

– 이런 경우 –replacepkgs 라는 옵션을 사용하면 설치하고자하는 패키지가 이미 시스템에 있는 경우라도 이를 무시하고 업그레이드 설치를 할 수 있음.

5. 다른 패키지의 파일과 충돌문제 해결 방법

– 패키지 업그레이드나 설치에서 문제가 되는 경우는 설치하고자하는 패키지의 파일이 이미 설치되어 있는 다름 패키지의 파일과 충돌( conflict ) 이 발생하는 경우도 있음.

– 패키지 충돌( conflict ) 이 발생하는 경우에 이를 무시하더라도 설치를 해야한다면 –replacefiles 라는 옵션을 사용하면 됨.

6. 중복과 충돌문제 발생시 무시하고 강제 설치하기

– –force 옵션을 함께 사용

– 업그레이드 설치를 하고자하는 패키지가 현재 시스템에 이미 설치되어 있어 중복이 되거나 또는 이미 설치되어 있는 다른 패키지의 일부 파일들과 충돌( conflict ) 이 발생하는 경우네는 업그레이드가 되지 않음. 앞의 두가지 옵션 –replacepkgs 옵션과 –replacefiles 옵션 그리고 –oldpackage 옵션을 동시에 사용하는 효과를 볼 수 있는 옵션이 –force 옵션임.

7. 의존성문제 무시하고 설치하기

– –nodeps 옵션을 사용.

– –nodeps 옵션을 사용하면 패키지 의존성을 완전히 무시하고 지정한 패키지를 업그레이드 설치를 하게 됨.