쉘 환경 변수의 종류
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 |