본문으로 바로가기

Day-7 환경변수

category Linux 2016. 12. 24. 09:49

쉘 환경 변수의 종류

1. 지역 환경 변수 (쉘 변수)
2. 전역 환경 변수 (환경변수)

 

(1)지역 환경 변수
- 현재 사용하는 쉘에서만 적용되는 변수의

- 변수 선언 및 초기화
     변수명=값      (*주의사항 : 변수명 = 값 공백X)

- 변수 해제
    unset  변수명

- 지역 환경 변수
    set

 

 

 

 

(2)전역 환경 변수
- 모든 쉘에 적용되는 변수

- 변수 선언 및 초기화
        export 변수명=값 (*주의사항 : 변수명 = 값 공백X)

- 변수 해제
      unset 변수명
  
- 변수 확인
       env
 

  

 

전역변수는 지역 변수의 상위 개념

 

환경 변수의 종류
$PATH                 실행 파일을 찾을 경로
$HOME                현재 사용자의 홈디렉토리
$LANG                 쉘에서 사용하는 언어
$SHELL                 로그인 시 사용하는 쉘
$PS1                     프롬프트
$HISTSIZE             히스토리 파일에 저장되는 개수
$HISTFILE             히스토리 파일 경로
$HOSTNAME        호스트의 이름


 
$PATH 환경 변수 테스트
   - $PATH에 경로를 등록하면 해당 경로의 실행파일 혹은 명령어는 경로없이 사용 할 수 있다.
   - $PATH에 경로가 없어도 경로를 지정하면 사용 할 수 있다.

 

Login시 실행되는 파일의 순서
/etc/profile -> /etc/profile.d/*
~/.bash_profile
~/.bashrc
/etc/bashrc

 

/etc/profile - 환경 변수와 bash가 수행될 때 실행되는 프로그램을 제어하는 전역적인 시스템 설정과 관련된 파일
/etc/profile.d/ - /etc/profile 파일에 의해서 /etc/profile.d/ 내에 스크립트가 실행이되어 여러가지 변수들이 동작하여 쉘 환경을 제공한다.    
/etc/bashrc - 사용자가 로그인하였을때 사용자 계저의 홈디렉토리에 있는 .bashrc에 의해서 실행되는 파일, 사용자들에게 적용할 alias및 쉘 환경 변수 값을 설정한다.
~/.bash_profile - 환경변수와 bash가 수행될 때 실행되는 프로그램을 제어하는 지역적인 시스템 설정과 관련된 파일이다.
~/.bashrc - /.bash_profile에 의해서 실행되며 .bashrc 파일은 다시 /etc/bashrc를 실행
      

/etc/passwd - 사용자 기본 정보 파일 (계정명, UID, GID...)
/etc/shadow - 사용자 패스워드가 암호화되어 담기는 파일 + 패스워드 정책
/etc/group    - 그룹의 기본 정보 파일
/etc/gshadow - 그룹의 패스워드가 암호화 되어 담기는 파일
/etc/default/useradd - 사용자 계정 생성 시 필요한 기본정보를 가지고 있는 파일
/etc/login/defs - 시스템 사용자의 전체를 제한하기 위해 사용하는 파일
/etc/skel - 사용자 계정 생성 시 홈디렉토리에 기본적으로 생성되는 파일을 담고 있는 디렉토리

사용자 계정 생성 과정
(1)useradd  명령어 실행
(2)/etc/defult/useradd 와 /etc/login.defs 파일의 설정 참조
(3) /etc/passwd와 /etc/group 파일에 계정 추가
(4)사용자 계정의 Home Directory를 생성
(5)/etc/sketl에 잇는 파일들을 사용자 Home Directory로 복사
(6) /var/mail 계정 생성     

/etc/passwd

 

[계정명]:[암호]:[UID]:[GID]:[COMMNET]:[$HOME]:[$SHELL]

 

useradd [계정명]

useradd -u [UID번호]
useradd -g [GID번호]
- /etc/passwd 파일의 3, 4번째 필드에 해당하며 사용자의 ID(UID)
   그룹의 ID(GID)값을 의미.
- UID는 보통 500으로 시작해서 계정을 추가할때마다 자동으로 증가 한다.
-  -u 옵션은 특별한 UID값을 주고 싶을때 사용.

useradd -c [COMMENT]
- /etc/passwd 5번째 필드에 해당하며, 실제로는 큰의미가 없어 비어있는
   경우가 대부분이며, 추가할 경우에는 useradd -c "내용" [계졍명]
   으로 추가 할 수 있다.

 useradd -s [쉘종류]
 - /etc/passwd의 7번째 필드에 해당하며 사용자 로그인 시 사용할 쉘의 종류를 지정
 - 로그인 하지 못하는 쉘 : /bin/flase, /sbin/nologin

useradd -M (/etc/skel 경로 지정)
- 사용자 계정을 생성하면 기본적으로 홈디렉토리가 생기며, /etc/skel 디렉토리에 잇는
   파일들이 해당 계정의 홈디렉토리로 복사된다.

useradd -d [홈디렉토리]
- /etc/passwd 6번째 필드에 해당하며, 기본 홈경로가 아닌 다른 경로로
   지정하여 사용할때 사용하는 옵션 (반드시 상위 디렉토리가 존재해야한다.)

쉘은 UID를 보고 사용자를 판단한다.
- 계정 이동 su - [계졍명]

 계정 지우기
 userdel [계정명]
 userdel -r  옵션으로 사용자 홈디렉토리까지 삭제되도록 한다.
 
 passwd [계정명] - 사용자 계정 암호 설정
 
1. 암호를 숫자로 지정해서는 안된다.
2. 사전적인 쉬운 단어로 지정해서는 안된다.
3. 6자 이상을 만들어야 한다. (/etc/login.defs)
4. 새로운 암호는 이전 암호와 동일해서는 안된다.
5. 여러 문자와 숫자 조합으로 최소 8글자 이상 만들어야 한다.

shadow password system

pwunconv -> 암호화 필드 disable
pwconv     -> 암호화 필드 enable


/etc/shadow - 패스워드가 암호화 되어있으며, 패스워드에 관한 정책이 있다.(root만 읽기 가능)

 

[사용자명]:[패스워드]:[최종암호변경일]:[암호변경최소일수]:[암호변경최대일수]:[암호변경경고일수]:[계정사용불가날짜]:[계정만료일]:[예약 혹은 사용하지 않음]

1. 사용자명
  - 사용자 계정을 나타낸다.
  - /etc/passwd와 /etc/group 파일과 함께 동일 한 사용자의 이름이 존재해야한다

2. 패스워드
 - 암호된 사용자의 패스워드가 저장된다.
 - 처음 두 글자 $6 : SHA51, $1 : MD5, $2 : blowfish, $5: SHA256
 - SALT 운영체제가 랜덤하게 생성한 값과 사용자 암호를 CRIPT라는 함수를 이용하여
     암호화. 같은 패스워드라도 매번 다른 결과를 출력.
3. 최종 암호 변경일
-1970년 1월 1일 부터 계산하여 마지막으로 패스워드를 바꾼 날짜까지의 값
- 단위는 일(DAY)이며 ex) 17151 -> 1970년 1월 1일 부터 17151일  경과

4. 암호 변경 최소 일수
- 패스워드를 변경하고자 하는 최소 일 수가 기록
- 최종 암호 변경일을 기준으로 최소 일 수가 지난 후에만 패스워드 변경이 가능.

5. 암호 변경 최대 일수
- 패스워드를 바꾸지 않고 최대한 사용할 수 잇는 기간이다.
- 최종 암호 변경일을 기준으로 현재 사용하고 있는 패스워드를 변경하지 않고
   사용하고 있는 일수이다

6. 암호 변경 경고 일수
- 패스워드 최대 사용 기간에 가까워질 경우 사용 기한 몇일 전에 경고를
   보낼 것인가 지정.

7. 게정 사용 불가 날짜
- 계정에 대한 사용 제한을 설정하고 몇일 후에 완전히 사용을 정지할지 설정한다.
- 설정된 날짜까지 로그인 하지 않을 시 사용자 계정은 잠기게 된다.
    
      
   

'Linux' 카테고리의 다른 글

Day-9 사용자 계정관리 2  (0) 2016.12.31
Day - 8 사용자 계정관리 1  (0) 2016.12.26
Day-6 Redirection  (0) 2016.12.22
Day-5 grep 과 vi  (0) 2016.12.21
Day-4 기본 명령어2  (0) 2016.12.21