becool

20210408 (목) 본문

linux

20210408 (목)

gusalstm 2021. 4. 8. 16:29
반응형

09:30 review

 

프로세스

부모 프로세스

자식 프로세스

데몬 프로세스

고아 프로세스

좀비 프로세스

 

$ kill [option] [signal] [PID]

root      3242  2947  0 09:41 pts/0    00:00:00 sleep 1000

[root@localhost ~]# kill -s 2 3242
[1]   Interrupt               sleep 1000

 

$ killall [option] [signal] [Process Name]

[root@localhost ~]# killall -v -3 sleep
Killed sleep(3408) with signal 3
[2]   Quit                    (core dumped) sleep 2000
[3]   Quit                    (core dumped) sleep 3000
[4]-  Quit                    (core dumped) sleep 4000
[5]+  Quit                    (core dumped) sleep 5000

 

$ pkill -SIG Process 

[user@localhost root]$ pkill -2 sleep
pkill: killing pid 3576 failed: Operation not permitted
[1]   Interrupt               sleep 1000
[2]   Interrupt               sleep 2000
[3]-  Interrupt               sleep 3000
[4]+  Interrupt               sleep 4000
[user@localhost root]$ ps -ef |grep sleep
root      3576   783  0 09:49 ?        00:00:00 sleep 60
user      3644  3437  0 09:50 pts/0    00:00:00 grep --color=auto sleep

 

pkill : 소문자 t 특정 터미널의 프로세스를 제어할 수 있음.

        대문자 P를 통해 부모프로세스 제어가 가능

 

[user@localhost root]$ pkill -15 -t pts/0 sleep → pts/0에 속하는 sleep 만 15번 시그널(TERM)
[1]   Terminated              sleep 1000
[2]-  Terminated              sleep 2000
[3]+  Terminated              sleep 3000sleep

 

[user@localhost root]$ ps -ef |grep sleep
user      3889  3851  0 09:53 pts/2    00:00:00 sleep 4000
root      4092   783  0 09:59 ?        00:00:00 sleep 60
user      4108  3437  0 10:00 pts/0    00:00:00 sleep 5000
user      4126  3437  0 10:00 pts/0    00:00:00 grep --color=auto sleep
[user@localhost root]$ pkill -2 -P 3851 sleep

 

===================================

아카이브

 - 다수의 파일을 하나로 묶는 것.

 

tar

아카이브 생성

 $ tar cf 아카이브파일 파일 

 

아카이브 확인

 $ tar tf 아카이브파일

 $ tar tfv 아카이브파일 (상세보기)

 

아카이브 해제

 $ tar xf 아카이브파일

 $ tar xfv 아카이브파일 (과정보기)

※ 해제 시, 동일한 파일명이 있으면 덮어쓰기(replace) 됨. 

 

===================================

압축 및 압축 해제

compress

 $ compress [FILE]

 $ uncompress [FILE]

gzip

 $ gzip [FILE]

 $ gunzip [FILE]

bzip2

 $ bzip2 [FILE]

 $ bunzip2 [FILE]

 

xz

 $ xz [FILE]

 $ unxz [FILE]

 

zip NEWZIP FILE

※ 해제 시, 동일한 파일명이 있으면 덮어쓰기여부를 물어봄 (y,n,A,r)

replace file1? [y]es, [n]o, [A]ll, [N]one, [r]ename:

[user@localhost 20210408]$ zip newzip.zip file1 file2 file3
  adding: file1 (deflated 65%)
  adding: file2 (deflated 42%)
  adding: file3 (deflated 61%)

 

파일 여러개를 압축하고 싶으면 1) tar 묶기 → 2) 압축 의 순서로 진행.

 

===================================

아카이브 + 압축

[user@localhost 20210408]$ tar zcf hello3.tar.gz file1 file2 file3
[user@localhost 20210408]$ tar ztf hello3.tar.gz 
file1
file2
file3
[user@localhost 20210408]$ tar zxf hello3.tar.gz 

tar -> gzip  한번에 실행 (zcf)

gzip -> tar 한번에 실행 (zxf)

ztf 파일 보기

 

[user@localhost 20210408]$ tar jcf hello4.tar.bz2 file1 file2 file3
[user@localhost 20210408]$ tar jtf hello4.tar.bz2 
file1
file2
file3
[user@localhost 20210408]$ tar jxf hello4.tar.bz2 

tar -> bzip2 한번에 실행 (jcf)

bzip2 -> tar 한번에 실행 (jxf)

jtf 파일 보기

[user@localhost 20210408]$ tar Jcf hello5.tar.xz file1 file2 file3 
[user@localhost 20210408]$ tar Jtf hello5.tar.xz 
file1
file2
file3
[user@localhost 20210408]$ tar Jxf hello5.tar.xz 

tar -> xz 한번에 실행 (Jcf)

xz -> tar 한번에 실행 (Jxf)

Jtf 파일 보기

 

 

 

 

 

===================================

 

 사용자 및 그룹 관리

 

/etc/passwd : Unix/Linux 사용자 계정 데이터베이스 파일

user01:x:1001:1001::/home/user01:/bin/bash

Username:PW:UID:GID:GECOS:HOME/SHELL

 

# useradd [OPTION] [USER] → /home에 유저 홈디렉터리 자동 생성됨 (안되게 설정되어있으면 -m옵션 활용)

 

 -c [Comment] GECOS, Comment

[root@localhost ~]# useradd -c "test07 user" test07

test07:x:1005:1005:test07 user:/home/test07:/bin/bash

※ 유저 홈디렉터리 자동생성 옵션파일 : /etc/login.defs (이 파일의 값은 새 사용자를 만들때만 사용된다.)

  .....
  # If useradd should create home directories for users by default

  # On RH systems, we do. This option is overridden with the -m flag on
  # useradd command line.
  #
  CREATE_HOME     yes

 

 

 -d [HOME]

[root@localhost ~]# useradd -d /home/test test08

test08:x:1006:1006::/home/test:/bin/bash

 

 -m 사용자의 홈디렉터리가 존재하지 않을 경우 생성

[root@localhost ~]# useradd -c "test08 user" -d /home/test test08

user11:x:1007:1007::/home/test011:/bin/bash

 

 -u [UID] 사용자의 UID값을 지정

[root@localhost ~]# useradd -u 1011 test13
test13:x:1011:1011::/home/test13:/bin/bash → UID값 지정

 

 -r 사용자의 UID값을 시스템 계정 UID범위 (199~999)에서 할당

[root@localhost ~]# useradd -r test12
test12:x:987:981::/home/test12:/bin/bash  → UID값이 900번대로 지정됨. (시스템계정)

 

# usermod [OPTION] [USER]

 

usermod 옵션 사용법
-c, --comment COMMENT 주석 필드에 comment(GECOS) 추가/변경
-g, --gid GROUP 사용자 계정에 대한 기본 그룹설정
-G, --groups GROUPS 사용자 계정에 대한 쉼표로구분된 보조그룹목록 지정
-a, --append 보조그룹집합을 새로운 집합으로 바꾸는 대신 보조그룹을 그룹멤버십의 사용자 현재 집합에 추가하도록 -G옵션과 함께 사용.
-d, --home HOME_DIR 사용자 계정에 대한 홈디렉터리 설정
-m, --move -home 사용자의 홈디렉터리를 새 위치로 이동한다 -d와 함께 사용
-s, --shell SHELL 사용자 계정에 대한 특정 로그인 쉘을 지정
-L, --lock 사용자 계정 잠금
-U, --unlock 사용자 계정 잠금해제
-p PASSWORD 를 지정 → 보안에 취약하므로 사용하지 않음

-c comment

[root@localhost ~]# usermod -c "test1234" test07

test07:x:1005:1005:test1234:/home/test07:/bin/bash

 

-d HOME

[root@localhost ~]# usermod -d /home/test11 user11

user11:x:1007:1007::/home/test11:/bin/bash

 

-u UID 사용자의 UID 값을 변경

[root@localhost ~]# usermod -u 1012 test13
test13:x:1012:1011::/home/test13:/bin/bash

 

-g GID 사용자의 Primary Group 변경

-G GID 사용자의 Supplementary Group 변경 (기존 보조그룹 replace)

[root@localhost ~]# usermod -G ntp linux2
[root@localhost ~]# id linux2
uid=1021(linux2) gid=38(ntp) groups=38(ntp)

 

-a GID 사용자의 Supplementary Group 추가 (보조그룹 append)

[root@localhost ~]# usermod -a -G adm linux2

[root@localhost ~]# usermod -a -G postfix linux2
[root@localhost ~]# id linux2
uid=1021(linux2) gid=38(ntp) groups=38(ntp),4(adm),89(postfix)

 

-s SHELL 사용자의 SHELL 변경

[root@localhost ~]# usermod -s /bin/sh test02

[root@localhost ~]# su - test02
-sh-4.2$

-sh-4.2$ pwd
/home/test02

 

-o 사용자 UID 지정시 중복을 허용함

 

# userdel [OPTION] [USER]

※ 사용자의 홈디렉터리는 남아있음. → -r 옵션을 쓰면 홈디렉터리도 같이 삭제됨

※ -r옵션이 없으면 할당되지 않은 UID가 소유한 파일이 시스템이 잔존함.

    이 문제는 삭제된 사용자(UID)의 홈디렉터리 외부에도 있을 수 있으며,

    이 상황은 정보누출 및 보안 문제를 야기할 수 있다.

 

 

그룹

/etc/group : 그룹관리파일

 기본 그룹 : 사용자 생성시 기본적으로 속하는 그룹

 보조 그룹 : 기본 그룹 이외에 속할 수 있는 그룹

[root@localhost home]# id
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[root@localhost home]# id user01
uid=1001(user01) gid=1001(user01) groups=1001(user01)

 

그룹 추가

 groupadd [OPTION] [GROUP]

 

-g GID 그룹의 GID 설정

※ 기본설정은 최근에 생성된 gid값에서 +1 하여 숫자가 지정되게 되나 g옵션을 통하여 직접 지정할 수 있음.

   +1 숫자가 이미 쓰고 있는경우 빈 숫자를 찾아서 생성함.

groupadd 옵션 사용법
-g GID 생성될 그룹의 GID값을 직접 지정함.
-o  그룹의 GID값 중복 허용
-r 그룹의 GID값을 시스템 그룹의 범위(199~999) 내에서 할당

 

그룹 수정

 groupmod [OPTION] [GROUP]

  -g 그룹의 GID 변경

  -n NEWGRP 그룹의 이름 변경

[root@localhost home]# groupmod -n test9 group9

test9:x:1012:

[root@localhost home]# groupmod -g 1008 group7 

group7:x:1008:

 

그룹삭제 

 groupdel

 ※ 사용자의 기본그룹으로 설정된 그룹은 삭제 불가 → usermod 를 통해 GID변경 후 그룹 삭제 필요

[root@localhost home]# usermod -g 1000 linux2 → GID 1000으로 변경
[root@localhost home]# usermod -g user linux3 → GROUP명 user로 변경  
 숫자/텍스트 모두 가능

 

===================================

사용자 전환

su (Subsitute User, Switching Users)

 $ su [OPTION] [USER]

  -l : -l 옵션은 - 기호 하나만으로 줄여서 쓸 수 있다. 전환하는 user의 홈디렉터리로 이동하면서 전환한다.

       사용하지 않는경우 현재의 작업디렉터리에서 전환된다.

   →  -(-l)는 해당 사용자로 새로 로그인한 것 처럼 쉘환경을 초기화하는 반면,

        su는 해당사용자로 쉘을 시작하지만 원래 사용자의 환경설정을 유지함.

 

sudo

 $ sudo [OPTION] [COMMAND]

$ sudo [option] command

 - 다른 사용자의 권한으로 작업1회 수행 후 종료/사용자 전환

 - 다른 사용자의 패스워드가 아닌 현재 사용자의 패스워드를 입력하여 명령어 수행

 

 

 

 

 

728x90

'linux' 카테고리의 다른 글

20210412 (월)  (0) 2021.04.12
20210409 (금)  (0) 2021.04.09
20210407 (수) -NEW  (0) 2021.04.07
20210407 (수)  (0) 2021.04.07
20210406 (화)  (0) 2021.04.06
Comments