시스템 명령어(계속)



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

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

+ Recent posts