소프트웨어 패키지 관리 (계속)



3. 파일 압축 관리


1) tar (Tape ARchive)

  • 파일과 디렉토리를 하나의 파일로 묶어주는 아카이브(archive)를 생성해주는 도구
  • 원래 테이프 장치에서 아카이브를 생성하기 위해 설계
  • 압축 기능이 없는 것은 아니지만, 단순히 파일들을 꾸러미 형태로 묶는 것이 주된 기능
  • 사용법

- 형식

$ tar Function + Options  아카이브명.tar  디렉토리/파일


- Function

  • c : 새로운 아카이브 생성
  • x : 아카이브 해제
  • u : 아카이브 비교하여 새로운 파일 추가
  • t : 아카이브에 있는 파일 확인


- Options

  • f : tar 아카이브 파일 지정
  • v : 아카이브 생성 및 해제시 정보 출력
  • z : tar.gz 형태로 압축 또는 해제 (확장자는 붙여줘야 함)
  • j : tar.bz2 형태로 압축 또는 해제 (확장자는 붙여줘야 함)


  • cf 옵션 (생성 및 파일 지정)




  • v 옵션 (아카이브 생성 과정 보임)




  • x 옵션 (해제)




  • r 옵션 (새로운 디렉토리와 파일 추가)




  • -C 옵션 (특정 경로에 아카이브 해제)




tar에서 가장 중요한 것, cvf와 xvf



  • z 옵션 (gzip 유틸리티로 압축)





2) gzip & gunzip

  • gzip 유틸리티는 파일을 압축하고 푸는 데 사용되는 GNU 압축 유틸리티
  • gzip에 의해서 압축되는 파일은 .gz 확장자


3) bzip2 & bunzip2

  • gzip보다 높은 압축률, gzip에 비해 압축 해제 속도는 느림.




4. RPM(Redhat Package Manager)을 이용한 패키지 관리


1) 명령

  • -i 패키지명 : 설치
  • -U 패키지명 : 업그레이드
  • -e 패키지명 : 제거
  • -q 패키지 목록 : 질의
  • -V 패키지 목록 : 검증
  • -y 패키지 목록 : 검증
  • -b 패키지명 : 패키지 생성



5. YUM(Yellowdog Updater Modified)을 이용한 패키지 관리


1) RPM의 패키지 의존성 문제 해결

- RPM 패키지 설치 시 자동으로 의존성 문제 처리

- RPM 패키지를 안전하게 설치, 제거, 업그레이드


yum install <패키지 명>


'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초  (0) 2018.05.29
리눅스 기초 (5/28 월)  (0) 2018.05.28
리눅스 기초 (5/25 금)  (0) 2018.05.25

5. 계정 사용자 정보 변경


1) usermod

-c 내용 : 사용자의 설명 필드 변경

-d 홈 디렉토리 : 사용자의 홈 디렉토리 변경

-e 만료일 : pw의 만료 일자 변경

-G 그룹 : 사용자의 그룹 변경

-s 기본 쉘 : 사용자의 로그인 쉘 변경

-u UID : 사용자의 UID 변경

-l 사용자명 : 사용자의 계정명 변경


[root@localhost ~]# usermod -s /bin/test ydvt5

[root@localhost ~]# 

[root@localhost ~]# cat /etc/passwd | grep ydvt5

ydvt5:x:1006:1008::/users/ydvt5:/bin/test



6. 사용자 계정 바꾸기


1) su (Substitude User)



7. 그룹 관리


1) 그룹 생성

groupadd [-g gid] [-r] [-f] 그룹명

-g : 그룹의 고유 ID

-r : 그룹의 ID를 500 이하의 값으로 자동 지정

-f : 강제로 그룹 추가


2) 자신이 소속된 그룹 확인

# groups


3) 그룹 삭제

# groupdel [그룹명]


4) 그룹 속성 변경

groupmod [-g gid] [-n 변경될 그룹명] 기존 그룹명

-g : 그룹의 고유 ID

-n : 변경될 그룹명




소프트웨어 패키지 관리



1. 개요

>> 리눅스 소프트웨어 형태

- tar라는 아카이브 도구에 의해서 묶여진 소스 코드 형태

- RPM 도구로 만들어진 RPM 바이너리 형태


>> tar

- 원하는 옵션을 부여하여 바이너리 파일을 만들어 설치 가능

- 바이너리 패키지가 배포되지 않은 최신 버전의 소프트웨어를 설치하거나 업데이트할 때 유용

- 모든 UNIX 계열 OS에서 사용 가능


>> RPM

- 레드햇 리눅스사에서 개발한 소프트웨어 패키지 관리 도구

- 누구나 쉽게 소프트웨어를 설치할 수 있는 장점

- 다른 패키지와 의존성 문제를 가지기 때문에 의존성 패키지가 설치되지 않은 경우 설치하는 불편함이 존재


>> YUM, APT

- RPM과 같은 의존성 문제 해결

- 미지의 RPM 패키지를 설치하고자 할 경우 RPM 도구보다 선호



2. 패키지 확장자 종류


확장자

패키지 도구

설명

 .tar.gz(.tgz)

 tar+gzip

 tar 아카이브 파일을 gzip으로 압축한 파일

 .tar.bz2

 tar+bzip2

 tar 아카이브 파일을 bzip2로 압축한 파일

 .rpm

 rpm

 rpm으로 만들어진 패키지

 .tar

 tar

 tar로 만들어진 아카이브 파일

 .deb

 dpkg

 데비안 패키지 도구에 의해 만들어진 파일

 .patch, .diff

 

 패치 파일


※ 윈도우 시스템처럼 자동으로 확장자가 붙는 것이 아니라, 사용자가 확장자명을 지정

'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초 (5/30 오전)  (0) 2018.05.30
리눅스 기초 (5/28 월)  (0) 2018.05.28
리눅스 기초 (5/25 금)  (0) 2018.05.25

시스템 명령어(계속)



* 파이프 (|) : 한 명령의 출력을 다른 명령의 입력으로 리디렉션

ex) ls -al | sort | more


* df (Disk File system) : 하드 디스크의 용량이 얼마나 남아있는지 확인

>> df [옵션]

-a : 디폴트로 생략된 0 블록 크기의 파일 시스템도 보여줌

-i : 파일 크기를 블록 대신 inode로 디스크 정보를 보여줌

-k : 파일 크기를 킬로바이트(kb)로 보여줌

-T : 파일 시스템의 종류와 함께 디스크 정보를 보여줌

-t : fstype 값을 가진 파일 시스템에 대한 디스크 정보

-h : 쉬운 용량 표시 단위로 표기 (예:1G, 25M 1K)


* du (Disk Usage) : 사용한 디스크 용량에 대한 정보 제공

>> du [옵션][디렉토리명]

-a : 해당 경로에 대한 사용한 디스크 용량 표시

-k : 용량 표시 단위를 킬로 바이트(kb)로 표시

-m : 용량 표시를 메가 바이트(MB)로 표시


* find원하는 파일 위치 찾기

-amin n : n분 전에 마지막으로 액세스된 파일

-atime n : n*24시간 전에 마지막으로 액세스된 파일

-cmin n : n분 전에 마지막으로 변경된 파일

-ctime n : n*24시간 전에 마지막으로 변경된 파일

-empty : 비어있는 파일이나 디렉토리

-name <pattern> : Pattern으로 주어진 파일

-newer 파일 : “파일”보다 최신의 파일


* grep (Global Regular Expression Print) : 지정된 파일에 대해서 일치하는 라인 출력

>> grep [파일명(들)]

ex) cat /etc/passwd | grep fedora




2. 시스템 상태 확인 명령



1) 프로세스(Process)의 개념


* 프로세스(Process) : 주 기억장치에서 운영체제에 의해 실행 중인 프로그램

* 프로세스 번호 : 시스템에서 자동적으로 프로세스 식별번호(PID : Process Identifier Number)를 할당

>> 0 ~ 30,000개



2) 프로세스 상태 확인 명령


* ps (Process Status) : 프로세스의 상태 확인

>> ps [옵션][인수]

-a : All, 사용자의 단말기에 관련된 모든 프로세스의 상태정보 표시

-j : “job” 형식으로 표시

-l : Long, 자세하게 모든 상태 정보를 표시

-u 사용자명 : User, 기술된 사용자의 상태 정보를 표시

-s : 시그널 포맷으로 표시

-m : 메모리 정보 표시

-x : 터미널 제어 없이 프로세스 현황 표시

※ ps 옵션은 -(하이푼) 잘 안 붙이고 사용.


* kill 프로세스 종료

>> kill [옵션] PID(들)

-1, -HUP : 프로세스를 재활성화

-9 : 프로세스 강제 kill

ex) ps ax | grep cupsd



3) 그 외 시스템 상태 확인 명령


* finger

- 시스템 사용자의 개인 정보를 나타내는 명령

- 상대방에게 메일을 보내기 위하여 메일을 수신할 사람의 login 명을 찾는 용도로 사용

- 여러 명이 사용하는 Multi-User Mode에서 다른 사용자에 대한 정보를 알려주며, who 명령보다는 정보들이 자세하게 나타남

ex) $ finger –s fedora


>> finger 옵션

-s : 간단한 형식으로 출력

-l : 자세한 형식으로 출력

-p : 설정된 계획을 제외하고 출력시킬 때 사용


>> finger의 필드와 의미

Login : login 할 때의 사용자 id

Name : 사용자의 이름

TTY : 터미널 이름

Idle : 아무 일도 하지 않는 시간

When : login한 시간

Where : 원격 시스템에서 login한 경우 원격 시스템의 호스트 이름


* tty : 단말기명 확인


* whereis : 명령어의 경로명 확인

>> whereis [명령어]


* time : 명령어의 실행 시간 측정

>> time [명령어]


* ping : 원격지 호스트의 동작 여부 확인

>> ping [원격지 호스트명]




사용자 계정 관리




1. 계정(account)의 개요

>> 건물명 Linux

>> 504호 주택 

- 계정 생성 (adduser)

- 주소 : /home/504

- 소유권 이전



2. 사용자 계정 생성


1) adduser

# adduser(or useradd) 계정명

ex)

# adduser ydvt

# cat /etc/passwd | grep ydvt  ->  /etc/passwd 파일에서 ydvt 키워드와 일치하는 줄 출력


2) adduser 옵션

-c 설명 : 패스워드 파일에 새로운 사용자 설명 추가

-d 디렉토리 : 새 계정에 대한 디렉토리 위치 지정

-e 유효기간 : 지정된 날짜에 사용자의 계정 삭제

-f 비활성일수 : 패스워드가 만기된 후 계정이 영구히 말소될 때까지의 시간

-u uid : 사용자의 ID 지정

-s shell : 사용자의 로그인 shell 지정

-n : 사용자 계정 추가 기본 모드를 지정하지 않을 때

-G [그룹, …] : 사용자를 기본 그룹 이외의 다른 그룹에 추가할 때


ex)

# adduser ydvt1 -c "Developer Course in Yedam"

실습)

[root@localhost ~]# adduser ydvt1 -c "Developer Course in Yedam"

[root@localhost ~]# cat /etc/passwd | grep ydvt1

ydvt1:x:1002:1002:Developer Course in Yedam:/home/ydvt1:/bin/bash

계정명|패스워드|PID|          설명          | 계정 위치 |  쉘(shell)


# mkdir /users

# adduser –d /users/ydvt2 ydvt2

# cat /etc/passwd | grep ydvt2

ydvt2:x:1003:1003::/users/ydvt2:/bin/bash

※ /users라는 디렉토리가 없는 상태에서 /users/ydvt2 디렉토리를 ydvt2 사용자의 홈 디렉토리로 지정하면 계정이 생성되지 않음

실습)

[root@localhost ~]# mkdir /users

[root@localhost ~]# adduser -d /users/ydvt2 ydvt2

[root@localhost ~]# cat /etc/passwd | grep ydvt2

ydvt2:x:1003:1003::/users/ydvt2:/bin/bash


# adduser ydvt3 –u 530 –d /users/ydvt3

실습)

[root@localhost ~]# adduser ydvt3 -u 530 -d /users/ydvt3

[root@localhost ~]# cat /etc/passwd | grep ydvt3

ydvt3:x:530:1004::/users/ydvt3:/bin/bash


# adduser ydvt4 –u 540 –d /users/ydvt4 –s /bin/false

실습)

[root@localhost ~]# adduser ydvt4 -u 540 -d /users/ydvt4 -s /bin/false

[root@localhost ~]# cat /etc/passwd | grep ydvt*

ydvt:x:1001:1001::/home/ydvt:/bin/bash

ydvt1:x:1002:1002:Developer Course in Yedam:/home/ydvt1:/bin/bash

ydvt2:x:1003:1003::/users/ydvt2:/bin/bash

ydvt3:x:530:1004::/users/ydvt3:/bin/bash

ydvt4:x:540:1005::/users/ydvt4:/bin/false


* 새로 생성된 계정 디렉토리에 있는 숨김 파일은 계정 추가시 /etc/skel 디렉토리 내에 있는 파일들이 사용자 홈 디렉토리로 복사됨.


3) adduser 명령 기본 설정값 변경

* 사용자 생성 명령어의 기본 설정값 확인

# useradd -D     (= adduser -D)

실습)

[root@localhost ~]# adduser -D -b /users

[root@localhost ~]# 

[root@localhost ~]# useradd -D

GROUP=100

HOME=/users

INACTIVE=-1

EXPIRE=

SHELL=/bin/bash

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes


# adduser –D –s /bin/false

※ shell을 false로 바꿔버리면, 접속(로그인) 불가...

실습)

[root@localhost ~]# adduser -D -s /bin/false

[root@localhost ~]# 

[root@localhost ~]# adduser -D

GROUP=100

HOME=/users

INACTIVE=-1

EXPIRE=

SHELL=/bin/false

SKEL=/etc/skel

CREATE_MAIL_SPOOL=yes



3. 사용자 계정 삭제


1) userdel

# userdel ydvt4

/users/ydvt5 디렉토리는 삭제되지 않음

# cd /users

# rm –r ydvt5

# userdel –r ydvt5


* 계정 서비스 보류 및 재서비스

- /etc/passwd의 두 번째 필드 값 ‘*’표시

- 재서비스할 경우 ‘*’ 문자 삭제


* 계정 발급하더라도 로그인 불가능

- /etc/passwd의 /bin/bash  →  /bin/false (or /sbin/nologin)


4. 계정 패스워드 지정 및 변경


1) passwd 파일 구조

/etc/shadow 파일에 암호화된 형태로 안전하게 저장.


2) passwd 변경 (시스템 관리자)

실습)

[root@localhost users]# adduser ydvt5

[root@localhost users]# passwd ydvt5

ydvt5 사용자의 비밀 번호 변경 중

새  암호:

잘못된 암호: The password is shorter than 8 characters

새  암호 재입력:

passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.


3) passwd 변경 (사용자)

실습)

[root@localhost users]# su - ydvt5

[ydvt5@localhost ~]$ passwd

ydvt5 사용자의 비밀 번호 변경 중

ydvt5에 대한 암호 변경 중  

(현재) UNIX 암호:

새  암호:

새  암호 재입력:

passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.


* 사용자가 패스워드 변경할 경우 유의사항

- 숫자로만 지정 불가

- 사전적인 쉬운 단어로 지정 불가

- 6자 이상

- 이전에 사용하던 패스워드 지정 불가

- 여러 문자와 숫자 조합이 가장 좋음


4) Shadow Password System

실습)

[ydvt5@localhost ~]$ su -

암호:

[root@localhost ~]# pwunconv

[root@localhost ~]# cat /etc/passwd | grep root

root:$6$lsRpERiSxLnCFuWm$.2z9ktq5DGoIwNdoSsHvyZ9kWu3MsASJBwyZOUsEBvY05iBxH0w.y6DmH26Xs5tw7oSr2EmY2eSbL7WEth/P0.:0:0:root:/root:/bin/bash

operator:*:11:0:operator:/root:/sbin/nologin

[root@localhost ~]# cat /etc/shadow | grep root

cat: /etc/shadow: 그런 파일이나 디렉터리가 없습니다

[root@localhost ~]# pwconv

[root@localhost ~]# cat /etc/shadow | grep root

root:$6$lsRpERiSxLnCFuWm$.2z9ktq5DGoIwNdoSsHvyZ9kWu3MsASJBwyZOUsEBvY05iBxH0w.y6DmH26Xs5tw7oSr2EmY2eSbL7WEth/P0.:17679:0:99999:7:::

[root@localhost ~]# cat /etc/passwd | grep root

root:x:0:0:root:/root:/bin/bash

operator:x:11:0:operator:/root:/sbin/nologin


5) 패스워드 관리 (chage)

# chage [옵션] [설정 내용] 사용자 계정

-l : chage 설정 내용 확인

-m : 새로운 pw를 변경할 수 있는 최소 일 수, 0은 언제나 변경 가능

-M : 유효한 pw의 최대 일수

-W : 사용자가 pw를 바꿀 때까지 경고할 일 수

-I : pw 유효기간이 경과된 후 사용자의 계정이 비활성화될 일 수

-E : 사용자가 계정을 사용할 수 있는 유효기간 (연도/월/일)

-d : 사용자가 pw를 변경한 마지막 일자


실습)

[root@localhost ~]# chage -l ydvt5

마지막으로 암호를 바꾼 날 : 5월 28, 2018

암호 만료 :안함

암호가 비활성화 기간 :안함

계정 만료 :안함

암호를 바꿀 수 있는 최소 날 수 : 0

암호를 바꿔야 하는 최대 날 수 : 99999

암호 만료 예고를 하는 날 수 : 7

[root@localhost ~]# chage -M 15 ydvt5

[root@localhost ~]# chage -l ydvt5

마지막으로 암호를 바꾼 날 : 5월 28, 2018

암호 만료 : 6월 12, 2018

암호가 비활성화 기간 :안함

계정 만료 :안함

암호를 바꿀 수 있는 최소 날 수 : 0

암호를 바꿔야 하는 최대 날 수 : 15

암호 만료 예고를 하는 날 수 : 7


'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초 (5/30 오전)  (0) 2018.05.30
리눅스 기초  (0) 2018.05.29
리눅스 기초 (5/25 금)  (0) 2018.05.25

* 파일 시스템 관리


1. 파일 시스템의 기능

파일의 생성, 수정, 제거 기능

파일 공유 기능

여러 종류의 접근 제어 기법 제공

파일간의 정보 전송 기능

복구 기능

심볼릭 링크 기능

암호화 및 복호화 기능


2. 파일의 종류

유닉스 시스템은 확장자 개념 자체가 없음

1) 보통 파일(Ordinary File)

2) 디렉토리 파일(Directory File) = 윈도우의 폴더 개념

3) 특수 파일(Special File)

- 대부분 /dev 디렉토리에 존재


3. 리눅스 시스템 디렉토리 구조

1) 루트 디렉토리 (/)

2) 부트 디렉토리 (/boot)

3) 시스템 설정 파일 디렉토리 (/etc)

4) 기본 실행 파일이 있는 바이너리 디렉토리 (/bin)

5) 디바이스 디렉토리 (/dev)

6) 사용자 계정 디렉토리 (/home)

등등


4. 허가권과 소유권

1) 형식

drwxr-xr-x  3 root root 4096  5월 23 11:17 test

파일 유형 / 파일 허가권(소유자/그룹/기타 사용자) / 링크 수 / 파일 소유자 이름 / 파일 소유 그룹 이름 / 파일 크기(byte) / 마지막 변경 날짜, 시간 / 파일 이름


2) 허가권

>> 파일의 접근 허가 권한 의미

- 읽기(read: r)

- 쓰기(write: w)

- 실행(execute: x)

- 디렉토리 파일과 일반 파일에서의 허가권은 다름


* <su>와 <su ->의 차이

>> su 뒤에 -을 붙이면 사용자의 홈 디렉토리로 이동

ex)

su - : 관리자 홈으로 이동(/root)

su - fedora : fedora 유저의 홈으로 이동(/home/fedora)



3) chmod : 권한 변경, 8진수 및 기호와 부호 이용




>> 디렉토리 파일의 허가권
- 디렉토리 파일은 x(실행) 허가권을 뺏으면 접근이 불가능해진다.


4) chown : 소유권 변경


5) chgrp : 그룹만 변경
* umask
- default : 022
666-022 = 664
777-022 = 775

6) ln(LiNk) : 바로 가기
- 하드 링크 = 물리적 링크
- 소프트 링크 = 기호적 링크 = 심볼릭 링크




* 시스템 명령어

1. 명령어 표준 형식

1) 파일 이름 생성
* 파일명 길이
 - 14자 (System V)
 - 255자 (BSD)
* 파일명 수정 시 고려사항
 - 대소문자 구분 : 매우 중요함
 - 파일명은 가급적 의미 부여
 - 특수문자는 가급적 피할 것
 - 파일명은 해당 디렉토리에서 사용하지 않는 이름 선택
 - 디렉토리명은 가급적 대문자
 - .(dot)로 시작하는 파일명은 숨겨진 파일

2) 시스템 명령어
>> who (or w) : 현재 로그인된 사용자를 보여줌
 - who의 옵션
 i : Idle Time 보여줌

>> who am i (or whoami)

>> 입출력 방향 전환
- 출력 리디렉션 (>)

- 추가 리디렉션 (>>)

- 입력 리디렉션 (<) : 쓸 일 없음. 그렇지만 알아두자.


'스마트웹&콘텐츠 개발자 과정 > GNU Linux' 카테고리의 다른 글

리눅스 기초 (5/30 오전)  (0) 2018.05.30
리눅스 기초  (0) 2018.05.29
리눅스 기초 (5/28 월)  (0) 2018.05.28

+ Recent posts