Unix 및 Linux OS에서 제공하는 Shell은 기본적으로 변수에 대한 Type을 정의하지 않는다. 이런 변수할당 유형을 약타입(Weakly Typed) 이라고 표현한다. 반면에 C언어나 Go Lang 등은 변수의 선언시 Type을 미리 정의해 줘야하는 강타입(Strong Typed) 언어이다. 무튼간에, Shell 과 같은 약타입 언어들은 변수의 타입을 미리정의 할 필요없이 사용자가 필요에 따라 유연하게 정의해서 사용할 수 있는 장점이 있는 반면, 변수에 대입 될 실 데이터에 대한 타입 문제로 인해 의도치 않은 Script 오류를 겪게되는 단점도 있다. 때문에 Shell Script 를 통해 Logic 을 구현할 때는 반드시 아래 예시와 같이, 사용중인 변수에 대입된 값이 Null 인지 Not N..
CentOS와 같은 Redhat 계열이든 Ubuntu와 같은 Debian 계열이든 누구나 자신이 다루이 편하고 선호하는 Linux 배포버전이 있다. 필자는 제일 처음 접했던 Linux OS가 2002년경 배포된 Redhat 7.x 버전 (현재 버전인 RHEL 7.X 아님)이다보니 아직까지 CentOS, Oracle Enterpirse Linux, Redhat Enterprise Linux등 Redhat 계열 Linux 배포버전이 다루기 편하고 익숙하 것이 사실이다. 아래 링크를 들어가면 300여종 이상의 Linux 배포판 및 그 계보를 볼 수 있다. 정말 어마무시하다..... ㄷㄷㄷ 세상에는 아직 내가 다뤄보지 못한 Linux 배포판이 너무나 많다................... 후~ https://u..
Linux 는 계정 별로 Password에 대한 만료 정책을 지정 할 수 있으며, 아래와 같이 chage 명령을 통해 Password 에 대한 정책을 지정하고 현황을 확인 할 수 있다. [root@centos5 ~]# [root@centos5 ~]# chage -l helperchoi Last password change : Feb 04, 2017 Password expires : Feb 05, 2017 Password inactive : never Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 1 Number of days of ..
Linux OS를 사용하다 보면 명령어 등의 사용법 확인을 위해 Man Page를 참고하게 된다. 아무래도 필자와 같이 콩글리시 수준의 영어 독해력을 갖는 사용자라면, 영문기반의 Man Page가 불편하기 마련이다. 만약 Linux OS를 설치시 System Locale을 한글로 선택하였거나 이후 추가로 한글로 변경하였다면, 한글 Man Page가 제공되는 Package에 한하여 한글 man page를 제공하게 된다. 그럼 한글 Man Page는 어디에 있을까? 아래와 같이 한글 man page 위치는 /usr/share/man/ko 디렉토리 이하에 설치되며, 다음과 같은 명령 수행을 통해 현재 시스템에 설치되어있는 한글 Man Page 수와 리스트를 확인 할 수 있다. [root@centos5 ~]# ..
Oracle DB, MySQL, PostgreSQL 등 DBMS를 설치, 운용하기 위해서는 해당 Aplication을 기동/정지/유지 보수하기 위한 전용계정을 필요로 하게 된다. 해당 OS 계정은 DBMS를 직접 제어할 수 있는 SQL Plus나 pSQL등의 권한이 있기 때문에 보안상 계정에 대한 접근을 제어할 필요가 있을 때가 있다. 만약 DBMS 운용계정등 특정 용도로 만들어진 OS 계정에 대한 SSH 원격 로그인 차단과 함께,특정 계정에서만 해당 계정을 Switching 할 수 있도록 설정이 필요하다면, 아래와 같이 PAM 인증 Module 설정을 통해 해당 요건을 설정 할 수 있다. 다만 해당 설정은 SSH 및 PAM Base로 동작 하기 때문에 서버에 SSH 이외에 telnet과 같은 원격제어 ..
Linux Server 를 운용하다보면 각종 보안패치나, Driver Update를 위한 Kernel Upgrade 등으로 인해 System Library 나 연관 패키지등이 교체 될 때가 있다. 이때 문제되는 것이 Dependuncy 즉 시스템 의존성이다. Linux OS에서 실행되는 여러 Process들은 OS에서 제공되는 System Library 나 각종 패키지에서 제공되는 Process등 간에 상호 의존성을 갖게된다. 때문에 관련 패키지의 교체로 인해 의도치 않은 Process 오류를 만날 수 있다. 물론 Yum Repository를 통해 제공되는 모든 RPM Package는 Update나 Install 시 자동으로 연관 의존성 패키지를 검색하여 함께 처리해 주기때문에 문제가 없지만, 특정 Ve..