본문 바로가기
Web & Mobile/Linux

Lecture 64 - Linux(2) 사용자 계정 관리, 로그인 관리

by Bennyziio 2019. 6. 18.
반응형
linux
        GUI     - X Window(별도 프로그램 설치 해도 되고 안해도 됨)
                        gnome
                        KDE
                        Mac / Window
                : runlevel 5
                : graphical.target
        
        CUI     - Character
                : runlevel 3
                : multi-user.target
        : runlevel 1
        : single-user - 안전모드

init 3  - X window 안쓸거야~

명령어에 init 3를 치면 위와 같은 창으로 들어가고 init 5를 치면 그래픽이 추가된 아래 화면으로 넘어간다

임시 옵션 -> 영구 옵션
init 3
init 5
기본 명령어
        디렉터리 관련
        파일 관련

        문서 관련 명령어
        vi
        cat
        head / tail
        more

        도움말 관련 명령어
        명령어 --help
        man 명령어

사용자 계정 관련 파일

사용자 계정 생성하기

[root@localhost ~]# pwd
/root
[root@localhost ~]# adduser tester1
[root@localhost ~]# passwd tester1
tester1 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
죄송합니다. 암호가 일치하지 않습니다.
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.

비밀번호는 123456으로 만듬.

[tester1@localhost ~]$ pwd
/home/tester1
[tester1@localhost ~]$ ls -l
합계 0
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 공개
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 다운로드
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 문서
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 바탕화면
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 비디오
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 사진
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 서식
drwxr-xr-x. 2 tester1 tester1 6  8월 14 10:23 음악

사용자 공간도 만들어지고 그 안 공간의 기본 사항들도 추가된다.

콘트롤 + 알트 + F1

 

root로 로그인 후 아래와 같이 누르면 각각 화면 전환을 쉽게 할 수 있고 이는 6개 까지 가능하다

콘트롤 + 알트 + F2

 

콘트롤 + 알트 + F3

 

작업공간은 맥에서 데스크탑 늘리는 거랑 같음

사용자
        /home/사용자아이디
                - 저장공간
        /etc/passwd
                - 등록
[root@localhost ~]# tail /etc/passwd
ntp:x:38:38::/etc/ntp:/sbin/nologin
sssd:x:990:984:User for sssd:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
master:x:1000:1000:master:/home/master:/bin/bash
tester1:x:1001:1001::/home/tester1:/bin/bash

[root@localhost ~]# adduser tester2
[root@localhost ~]# passwd tester2
tester2 사용자의 비밀 번호 변경 중
새  암호:
잘못된 암호: 암호는 8 개의 문자 보다 짧습니다
새  암호 재입력:
passwd: 모든 인증 토큰이 성공적으로 업데이트 되었습니다.
[root@localhost ~]# tail /etc/passwd
sssd:x:990:984:User for sssd:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
master:x:1000:1000:master:/home/master:/bin/bash
tester1:x:1001:1001::/home/tester1:/bin/bash
tester2:x:1002:1002::/home/tester2:/bin/bash

[root@localhost ~]# tail /etc/shadow
sssd:!!:17756::::::
gdm:!!:17756::::::
gnome-initial-setup:!!:17756::::::
sshd:!!:17756::::::
avahi:!!:17756::::::
postfix:!!:17756::::::
tcpdump:!!:17756::::::
master:$6$hwNdlb7hpBjDxhKT$jq9ONzQywo6GfSheqTsjOFR5KktNwqE5Ikp9E1GwF/H6YpXjHe2LVyXyMooP1UWyadpMB6ebEVlenQAGpuu5V0::0:99999:7:::
tester1:$6$NnCwZf87$8MCXKMz/z9FE7RLYVhqkZUmszSv6AbJBJxiO8raIL6G1KsEnEz1q5kpU2a.0Fd0ZuvIV6i25LMfbVEIVFgvNJ/:17757:0:99999:7:::
tester2:$6$W7w3ZI5D$JKMsnOVcB/pCPCMafecjW1tTmswQE62yEdndHptExEzDy7UJOAQVpBjt99s6n73/.ARtFi2iCCtOkmx7ffDNY1:17757:0:99999:7:::

위와 같이 tester2에서 tail /etc/passwd를 쳐 보면 사용자는 볼수 있지만 암호는 전혀 볼수가 없다.

그룹 파일

사용자
        그룹 - 권한 집합
        (role)
        * 기본적인 그룹은 사용자 아이디와 동일

사용자 전환
su 사용자아이디
        - 아이디에 권한
su - 사용자아이디
        - 재로그인
root -> 사용자 : 자유
사용자 -> 다른 사용자 : 암호를 묻는다
사용자 -> root : 암호를 묻는다
[root@localhost ~]# su tester1
[tester1@localhost root]$ pwd
/root
[tester1@localhost root]$ ls
ls: cannot open directory .: 허가 거부
[tester1@localhost root]$ exit
exit
[root@localhost ~]# su - tester1
마지막 로그인: 화  8월 14 11:05:39 KST 2018 일시 pts/1
[tester1@localhost ~]$ pwd
/home/tester1
[tester1@localhost ~]$ exit
logout

마스터로 로그인하고

[master@localhost ~]$ su root
암호:
[root@localhost master]# pwd
/home/master
[root@localhost master]# exit
exit
[master@localhost ~]$ su - root
암호:
마지막 로그인: 화  8월 14 11:09:03 KST 2018 일시 pts/0
[root@localhost ~]# pwd
/root
[root@localhost ~]# exit
logout
[master@localhost ~]$ su - tester1
암호:
마지막 로그인: 화  8월 14 11:06:45 KST 2018 일시 pts/1
[tester1@localhost ~]$ su - root
암호:
마지막 로그인: 화  8월 14 11:10:24 KST 2018 일시 pts/0
[root@localhost ~]# su - tester2

위와 같이 계속 다른 계정으로 로그인이 가능한데 너무 많이 하면 복잡해지므로 최대한 자제한다

파일의 속성

[master@localhost ~]$ touch text.txt
[master@localhost ~]$ ls -l text.txt
-rw-rw-r--. 1 master master 0  8월 14 11:18 text.txt

파일의 종류

파일의 접근 권한

[master@localhost ~]$ ls -l text.txt
-rw-rw-r--. 1 master master 0  8월 14 11:18 text.txt
[master@localhost ~]$ chmod 755 text.txt
[master@localhost ~]$ ls -l text.txt
-rwxr-xr-x. 1 master master 0  8월 14 11:18 text.txt
[master@localhost ~]$ chmod 777 text.txt
[master@localhost ~]$ ls -l text.txt
-rwxrwxrwx. 1 master master 0  8월 14 11:18 text.txt
[master@localhost ~]$ chm
chmem  chmod  
[master@localhost ~]$ chmod 474 text.txt
[master@localhost ~]$ ls -l text.txt
-r--rwxr--. 1 master master 0  8월 14 11:18 text.txt
[master@localhost ~]$ mkdir dir1
[master@localhost ~]$ ls -l
합계 684
-rw-rw-r--. 1 master master    425  8월 13 17:20 HelloWorld.class
-rw-rw-r--. 1 master master    114  8월 13 17:19 HelloWorld.java
drwxrwxr-x. 3 master master     17  8월 13 12:59 ch2
drwxrwxr-x. 2 master master      6  8월 14 11:56 dir1
-rw-r--r--. 1 master master    158  8월 13 15:03 hosts
lrwxrwxrwx. 1 master master      5  8월 13 15:01 hosts2 -> hosts
-rw-r--r--. 1 master master 670293  8월 13 16:01 services
drwxrwxr-x. 2 master master     19  8월 13 14:44 sub1
drwxrwxr-x. 2 master master      6  8월 13 12:50 tempt
-rw-rw-r--. 1 master master     40  8월 13 15:50 test.txt
-rw-rw-r--. 1 master master     10  8월 13 16:56 test1.txt
-rw-rw-r--. 1 master master      4  8월 13 16:57 test2.txt
-rw-rw-r--. 1 master master      4  8월 13 16:57 test3.txt
-r--rwxr--. 1 master master      0  8월 14 11:18 text.txt
drwxr-xr-x. 2 master master      6  8월 13 20:18 공개
drwxr-xr-x. 2 master master      6  8월 13 20:18 다운로드
drwxr-xr-x. 2 master master      6  8월 13 20:18 문서
drwxr-xr-x. 2 master master      6  8월 13 20:18 바탕화면
drwxr-xr-x. 2 master master      6  8월 13 20:18 비디오
drwxr-xr-x. 2 master master      6  8월 13 20:18 사진
drwxr-xr-x. 2 master master      6  8월 13 20:18 서식
drwxr-xr-x. 2 master master      6  8월 13 20:18 음악

dir1 디렉터리의 권한을 664로 바꿔보기

[master@localhost ~]$ chmod 664 dir1/
[master@localhost ~]$ ls -l
합계 684
-rw-rw-r--. 1 master master    425  8월 13 17:20 HelloWorld.class
-rw-rw-r--. 1 master master    114  8월 13 17:19 HelloWorld.java
drwxrwxr-x. 3 master master     17  8월 13 12:59 ch2
drw-rw-r--. 2 master master      6  8월 14 11:56 dir1
-rw-r--r--. 1 master master    158  8월 13 15:03 hosts
lrwxrwxrwx. 1 master master      5  8월 13 15:01 hosts2 -> hosts
-rw-r--r--. 1 master master 670293  8월 13 16:01 services
drwxrwxr-x. 2 master master     19  8월 13 14:44 sub1
drwxrwxr-x. 2 master master      6  8월 13 12:50 tempt
-rw-rw-r--. 1 master master     40  8월 13 15:50 test.txt
-rw-rw-r--. 1 master master     10  8월 13 16:56 test1.txt
-rw-rw-r--. 1 master master      4  8월 13 16:57 test2.txt
-rw-rw-r--. 1 master master      4  8월 13 16:57 test3.txt
-r--rwxr--. 1 master master      0  8월 14 11:18 text.txt
drwxr-xr-x. 2 master master      6  8월 13 20:18 공개
drwxr-xr-x. 2 master master      6  8월 13 20:18 다운로드
drwxr-xr-x. 2 master master      6  8월 13 20:18 문서
drwxr-xr-x. 2 master master      6  8월 13 20:18 바탕화면
drwxr-xr-x. 2 master master      6  8월 13 20:18 비디오
drwxr-xr-x. 2 master master      6  8월 13 20:18 사진
drwxr-xr-x. 2 master master      6  8월 13 20:18 서식
drwxr-xr-x. 2 master master      6  8월 13 20:18 음악

현재 디렉터리 정보를 보고 싶을 때

[master@localhost ~]$ ls -ld ./dir1/
drw-rw-r--. 2 master master 6  8월 14 11:56 ./dir1/

기호 모드

불필요 파일 정리

[master@localhost ~]$ ls
HelloWorld.class  dir1    services  test.txt   test3.txt  다운로드  비디오  음악
HelloWorld.java   hosts   sub1      test1.txt  text.txt   문서      사진
ch2               hosts2  tempt     test2.txt  공개       바탕화면  서식
[master@localhost ~]$ rm text*.txt
rm: remove write-protected 일반 빈 파일 `text.txt'? y
[master@localhost ~]$ rm test*.txt
[master@localhost ~]$ ls
HelloWorld.class  ch2   hosts   services  tempt  다운로드  바탕화면  사진  음악
HelloWorld.java   dir1  hosts2  sub1      공개   문서      비디오    서식
[master@localhost ~]$ rm -r dir1/ hosts2 hosts services sub1/
[master@localhost ~]$ ls
HelloWorld.class  ch2    공개      문서      비디오  서식
HelloWorld.java   tempt  다운로드  바탕화면  사진    음악
[master@localhost ~]$ rm -r ch2
[master@localhost ~]$ ls
HelloWorld.class  tempt  다운로드  바탕화면  사진  음악
HelloWorld.java   공개   문서      비디오    서식
[master@localhost ~]$ rm -r tempt
[master@localhost ~]$ ls
HelloWorld.class  공개      문서      비디오  서식
HelloWorld.java   다운로드  바탕화면  사진    음악

주의할 사항 설명

[master@localhost ~]$ touch test.txt
[master@localhost ~]$ ls -l
합계 8
-rw-rw-r--. 1 master master 425  8월 13 17:20 HelloWorld.class
-rw-rw-r--. 1 master master 114  8월 13 17:19 HelloWorld.java
-rw-rw-r--. 1 master master   0  8월 14 12:07 test.txt
drwxr-xr-x. 2 master master   6  8월 13 20:18 공개
drwxr-xr-x. 2 master master   6  8월 13 20:18 다운로드
drwxr-xr-x. 2 master master   6  8월 13 20:18 문서
drwxr-xr-x. 2 master master   6  8월 13 20:18 바탕화면
drwxr-xr-x. 2 master master   6  8월 13 20:18 비디오
drwxr-xr-x. 2 master master   6  8월 13 20:18 사진
drwxr-xr-x. 2 master master   6  8월 13 20:18 서식
drwxr-xr-x. 2 master master   6  8월 13 20:18 음악
[master@localhost ~]$ ls -l test.txt
-rw-rw-r--. 1 master master 0  8월 14 12:07 test.txt
[master@localhost ~]$ rm test.txt
[master@localhost ~]$ touch test.txt
[master@localhost ~]$ chmod 444 test.txt
[master@localhost ~]$ ls -l
합계 8
-rw-rw-r--. 1 master master 425  8월 13 17:20 HelloWorld.class
-rw-rw-r--. 1 master master 114  8월 13 17:19 HelloWorld.java
-r--r--r--. 1 master master   0  8월 14 12:08 test.txt
drwxr-xr-x. 2 master master   6  8월 13 20:18 공개
drwxr-xr-x. 2 master master   6  8월 13 20:18 다운로드
drwxr-xr-x. 2 master master   6  8월 13 20:18 문서
drwxr-xr-x. 2 master master   6  8월 13 20:18 바탕화면
drwxr-xr-x. 2 master master   6  8월 13 20:18 비디오
drwxr-xr-x. 2 master master   6  8월 13 20:18 사진
drwxr-xr-x. 2 master master   6  8월 13 20:18 서식
drwxr-xr-x. 2 master master   6  8월 13 20:18 음악
[master@localhost ~]$ rm test.txt
rm: remove write-protected 일반 빈 파일 `test.txt'? n
[master@localhost ~]$ ls -l test.txt
-r--r--r--. 1 master master 0  8월 14 12:08 test.txt
[master@localhost ~]$ chmod 664 test.txt
[master@localhost ~]$ ls -l test.txt
-rw-rw-r--. 1 master master 0  8월 14 12:08 test.txt
[master@localhost ~]$ rm test.txt
[master@localhost ~]$ ls -l test.txt
ls: cannot access test.txt: 그런 파일이나 디렉터리가 없습니다
[master@localhost ~]$ ls -l
합계 8
-rw-rw-r--. 1 master master 425  8월 13 17:20 HelloWorld.class
-rw-rw-r--. 1 master master 114  8월 13 17:19 HelloWorld.java
drwxr-xr-x. 2 master master   6  8월 13 20:18 공개
drwxr-xr-x. 2 master master   6  8월 13 20:18 다운로드
drwxr-xr-x. 2 master master   6  8월 13 20:18 문서
drwxr-xr-x. 2 master master   6  8월 13 20:18 바탕화면
drwxr-xr-x. 2 master master   6  8월 13 20:18 비디오
drwxr-xr-x. 2 master master   6  8월 13 20:18 사진
drwxr-xr-x. 2 master master   6  8월 13 20:18 서식
drwxr-xr-x. 2 master master   6  8월 13 20:18 음악

기호를 이용한 접근 권한 변경 예

[master@localhost ~]$ touch test.txt
[master@localhost ~]$ ls -l test.txt
-rw-rw-r--. 1 master master 0  8월 14 12:11 test.txt
[master@localhost ~]$ chmod u+x test.txt
[master@localhost ~]$ ls -l
합계 8
-rw-rw-r--. 1 master master 425  8월 13 17:20 HelloWorld.class
-rw-rw-r--. 1 master master 114  8월 13 17:19 HelloWorld.java
-rwxrw-r--. 1 master master   0  8월 14 12:11 test.txt
drwxr-xr-x. 2 master master   6  8월 13 20:18 공개
drwxr-xr-x. 2 master master   6  8월 13 20:18 다운로드
drwxr-xr-x. 2 master master   6  8월 13 20:18 문서
drwxr-xr-x. 2 master master   6  8월 13 20:18 바탕화면
drwxr-xr-x. 2 master master   6  8월 13 20:18 비디오
drwxr-xr-x. 2 master master   6  8월 13 20:18 사진
drwxr-xr-x. 2 master master   6  8월 13 20:18 서식
drwxr-xr-x. 2 master master   6  8월 13 20:18 음악

u에 x권한을 주었다.

소유자가 다른 계정에게 권한 변경

소유자 변경

[master@localhost ~]$ chown tester1.tester1 test1.txt
chown: changing ownership of `test1.txt': 명령을 허용하지 않음
[master@localhost ~]$ su root
암호:
[root@localhost master]# chown tester1.tester1 test1.txt
[root@localhost master]# ls -l test1.txt
-rw-rw-r--. 1 tester1 tester1 0  8월 14 12:19 test1.txt

기본 접근 권한

일반 계정에서 생성시 기본 접근 권한은 아래와 같다

[master@localhost ~]$ touch test.txt
[master@localhost ~]$ mkdir sub1
[master@localhost ~]$ ls -l test.txt
-rwxrw-r--. 1 master master 0  8월 14 12:30 test.txt
[master@localhost ~]$ ls -ld sub1
drwxrwxr-x. 2 master master 6  8월 14 12:30 sub1

root로 생성시 기본 접근 권한은 아래와 같다

[root@localhost ~]# touch test.txt
[root@localhost ~]# mkdir sub1
[root@localhost ~]# ls -l test.txt
-rw-r--r--. 1 root root 0  8월 14 12:31 test.txt
[root@localhost ~]# ls -ld sub1
drwxr-xr-x. 2 root root 6  8월 14 12:31 sub1

umask를 확인하면 아래와 같다

빼고 주라는 의미로 해석하자

사용자 계정 관리 명령

master에서 master 비번 변경하는건 꽤나 까다롭다

[master@localhost ~]$ passwd
master 사용자의 비밀 번호 변경 중
master에 대한 암호 변경 중  
(현재) UNIX 암호:
새  암호:
잘못된 암호: 암호가 이전 암호와 너무 유사합니다
새  암호:
잘못된 암호: 암호는 7 개의 문자 보다 짧습니다
새  암호:
잘못된 암호: 암호는 사전 검사에 실패했습니다  - 사전에 있는 단어를 기반으로 합니다  
passwd: 서비스를 최대로 재시도함

[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes
[root@localhost ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

expire를 0으로 놔보자

[root@localhost ~]# useradd -D -e 0
[root@localhost ~]# useradd -D
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=0
SHELL=/bin/bash
SKEL=/etc/skel
CREATE_MAIL_SPOOL=yes

skel에 파일이랑 디렉터리를 추가해보자

[root@localhost ~]# ls -a /etc/skel/
.  ..  .bash_logout  .bash_profile  .bashrc  .mozilla
[root@localhost ~]# ls -la /etc/skel/
합계 24
drwxr-xr-x.   3 root root   78  4월 11 13:59 .
drwxr-xr-x. 141 root root 8192  8월 14 10:51 ..
-rw-r--r--.   1 root root   18  4월 11 09:53 .bash_logout
-rw-r--r--.   1 root root  193  4월 11 09:53 .bash_profile
-rw-r--r--.   1 root root  231  4월 11 09:53 .bashrc
drwxr-xr-x.   4 root root   39  8월 13 20:03 .mozilla
[root@localhost ~]# touch /etc/skel/test1.txt
[root@localhost ~]# mkdir /etc/skel/sub1
[root@localhost ~]# ls -la /etc/skel/
합계 24
drwxr-xr-x.   4 root root  107  8월 14 12:54 .
drwxr-xr-x. 141 root root 8192  8월 14 10:51 ..
-rw-r--r--.   1 root root   18  4월 11 09:53 .bash_logout
-rw-r--r--.   1 root root  193  4월 11 09:53 .bash_profile
-rw-r--r--.   1 root root  231  4월 11 09:53 .bashrc
drwxr-xr-x.   4 root root   39  8월 13 20:03 .mozilla
drwxr-xr-x.   2 root root    6  8월 14 12:54 sub1
-rw-r--r--.   1 root root    0  8월 14 12:54 test1.txt
[root@localhost ~]# adduser tester3
[root@localhost ~]# ls -al /home/tester3
합계 12
drwx------. 4 tester3 tester3 107  8월 14 12:55 .
drwxr-xr-x. 6 root    root     65  8월 14 12:55 ..
-rw-r--r--. 1 tester3 tester3  18  4월 11 09:53 .bash_logout
-rw-r--r--. 1 tester3 tester3 193  4월 11 09:53 .bash_profile
-rw-r--r--. 1 tester3 tester3 231  4월 11 09:53 .bashrc
drwxr-xr-x. 4 tester3 tester3  39  8월 13 20:03 .mozilla
drwxr-xr-x. 2 tester3 tester3   6  8월 14 12:54 sub1
-rw-r--r--. 1 tester3 tester3   0  8월 14 12:54 test1.txt

skel파일에 등록된 파일들을 복제하여 만들어 지게 되어 위 tester3로 skel에 만들어 둔 sub1과 test1.txt가 같이 포함되어 생성됨을 볼 수 있다.

옵션을 지정하여 사용자 계정 생성하기
  - 기본 로그인 셸을 본 셸로 지정하고 UID는 2000, GID는 1000, 2차 그룹은 3으로 지정

[root@localhost ~]# useradd -s /bin/sh -d /home/user3 -u 2000 -g 1000 -G 3 user3
[root@localhost ~]# grep user3 /etc/passwd
user3:x:2000:1000::/home/user3:/bin/sh
[root@localhost ~]# grep user3 /etc/group
sys:x:3:user3

사용자 계정 정보 수정하기

패스워드 에이징 관련 명령

[root@localhost ~]# tail /etc/shadow
gnome-initial-setup:!!:17756::::::
sshd:!!:17756::::::
avahi:!!:17756::::::
postfix:!!:17756::::::
tcpdump:!!:17756::::::
master:$6$hwNdlb7hpBjDxhKT$jq9ONzQywo6GfSheqTsjOFR5KktNwqE5Ikp9E1GwF/H6YpXjHe2LVyXyMooP1UWyadpMB6ebEVlenQAGpuu5V0::0:99999:7:::
tester1:$6$NnCwZf87$8MCXKMz/z9FE7RLYVhqkZUmszSv6AbJBJxiO8raIL6G1KsEnEz1q5kpU2a.0Fd0ZuvIV6i25LMfbVEIVFgvNJ/:17757:0:99999:7:::
tester2:$6$W7w3ZI5D$JKMsnOVcB/pCPCMafecjW1tTmswQE62yEdndHptExEzDy7UJOAQVpBjt99s6n73/.ARtFi2iCCtOkmx7ffDNY1:17757:0:99999:7:::
tester3:!!:17757:0:99999:7::0:
user3:!!:17757:0:99999:7::0:

tester3만 얻고 싶으면

[root@localhost ~]# grep user3 /etc/shadow
user3:!!:17757:0:99999:7::0:

-f(inactive : 계정 비활성화 날짜를 수정)와 -e(expire : 계정 만료 날짜를 수정)를 수정해보자

[root@localhost ~]# usermod -f 10 -e 2018-10-31 user3
[root@localhost ~]# grep user3 /etc/shadow
user3:!!:17757:0:99999:7:10:17835:

[root@localhost ~]# chage -l user3
마지막으로 암호를 바꾼 날					: 8월 14, 2018
암호 만료					:안함
암호가 비활성화 기간					:안함
계정 만료						:10월 31, 2018
암호를 바꿀 수 있는 최소 날 수		: 0
암호를 바꿔야 하는 최대 날 수		: 99999
암호 만료 예고를 하는 날 수		: 7

사용자 계정 삭제하기

위와 같이 디렉터리는 남아있기 때문에 다 지울려면 아래와 같이 한다

[root@localhost ~]# userdel -r user3
[root@localhost ~]# ls -l /home/
합계 8
drwx---rwx. 16 master  master  4096  8월 14 12:30 master
drwx------. 15 tester1 tester1 4096  8월 14 12:31 tester1
drwx------.  5 tester2 tester2  128  8월 14 11:17 tester2
drwx------.  4    1003    1003  107  8월 14 12:55 tester3
[root@localhost ~]# tail /etc/passwd
sssd:x:990:984:User for sssd:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:989:983::/run/gnome-initial-setup/:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
postfix:x:89:89::/var/spool/postfix:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
master:x:1000:1000:master:/home/master:/bin/bash
tester1:x:1001:1001::/home/tester1:/bin/bash
tester2:x:1002:1002::/home/tester2:/bin/bash
[root@localhost ~]# find /home -user 1001
/home/master/test1.txt
/home/master/test2.txt
/home/tester1
/home/tester1/.mozilla
/home/tester1/.mozilla/extensions
/home/tester1/.mozilla/plugins
/home/tester1/.bash_logout
/home/tester1/.bash_profile
/home/tester1/.bashrc
/home/tester1/.cache
/home/tester1/.cache/gdm
/home/tester1/.cache/gdm/session.log
/home/tester1/.cache/imsettings
/home/tester1/.cache/imsettings/log
/home/tester1/.cache/libgweather
/home/tester1/.cache/evolution
/home/tester1/.cache/evolution/addressbook
/home/tester1/.cache/evolution/addressbook/trash
/home/tester1/.cache/evolution/calendar
/home/tester1/.cache/evolution/calendar/trash
/home/tester1/.cache/evolution/mail
/home/tester1/.cache/evolution/mail/trash
/home/tester1/.cache/evolution/memos
/home/tester1/.cache/evolution/memos/trash
/home/tester1/.cache/evolution/sources
/home/tester1/.cache/evolution/sources/trash
/home/tester1/.cache/evolution/tasks
/home/tester1/.cache/evolution/tasks/trash
/home/tester1/.cache/gnome-shell
/home/tester1/.cache/gnome-shell/update-check-3.25.4
/home/tester1/.cache/abrt
/home/tester1/.cache/abrt/applet_dirlist
/home/tester1/.cache/abrt/lastnotification
/home/tester1/.cache/tracker
/home/tester1/.cache/tracker/db-version.txt
/home/tester1/.cache/tracker/meta.db
/home/tester1/.cache/tracker/db-locale.txt
/home/tester1/.cache/tracker/meta.db-wal
/home/tester1/.cache/tracker/meta.db-shm
/home/tester1/.cache/tracker/ontologies.gvdb
/home/tester1/.cache/tracker/parser-sha1.txt
/home/tester1/.cache/tracker/locale-for-miner-user-guides.txt
/home/tester1/.cache/tracker/locale-for-miner-apps.txt
/home/tester1/.cache/tracker/last-crawl.txt
/home/tester1/.cache/tracker/first-index.txt
/home/tester1/.cache/event-sound-cache.tdb.875cd10838a747409d35d45025acedbb.x86_64-redhat-linux-gnu
/home/tester1/.cache/gnome-software
/home/tester1/.cache/gnome-software/3.22
/home/tester1/.cache/gnome-software/3.22/flatpak
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/config
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/objects
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/tmp
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/tmp/cache
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/extensions
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/state
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/refs
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/refs/heads
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/repo/refs/remotes
/home/tester1/.cache/gnome-software/3.22/flatpak/installation-tmp/.changed
/home/tester1/.cache/gnome-software/3.22/ratings
/home/tester1/.cache/gnome-software/3.22/ratings/odrs.json
/home/tester1/.cache/gnome-software/3.22/extensions
/home/tester1/.cache/gnome-software/3.22/extensions/gnome.json
/home/tester1/.cache/gstreamer-1.0
/home/tester1/.cache/gstreamer-1.0/registry.x86_64.bin
/home/tester1/.cache/media-art
/home/tester1/.cache/yelp
/home/tester1/.cache/yelp/WebKitCache
/home/tester1/.cache/yelp/WebKitCache/Version 11
/home/tester1/.cache/yelp/WebKitCache/Version 11/salt
/home/tester1/.cache/yelp/WebKitCache/Version 11/Blobs
/home/tester1/.dbus
/home/tester1/.dbus/session-bus
/home/tester1/.dbus/session-bus/875cd10838a747409d35d45025acedbb-0
/home/tester1/.config
/home/tester1/.config/imsettings
/home/tester1/.config/gnome-session
/home/tester1/.config/gnome-session/saved-session
/home/tester1/.config/pulse
/home/tester1/.config/pulse/875cd10838a747409d35d45025acedbb-device-volumes.tdb
/home/tester1/.config/pulse/875cd10838a747409d35d45025acedbb-stream-volumes.tdb
/home/tester1/.config/pulse/875cd10838a747409d35d45025acedbb-card-database.tdb
/home/tester1/.config/pulse/cookie
/home/tester1/.config/pulse/875cd10838a747409d35d45025acedbb-default-sink
/home/tester1/.config/pulse/875cd10838a747409d35d45025acedbb-default-source
/home/tester1/.config/i1/.local/share/app-info/xmls
/home/tester1/.local/share/app-info/xmls/extensions-web.xml
/home/tester1/.esd_auth
/home/tester1/바탕화면
/home/tester1/다운로드
/home/tester1/서식
/home/tester1/공개
/home/tester1/문서
/home/tester1/음악
/home/tester1/사진
/home/tester1/비디오
/home/tester1/.bash_history

1003을 삭제해보자

[root@localhost ~]# ls /home/
master  tester1  tester2  tester3
[root@localhost ~]# ls -l /home/
합계 8
drwx---rwx. 16 master  master  4096  8월 14 12:30 master
drwx------. 15 tester1 tester1 4096  8월 14 12:31 tester1
drwx------.  5 tester2 tester2  128  8월 14 11:17 tester2
drwx------.  4    1003    1003  107  8월 14 12:55 tester3
[root@localhost ~]# find /home/ -user 1003 -exec rm -r {} \;
find: ‘/home/tester3’: 그런 파일이나 디렉터리가 없습니다
[root@localhost ~]# ls
HelloWorld.class  anaconda-ks.cfg       sub1      공개      문서      비디오  서식
HelloWorld.java   initial-setup-ks.cfg  test.txt  다운로드  바탕화면  사진    음악
[root@localhost ~]# ls -l /home/
합계 8
drwx---rwx. 16 master  master  4096  8월 14 12:30 master
drwx------. 15 tester1 tester1 4096  8월 14 12:31 tester1
drwx------.  5 tester2 tester2  128  8월 14 11:17 tester2

그룹 관리 명령

UID와 EUID

사용자 로그인 정보 확인하기 : who

[master@localhost ~]$ who -r
         run-level 5  2018-08-14 10:09                   last=3
[master@localhost ~]$ who -m
master   pts/0        2018-08-14 14:54 (:0)
[master@localhost ~]$ who -H
NAME     LINE         TIME             COMMENT
master   pts/0        2018-08-14 14:54 (:0)
tester1  tty2         2018-08-14 14:55
master   :0           2018-08-14 11:07 (:0)
[master@localhost ~]$ who -q
master tester1 master
# users=3
[master@localhost ~]$ who -b
         system boot  2018-08-14 09:54

w 명령

[master@localhost ~]$ w
 14:59:07 up  5:05,  7 users,  load average: 0.04, 0.15, 0.15
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
master   pts/0    :0               14:54    3.00s  0.12s  0.05s w
tester1  tty2                      14:55    3:31   0.04s  0.04s -bash
master   :0       :0               11:07   ?xdm?   2:52   0.24s /usr/libexec/gn

[master@localhost ~]$ w
 15:00:04 up  5:06,  7 users,  load average: 0.50, 0.22, 0.17
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
master   pts/0    :0               14:54    4.00s  0.11s  0.03s w
tester2  tty2                      14:59   12.00s  0.06s  0.02s ping localhost
master   :0       :0               11:07   ?xdm?   2:54   0.25s /usr/libexec/gn

ping localhost 끄는건 ctrl + c

안드로이드는 linux 애플은 Devian

last 명령

[master@localhost ~]$ last | more
tester2  tty2                          Tue Aug 14 14:59   still logged in   
tester1  tty2                          Tue Aug 14 14:55 - 14:59  (00:04)    
master   pts/0        :0               Tue Aug 14 14:54   still logged in   
master   pts/1        :0               Tue Aug 14 12:14 - 14:53  (02:39)    
master   pts/0        :0               Tue Aug 14 11:08 - 14:53  (03:44)    
master   :0           :0               Tue Aug 14 11:07   still logged in   
root     pts/1        :0               Tue Aug 14 10:47 - 11:07  (00:20)    
root     pts/0        :0               Tue Aug 14 10:46 - 11:07  (00:21)    
tester1  tty3                          Tue Aug 14 10:44 - 14:54  (04:10)    
master   tty2                          Tue Aug 14 10:43 - 14:55  (04:11)    
root     :0           :0               Tue Aug 14 10:43 - 11:07  (00:24)    
root     :1           :1               Tue Aug 14 10:42 - 10:43  (00:00)    
tester1  pts/0        :0               Tue Aug 14 10:24 - 10:43  (00:19)    
tester1  :0           :0               Tue Aug 14 10:23 - 10:43  (00:20)    
root     pts/0        :0               Tue Aug 14 10:19 - 10:22  (00:03)    
root     :0           :0               Tue Aug 14 10:19 - 10:22  (00:03)    
root     tty1                          Tue Aug 14 10:07 - 10:09  (00:02)    
root     tty1                          Tue Aug 14 10:04 - 10:07  (00:02)    
root     pts/0        :0               Tue Aug 14 10:03 - 10:04  (00:00)    
root     :0           :0               Tue Aug 14 10:03 - 10:19  (00:15)    
master   pts/0        :0               Tue Aug 14 10:02 - 10:03  (00:00)    
master   :0           :0               Tue Aug 14 09:54 - 10:03  (00:08)    
reboot   system boot  3.10.0-862.9.1.e Tue Aug 14 09:54 - 15:10  (05:16)    
reboot   system boot  3.10.0-862.9.1.e Tue Aug 14 09:41 - 15:10  (05:29)    
reboot   system boot  3.10.0-862.9.1.e Mon Aug 13 17:26 - 15:10  (21:43)    
master   pts/0        :0               Mon Aug 13 17:14 - 17:22  (00:07)    
master   :0           :0               Mon Aug 13 17:14 - down   (00:08)    
master   pts/0        :0               Mon Aug 13 17:13 - 17:14  (00:00)    
master   :0           :0               Mon Aug 13 17:13 - 17:14  (00:00)    
root     pts/0        :0               Mon Aug 13 17:11 - 17:13  (00:01)    
root     :0           :0               Mon Aug 13 17:11 - 17:13  (00:02)    
master   :0           :0               Mon Aug 13 17:09 - 17:11  (00:01)    
reboot   system boot  3.10.0-862.9.1.e Mon Aug 13 17:08 - 17:23  (00:14)    
master   pts/0        :0               Mon Aug 13 12:03 - 17:08  (05:04)    
master   :0           :0               Mon Aug 13 12:02 - down   (05:05)    
root     pts/0        :0               Mon Aug 13 11:57 - 12:02  (00:04)    
root     :0           :0               Mon Aug 13 11:31 - 12:02  (00:31)    
reboot   system boot  3.10.0-862.el7.x Mon Aug 13 11:29 - 17:08  (05:38)    
master   :0           :0               Mon Aug 13 11:28 - down   (00:01)    
reboot   system boot  3.10.0-862.el7.x Mon Aug 13 11:27 - 11:29  (00:01)    
master   pts/0        :0               Mon Aug 13 11:26 - 11:26  (00:00)    
master   pts/0        :0               Mon Aug 13 11:25 - 11:25  (00:00)    
master   pts/0        :0               Mon Aug 13 11:25 - 11:25  (00:00)    
master   :0           :0               Mon Aug 13 20:18 - down   (-8:-50)   
reboot   system boot  3.10.0-862.el7.x Mon Aug 13 20:15 - 11:27  (-8:-48)   

wtmp begins Mon Aug 13 20:15:53 2018

위와 같은 환경일 때 아주 유용하게 써먹을 수 있다

[master@localhost ~]$ whoami
master
[master@localhost ~]$ who am i
master   pts/0        2018-08-14 14:54 (:0)
[master@localhost ~]$ id
uid=1000(master) gid=1000(master) groups=1000(master) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023

passwd 명령 활용하기

[master@localhost ~]$ su - root
암호:
마지막 로그인: 화  8월 14 12:31:10 KST 2018 일시 pts/1
[root@localhost ~]# whoami
root
[root@localhost ~]# passwd -l tester2
tester2 사용자의 비밀 번호 잠금
passwd: 성공

계정 블락됨

다시 계정 차단 풀어주면

[root@localhost ~]# passwd -u tester2
tester2 사용자의 비밀 번호 잠금 해제 중
passwd: 성공

[root@localhost ~]# grep tester2 /etc/shadow
tester2:$6$W7w3ZI5D$JKMsnOVcB/pCPCMafecjW1tTmswQE62yEdndHptExEzDy7UJOAQVpBjt99s6n73/.ARtFi2iCCtOkmx7ffDNY1:17757:0:99999:7:::
[root@localhost ~]# passwd -l tester2
tester2 사용자의 비밀 번호 잠금
passwd: 성공
[root@localhost ~]# grep tester2 /etc/shadow
tester2:!!$6$W7w3ZI5D$JKMsnOVcB/pCPCMafecjW1tTmswQE62yEdndHptExEzDy7UJOAQVpBjt99s6n73/.ARtFi2iCCtOkmx7ffDNY1:17757:0:99999:7:::

락을 걸면 grep으로 확인 시 암호 앞에 !!가 붙어있는 것을 확인할 수 있다.

파일 및 디렉터리의 소유자와 소유 그룹 변경하기

프로세스의 개념

[root@localhost tester2]# ps
   PID TTY          TIME CMD
 25214 pts/0    00:00:00 su
 25222 pts/0    00:00:00 bash
 25844 pts/0    00:00:00 su
 25885 pts/0    00:00:00 su
 25891 pts/0    00:00:00 bash
 26048 pts/0    00:00:00 ps

[master@localhost ~]$ ps
   PID TTY          TIME CMD
 25161 pts/0    00:00:00 bash
 26074 pts/0    00:00:00 bash
 26514 pts/0    00:00:00 ps
[master@localhost ~]$ ps -f
UID         PID   PPID  C STIME TTY          TIME CMD
master    25161  25151  0 15:16 pts/0    00:00:00 bash
master    26074  26073  0 15:54 pts/0    00:00:00 -bash
master    26526  26074  0 15:55 pts/0    00:00:00 ps -f
[master@localhost ~]$ ps a
   PID TTY      STAT   TIME COMMAND
 17606 tty5     Ss+    0:00 /sbin/agetty --noclear tty5 linux
 17607 tty6     Ss+    0:00 /sbin/agetty --noclear tty6 linux
 18780 tty1     Ssl+   0:33 /usr/bin/X :0 -background none -noreset -audit 4 -ve
 24515 tty3     Ss+    0:00 /sbin/agetty --noclear tty3 linux
 25161 pts/0    Ss     0:00 bash
 25214 pts/0    S      0:00 su - root
 25222 pts/0    S      0:00 -bash
 25320 tty2     Ss+    0:00 -bash
 26073 pts/0    S      0:00 su - master
 26074 pts/0    S      0:00 -bash
 26528 pts/0    R+     0:00 ps a
[master@localhost ~]$ ps au
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      17606  0.0  0.0 110088   860 tty5     Ss+  10:45   0:00 /sbin/agetty -
root      17607  0.0  0.0 110088   860 tty6     Ss+  10:45   0:00 /sbin/agetty -
root      18780  0.1  2.3 328344 43564 tty1     Ssl+ 11:07   0:33 /usr/bin/X :0 
root      24515  0.0  0.0 110088   860 tty3     Ss+  14:54   0:00 /sbin/agetty -
master    25161  0.0  0.1 116612  3276 pts/0    Ss   15:16   0:00 bash
root      25214  0.0  0.2 242372  4408 pts/0    S    15:16   0:00 su - root
root      25222  0.0  0.1 116620  3444 pts/0    S    15:16   0:00 -bash
tester2   25320  0.0  0.1 116752  3488 tty2     Ss+  15:18   0:00 -bash
root      26073  0.0  0.1 241972  3600 pts/0    S    15:54   0:00 su - master
master    26074  0.0  0.1 116624  3240 pts/0    S    15:54   0:00 -bash
master    26538  0.0  0.1 155324  1876 pts/0    R+   15:56   0:00 ps au

ps -ef 
ps aux
위 두가지를 제일 많이 쓴다

전체 검색하면서 grep을 더해 firefox만 검색

[master@localhost ~]$ ps aux | grep firefox
master    26129 10.0 11.3 2330652 212388 ?      Sl   15:54   0:25 /usr/lib64/firefox/firefox
master    26352  3.6  6.1 1835160 114132 ?      Sl   15:55   0:08 /usr/lib64/firefox/firefox -contentproc -childID 1 -isForBrowser -boolPrefs 300:0| -stringPrefs 286:36;dd1a8478-39fa-44bb-baa7-3f94da4795fc| -schedulerPrefs 0001,2 -greomni /usr/lib64/firefox/omni.ja -appomni /usr/lib64/firefox/browser/omni.ja -appdir /usr/lib64/firefox/browser 26129 tab
master    26456  0.2  2.3 1715132 44364 ?       Sl   15:55   0:00 /usr/lib64/firefox/firefox -contentproc -childID 3 -isForBrowser -boolPrefs 300:0| -stringPrefs 286:36;dd1a8478-39fa-44bb-baa7-3f94da4795fc| -schedulerPrefs 0001,2 -greomni /usr/lib64/firefox/omni.ja -appomni /usr/lib64/firefox/browser/omni.ja -appdir /usr/lib64/firefox/browser 26129 tab
master    26569  0.0  0.0 116868  1036 pts/0    R+   15:59   0:00 grep --color=auto firefox
[master@localhost ~]$ ps -u master
   PID TTY          TIME CMD
 19043 ?        00:00:00 gnome-keyring-d
 19047 ?        00:00:00 gnome-session-b
 19056 ?        00:00:00 dbus-launch
 19057 ?        00:00:00 dbus-daemon
 19090 ?        00:00:00 imsettings-daem
 19094 ?        00:00:00 gvfsd
 19099 ?        00:00:00 gvfsd-fuse
 19184 ?        00:00:00 ssh-agent
 19202 ?        00:00:00 at-spi-bus-laun
 19207 ?        00:00:00 dbus-daemon
 19212 ?        00:00:00 at-spi2-registr
 19243 ?        00:01:53 gnome-shell
 19252 ?        00:00:02 pulseaudio
 19288 ?        00:00:00 xdg-permission-
 19289 ?        00:00:00 gnome-shell-cal
 19298 ?        00:00:00 evolution-sourc
 19313 ?        00:00:00 mission-control
 19317 ?        00:00:00 gvfs-udisks2-vo
 19323 ?        00:00:00 goa-daemon
 19328 ?        00:00:00 gvfs-afc-volume
 19345 ?        00:00:00 goa-identity-se
 19347 ?        00:00:00 gvfs-gphoto2-vo
 19360 ?        00:00:00 gvfs-mtp-volume
 19370 ?        00:00:00 gvfs-goa-volume
 19401 ?        00:00:00 gsd-account
 19404 ?        00:00:00 gsd-mouse
 19408 ?        00:00:00 gsd-power
 19412 ?        00:00:00 gsd-print-notif
 19414 ?        00:00:00 gsd-rfkill
 19416 ?        00:00:00 gsd-screensaver
 19422 ?        00:00:00 gsd-smartcard
 19427 ?        00:00:00 gsd-wacom
 19430 ?        00:00:00 gsd-xsettings
 19432 ?        00:00:00 gsd-sound
 19435 ?        00:00:00 gsd-sharing
 19449 ?        00:00:00 gsd-a11y-keyboa
 19451 ?        00:00:00 gsd-a11y-settin
 19452 ?        00:00:00 gsd-clipboard
 19455 ?        00:00:01 gsd-color
 19459 ?        00:00:00 gsd-datetime
 19462 ?        00:00:00 gsd-housekeepin
 19465 ?        00:00:00 gsd-keyboard
 19471 ?        00:00:00 gsd-media-keys
 19500 ?        00:00:00 gsd-printer
 19514 ?        00:00:01 nautilus-deskto
 19529 ?        00:00:00 gvfsd-trash
 19538 ?        00:00:00 seapplet
 19545 ?        00:00:00 abrt-applet
 19551 ?        00:00:00 evolution-alarm
 19557 ?        00:00:00 tracker-store
 19568 ?        00:00:00 evolution-calen
 19571 ?        00:00:12 vmtoolsd
 19584 ?        00:00:01 tracker-extract
 19587 ?        00:00:00 tracker-miner-a
 19591 ?        00:00:00 tracker-miner-f
 19600 ?        00:00:00 tracker-miner-u
 19673 ?        00:00:00 dconf-service
 19695 ?        00:00:00 evolution-calen
 19742 ?        00:00:00 evolution-calen
 19799 ?        00:00:00 evolution-addre
 19849 ?        00:00:00 evolution-addre
 20046 ?        00:00:04 ibus-daemon
 20051 ?        00:00:00 ibus-dconf
 20053 ?        00:00:00 ibus-ui-gtk3
 20057 ?        00:00:00 ibus-x11
 20063 ?        00:00:00 ibus-portal
 20073 ?        00:00:00 ibus-engine-sim
 20078 ?        00:00:01 ibus-engine-han
 20531 ?        00:00:00 gvfsd-metadata
 25151 ?        00:00:02 gnome-terminal-
 25159 ?        00:00:00 gnome-pty-helpe
 25161 pts/0    00:00:00 bash
 26074 pts/0    00:00:00 bash
 26129 ?        00:00:28 firefox
 26352 ?        00:00:10 Web Content
 26376 ?        00:00:00 gconfd-2
 26456 ?        00:00:00 Web Content
 26627 pts/0    00:00:00 ps

kill 명령을 이용해 프로세스 종료하기

[master@localhost ~]$ kill -9 26129
[master@localhost ~]$ ps aux | grep firefox
master    26816  0.0  0.0 116868  1036 pts/0    R+   16:03   0:00 grep --color=auto firefox

프로세스 관리 도구

[master@localhost ~]$ top

top - 16:04:19 up  6:10,  7 users,  load average: 0.08, 0.27, 0.25
Tasks: 222 total,   1 running, 221 sleeping,   0 stopped,   0 zombie
%Cpu(s): 11.3 us,  2.1 sy,  0.0 ni, 86.6 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1865276 total,   157412 free,   809992 used,   897872 buff/cache
KiB Swap:  2097148 total,  2086140 free,    11008 used.   805460 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND     
 19243 master    20   0 3045160 222092  57844 S  9.3 11.9   1:56.61 gnome-shell 
 18780 root      20   0  324304  39704  13116 S  3.3  2.1   0:35.97 X           
 25151 master    20   0  861252  29284  18620 S  2.0  1.6   0:03.33 gnome-term+ 
     9 root      20   0       0      0      0 S  0.3  0.0   0:02.82 rcu_sched   
 19514 master    20   0 1041568  30036  19408 S  0.3  1.6   0:01.93 nautilus-d+ 
 20046 master    20   0  453296   5640   3548 S  0.3  0.3   0:04.97 ibus-daemon 
 26554 root      20   0       0      0      0 S  0.3  0.0   0:00.14 kworker/0:3 
     1 root      20   0  472424   5328   3244 S  0.0  0.3   0:07.86 systemd     
     2 root      20   0       0      0      0 S  0.0  0.0   0:00.02 kthreadd    
     3 root      20   0       0      0      0 S  0.0  0.0   0:01.47 ksoftirqd/0 
     5 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 kworker/0:+ 
     7 root      rt   0       0      0      0 S  0.0  0.0   0:00.00 migration/0 
     8 root      20   0       0      0      0 S  0.0  0.0   0:00.00 rcu_bh      
    10 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 lru-add-dr+ 
    11 root      rt   0       0      0      0 S  0.0  0.0   0:00.49 watchdog/0  
    13 root      20   0       0      0      0 S  0.0  0.0   0:00.00 kdevtmpfs   
    14 root       0 -20       0      0      0 S  0.0  0.0   0:00.00 netns   

동적으로 막 바뀜

pstree

[master@localhost ~]$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager─┬─dhclient
        │                └─2*[{NetworkManager}]
        ├─VGAuthService
        ├─2*[abrt-watch-log]
        ├─abrtd
        ├─accounts-daemon───2*[{accounts-daemon}]
        ├─3*[agetty]
        ├─alsactl
        ├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
        │                 └─3*[{at-spi-bus-laun}]
        ├─at-spi2-registr───2*[{at-spi2-registr}]
        ├─atd
        ├─auditd─┬─audispd─┬─sedispatch
        │        │         └─{audispd}
        │        └─{auditd}
        ├─avahi-daemon───avahi-daemon
        ├─chronyd
        ├─colord───2*[{colord}]
        ├─crond
        ├─cupsd
        ├─2*[dbus-daemon───{dbus-daemon}]
        ├─dbus-launch
        ├─dconf-service───2*[{dconf-service}]
        ├─dnsmasq───dnsmasq
        ├─evolution-addre─┬─evolution-addre───5*[{evolution-addre}]
        │                 └─5*[{evolution-addre}]
        ├─evolution-calen─┬─evolution-calen───5*[{evolution-calen}]
        │                 ├─evolution-calen───7*[{evolution-calen}]
        │                 └─5*[{evolution-calen}]
        ├─evolution-sourc───4*[{evolution-sourc}]
        ├─firewalld───{firewalld}
        ├─gconfd-2
        ├─gdm─┬─X───{X}
        │     ├─gdm-session-wor─┬─gnome-session-b─┬─abrt-applet───2*[{abrt-appl+
        │     │                 │                 ├─evolution-alarm───6*[{evolu+
        │     │                 │                 ├─gnome-shell───9*[{gnome-she+
        │     │                 │                 ├─gsd-a11y-keyboa───3*[{gsd-a+
        │     │                 │                 ├─gsd-a11y-settin───3*[{gsd-a+
        │     │                 │                 ├─gsd-account───3*[{gsd-accou+
        │     │                 │                 ├─gsd-clipboard───2*[{gsd-cli+
        │     │                 │                 ├─gsd-color───3*[{gsd-color}]
        │     │                 │                 ├─gsd-datetime───3*[{gsd-date+
        │     │                 │                 ├─gsd-housekeepin───3*[{gsd-h+
        │     │                 │                 ├─gsd-keyboard───3*[{gsd-keyb+
        │     │                 │                 ├─gsd-media-keys───3*[{gsd-me+
        │     │                 │                 ├─gsd-mouse───3*[{gsd-mouse}]
        │     │                 │                 ├─gsd-power───3*[{gsd-power}]
        │     │                 │                 ├─gsd-print-notif───2*[{gsd-p+
        │     │                 │                 ├─gsd-rfkill───2*[{gsd-rfkill+
        │     │                 │                 ├─gsd-screensaver───2*[{gsd-s+
        │     │                 │                 ├─gsd-sharing───3*[{gsd-shari+
        │     │                 │                 ├─gsd-smartcard───4*[{gsd-sma+
        │     │                 │                 ├─gsd-sound───3*[{gsd-sound}]
        │     │                 │                 ├─gsd-wacom───2*[{gsd-wacom}]
        │     │                 │                 ├─gsd-xsettings───3*[{gsd-xse+
        │     │                 │                 ├─nautilus-deskto───3*[{nauti+
        │     │                 │                 ├─seapplet
        │     │                 │                 ├─ssh-agent
        │     │                 │                 ├─tracker-extract───14*[{trac+
        │     │                 │                 ├─tracker-miner-a───3*[{track+
        │     │                 │                 ├─tracker-miner-f───3*[{track+
        │     │                 │                 ├─tracker-miner-u───3*[{track+
        │     │                 │                 └─3*[{gnome-session-b}]
        │     │                 └─2*[{gdm-session-wor}]
        │     └─3*[{gdm}]
        ├─gnome-keyring-d───3*[{gnome-keyring-d}]
        ├─gnome-shell-cal───6*[{gnome-shell-cal}]
        ├─gnome-terminal-─┬─bash───su───bash───su───bash───pstree
        │                 ├─gnome-pty-helpe
        │                 └─3*[{gnome-terminal-}]
        ├─goa-daemon───4*[{goa-daemon}]
        ├─goa-identity-se───3*[{goa-identity-se}]
        ├─gsd-printer───2*[{gsd-printer}]
        ├─gssproxy───5*[{gssproxy}]
        ├─gvfs-afc-volume───3*[{gvfs-afc-volume}]
        ├─gvfs-goa-volume───2*[{gvfs-goa-volume}]
        ├─gvfs-gphoto2-vo───2*[{gvfs-gphoto2-vo}]
        ├─gvfs-mtp-volume───2*[{gvfs-mtp-volume}]
        ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-vo}]
        ├─gvfsd───2*[{gvfsd}]
        ├─gvfsd-fuse───5*[{gvfsd-fuse}]
        ├─gvfsd-metadata───2*[{gvfsd-metadata}]
        ├─gvfsd-trash───2*[{gvfsd-trash}]
        ├─ibus-portal───2*[{ibus-portal}]
        ├─ibus-x11───2*[{ibus-x11}]
        ├─imsettings-daem─┬─ibus-daemon─┬─ibus-dconf───3*[{ibus-dconf}]
        │                 │             ├─ibus-engine-han───2*[{ibus-engine-han+
        │                 │             ├─ibus-engine-sim───2*[{ibus-engine-sim+
        │                 │             ├─ibus-ui-gtk3───3*[{ibus-ui-gtk3}]
	│                 │             └─2*[{ibus-daemon}]
        │                 └─3*[{imsettings-daem}]
        ├─ksmtuned───sleep
        ├─libvirtd───16*[{libvirtd}]
        ├─login───bash
        ├─lsmd
        ├─master─┬─pickup
        │        └─qmgr
        ├─mission-control───3*[{mission-control}]
        ├─packagekitd───2*[{packagekitd}]
        ├─polkitd───5*[{polkitd}]
        ├─pulseaudio───2*[{pulseaudio}]
        ├─rngd
        ├─rpcbind
        ├─rsyslogd───2*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─smartd
        ├─sshd
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─tracker-store───7*[{tracker-store}]
        ├─tuned───4*[{tuned}]
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        ├─vmtoolsd───{vmtoolsd}
        ├─vmtoolsd
        ├─wpa_supplicant
        └─xdg-permission-───2*[{xdg-permission-}]

시스템 정보 : GNOME

[master@localhost ~]$ gedit &
[1] 27226
[master@localhost ~]$ ls
HelloWorld.class  sub1      test1.txt  공개      문서      비디오  서식
HelloWorld.java   test.txt  test2.txt  다운로드  바탕화면  사진    음악
[master@localhost ~]$ jobs
[1]+  Running                 gedit &
[master@localhost ~]$ jobs
[1]+  Done                    gedit

[master@localhost ~]$ gedit
^Z
[1]+  Stopped                 gedit
[master@localhost ~]$ bg %1
[1]+ gedit &
[master@localhost ~]$ jobs
[1]+  Running                 gedit &

예제 해보기

[master@localhost ~]$ jobs
[master@localhost ~]$ sleep 100
^Z
[1]+  Stopped                 sleep 100
[master@localhost ~]$ bg %1
[1]+ sleep 100 &
[master@localhost ~]$ jobs
[1]+  Running                 sleep 100 &
[master@localhost ~]$ fg
sleep 100
^C
[master@localhost ~]$ sleep 100
^C
[master@localhost ~]$ sleep 100&
[1] 27416
[master@localhost ~]$ kill %1
[1]+  종료됨               sleep 100
반응형

댓글