본문 바로가기
클라우드 아키텍처 설계 기초지식/04 리눅스서버 운영

리눅스 서버 운영 (2) - 권한변경,파일 관련 명령어, 쉘 명령어, 프로세스제어, 아카이브 압축, 사용자 관리

by Jasie 2018. 10. 31.
리눅스의 권한
빅데이터 인공지능 openstack ssl 해킹

     - 유닉스/리눅스 또는 윈도우의 모든 파일과 디렉토리는 권한들의 집합으로 구성되어 있다.

     - 리눅스나 윈도우는 여러 명의 사용자가 동시에 사용 가능한 다중 사용자 기능을 지원하기 때문에 권한이 굉장히 중요하다.

     - 권한은 기본적으로 모든 파일과 디렉토리에 대해 읽기, 쓰기, 실행 작업에 대한 접근 여부를 결정한다.


 권한의 종류

drwxr-xr-x.  

3

root

root

18

9월 28 22:07

.config

(1)

 (2) 

 (3) 

 (4) 

 (5) 

 (6) 

(7)

 (1)권한 및 파일의 종류


rwx  /  r-x  / r--

소유자의 권한  /  관리 그룹의 권한  / 소유자도아니고 관리그룹도 아닌 그 밖의 나머지 사용자


  r : 읽기 권한 있음

  w : 쓰기 권한이 있음

  x : 실행 권한이 있음

  - : 권한이 없음

하드 링크 수

 소유자

관리그룹 

파일크기 

마지막 수정 시간 

파일이름 



* 파일 및 디렉토리 관련 명령어 1) 파일                      r                             w              x 명령어   cat, more, head, tail  vi 편집기  파일의 이름   2) 디렉토리             r                     w                          x 명령어  ls      mkdir, mv, touch, rm        cd * 권한의 변경 chmod 명령어로 변경, chmod  [권한]  [파일 또는 디렉토리 이름]

  1) 심볼릭 모드        소유자 u       읽기  r     권한 부여  +        관리 그룹 g   쓰기  w    권한 회수  -        나머지 o       실행  x

          ex)소유자에게 읽기 권한을 준다. => u+r             소유자에게 쓰기 권한을 회수한다. => u-w



- 나머지에 대한 file2의 읽기 권한을 회수


- 나머지에 대한 file2의 읽기 권한을 부여


   2) 8진수 모드     읽기    4    0    1       2      3      4       5       6         7     쓰기    2   ---   --x    -w-   -wx  r--    r-x      rw-      rwx     실행    1     ---------              7





* 파일 및 디렉토리의 기본 권한

  1) umask(기본 값과 같은 개념)    일반적으로 리눅스 운영체제에서는 umask 값은 022로 설정되어 있다.

  2) 기본 권한   파일   666-umask 디렉토리  777-umask *특수 권한

1) 특수 권한의 종류

SetUID, SetGID, StickyBit        4        2        1 SetUID   : 나머지 사용자가 파일을 실행할 때 소유자의 권한으로 접근할 수 있게 해주는 권한 SetGID   : 나머지 사용자가 파일을 실행할 때 관리 그룹의 권한으로 접근할 수 있게 해주는 권한 StickyBit : 디렉토리에 부여하는 권한,  디렉토리를 마치 자유게시판처럼 사용할 수 있게 해주는 권한

2) 특수 권한의 변경

chmod  [권한]  [파일 또는 디렉토리 이름] 맨 앞자리

3) 특수 권한 파일의 관리

find  /  -perm  -4000 : SetUID가 설정된 파일을 찾는 법








*  쉘 명령어 사용

 1. 쉘 메타문자 사용

  1) 경로 이름 대체 문자

~ : 현재 로그인 한 사용자의 홈디렉토리 - : 이전 작업 디렉토리


  2) 파일 이름 대체 문자

* : 하나 이상의 문자를 대체하는 문자, 일반적으로 전체 ? : 하나의 문자만 대체


  3) 인용부호 메타문자

 ' ' : 메타문자를 일반문자로 취급한다. " " : $, `, \ 문자를 제외한 문자만 일반문자로 취급 ` ` : 문자를 명령어로 인식하여 실행되게 한다.

 4) 방향재지정 메타문자

< : 표준 입력 재지정 > : 표준 출력 및 표준 에러를 재지정, 일반적으로 명령어의 출력 결과를 파일로 저장하거나, 네트워크로 전송할 때 사용 ex)파일에 저장할 때 : echo "test" > ./file 정상적인 결과만 출력할 때 : find / -perm -4000 2> /dev/null 에러 결과만 출력할 때 : find / -perm -4000 1> /dev/null




- 표준 에러만 다른곳으로 지정


| : 파이프 문자,  [명령어1]  |  [명령어2] 처럼 사용하며, 명령어1의 결과를 명령어2의 입력으로 사용 ex) ls /etc | grep rc  ls 명령어의 결과에서 특정 문자를 포함한 라인만 뽑아 볼 때

2. 사용자 초기화 파일

  1) /etc/profile : 시스템 전역에 걸쳐 환경을 설정하는 파일, 모든 사용자가 적용되는 파일   2) ~/.profile : 개별 사용자의 홈 디렉토리에 있는 파일, 해당 사용자가 설정을 변경할 때 사용하는 파일   3) ~/.bashrc : 개별 사용자의 홈 디렉토리에 있는 파일, 해당 사용자가 셀 관련 설정을 변경할때 사용하는 파일





- 사용자 초기화 vi편집기로..





* 프로세스 제어

1. 프로세스 종류

부모 프로세스 : 다른 프로세스를 생성할 수 있는 프로세스

자식 프로세스 : 부모 프로세스가 생성한 프로세스

데몬 프로세스 : 일반적으로 사용자가 직접 실행시키지 않고 OS에 의해서 실행되는 백그라운드 프로세스(윈도우의 서비스) 일반적으로 서버 프로그램들이 백그라운드로 동작, 따라서 리눅스에서는 대부분의 서버 프로그램을 데몬이라고도 부른다.

고아 프로세스 : 일반적으로 자식프로세스는 종료되면 가지고 있던 자원을 부모 프로세스로 반납하는데 먼저 부모 프로세스가 종료되어 자식이 반납할 부모가 없어진 상태의 프로세스

좀비 프로세스 : 프로세스가 종료되면 자원을 반납해야 되는데 종료는 됬짐나 자원은 반납하지 않고 있는 프로세스


2. PID, PPID

  Process Identification Number, 시스템은 프로세스들을 PID로 관리   Parents Process Identification Number, 부모 프로세스의 PID

3. 프로세스 관리 명령어

  1) ps 명령어

   PID     TTY          TIME CMD 17347     pts/0        00:00:00 su 17357     pts/0        00:00:00 bash 17398     pts/0        00:00:00 ps

  2) ps 옵션

-f : 보다 상세한 정보 출력

프로세스 소유자              시작시간  장치               실행 명령어

UID         PID   PPID  C STIME TTY          TIME CMD root      17347   2893  0 14:37 pts/0    00:00:00 su - root root      17357  17347  0 14:37 pts/0    00:00:00 -bash root      18047  17357  0 14:46 pts/0    00:00:00 ps -f -e : 시스템 상의 모든 프로세스 정보 출력





* 아카이브 및 압축


1. 아카이브  아카이브란 파일과 디렉토리를 안전하게 보관하기 위해서 복사하거나, 테이프 백업장치에 백업할 때 사용하던 방식

  현대에서는 아카이브를 이용해서 여러 파일과 디렉토리를 하나의 파일로 묶을 때 사용


1) tar tar  [기능]  [아카이브 파일]  [묶을 파일1]  [묶을 파일2]  [묶을 파일3] ...

기능   c : 새로운 아카이브 파일을 생성   x : 아카이브 파일에서 여러 파일을 해제   t : 아카이브 파일에서 안의 내용을 조회   v : 명령어 수행과정을 자세히 출력   f : 아카이브 장치 지정(파일 또는 백업 장치를 지정) 아카이브 생성

tar  cvf  fruits.tar  banana  apple  kiwi

아카이브 해제

tar  xvf  fruits.tar



2. 압축

  1) 리눅스에서 압축의 종류

gzip, bzip2, zip, compress   .gz    .bz2  .zip   .Z  2) gzip 압축 및 해제

gzip  [파일] : 압축 gunzip  [파일] : 해제




3) gzip과 tar를 한번에 해제

tar zxvf  [tar.gz 파일] 4) bzip2 압축 및 해제

bzip2  [파일] : 압축 bunzip2  [파일] : 해제 5) zip 압축 및 해제

zip  [압축파일이름.zip]  [파일1] [파일2] [파일3]... unzip  [압축파일이름.zip] 6) compress 압축 및 해제

compress [파일이름] : 압축 uncompress [압축파일이름] : 해제





* 사용자 관리

1. 사용자 관련 파일

  1) /etc/passwd 리눅스 시스템에 있는 모든 사용자에 대한 기본 정보가 들어 있는 파일 파일의 내용을 :으로 구분을 해서 저장 ex)sjb:x:1000:1000:sjb:/home/sjb:/bin/bash  (1) 사용자 이름 (2) 사용하지 않는 필드(옛날에 패스워드가 저장되었던 필드) (3) 해당 사용자의 UID (4) 해당 사용자의 주 그룹의 GID (5) 주석 (6) 해당 사용자의 홈 디렉토리(내 문서) (7) 해당 사용자가 사용하는 쉘 종류

  2) /etc/shadow

리눅스 시스템에 있는 모든 사용자에 대한 패스워드 정보가 들어 있는 파일 파일의 내용을 : 으로 구분을 해서 저장

sjb:$6$b9chy$Eu34   생략   OBUioN/l0  :  17802  :  0  :  99999  :  7  :  :  :  

(1) 사용자 이름 (2) 해당 사용자의 패스워드 (3) 마지막 패스워드 변경 시간(리눅스 탄생일로부터 변경한 날짜까지의 일 수) (4) min 패스워드 사용 기간 (5) max 패스워드 사용 기간 (6) warn 패스워드 만기일 전 사전에 경고 메시지를 출력해주는 날짜 (7) inactive 사용자 계정의 휴면 기간 (8) expire 만료일, 만기일이 되면 자동으로 해당 사용자의 계정을 잠금 (9) 예약 필드로 사용하지 않는다.   3) /etc/group

  1  2 3 4 root:x:0:sjb bin:x:1:sjb daemon:x:2:sjb     중략 sjb:x:1000:

(1) 그룹의 이름 (2) 사용하지 않는 필드(옛날에 패스워드가 저장되었던 필드) (3) 해당 그룹의 GID (4) 보조 그룹으로 속한 사용자들의 이름



 사용자 관리 명령어

  1) 사용자 생성

useradd -u : 사용자 UID 지정 -g : 사용자가 속한 주 그룹의 GID 지정 -G : 사용자가 속한 보조 그룹의 GID 지정 -d : 홈 디렉토리 지정 -m : 지정한 홈 디렉토리가 존재하지 않을 때 사용자를 생성하면서 홈 디렉토리도 같이 생성 -k : 홈 디렉토리를 생성하면서 사용자의 홈 디렉토리에 필요한 초기화 파일이 저장된 디렉토리를 지정 따로 지정하지 않으면 /etc/skel 디렉토리로 자동으로 설정 -s : 사용자 로그인 쉘을 지정 -c : /etc/passwd 파일에 주석 부분을 설정



2) 사용자 정보 수정 usermod [옵션] [사용자명] 옵션은 useradd 명령어와 같다  3) 사용자 삭제 userdel [옵션] [사용자명] -r : 사용자의 홈 디렉토리를 사용자와 함께 삭제 3. 그룹 관리 명령어   1) groupadd [옵션][그룹명]

     -g : 생성할 그룹의 GID 지정

  2) groupmod [옵션][그룹명]

groupadd 명령어와 똑같다.

  3) groupdel [옵션][그룹명]

4. 패스워드 관리 명령어

  1) 패스워드 설정 명령어

passwd [옵션] [사용자명] -n : 최소 패스워드 사용일 -x : 최대 패스워드 사용일 -w : 만료일 전 패스워드 변경 경고 기간 -l : 해당 사용자 계정 잠금 -u : 해당 사용자 계정 잠금 해제

5. 로그인 명령어

1) 사용자 전환 명령어

su - [사용자명] : 사용자로 로그인하면서 해당 사용자의 홈디렉토리에 있는 사용자 초기화 파일을 읽어서 적용 su [사용자명] : 사용자로 로그인하면서 해당 사용자의 홈디렉토리에 있는 사용자 초기화 파일을 읽지 않고 그냥 로그인

6 . 기타 사용자 관련 파일

1) /var/log/lastlog

사용자가 마지막으로 로그인한 시간을 기록 lastlog 명령어로 조회

2) /var/log/secure

로그인 실패 기록 cat /var/log/secure 명령어로 조회 실패한 경우에는 -로 표시, 성공한 경우 +





* TIP  - umask 값은 재부팅을 하면 다시 0022로 초기화 된다.  - $는 리눅스 쉘에서 변수를 사용할 때 사용하는 문자 - >을 한 번만 사용하면 파일의 내용을 덮어씀, >>을 사용하면 기존의 파일 내용에 이어서 씀









공감() 과 댓글은 필자에게 큰 힘이 됩니다.

잠시 1초만 내주시면 안될까요? ~~


로그인 없이도 가능합니당 



댓글