본문 바로가기
컴퓨터과학[3-2]/U.N.I.X

UNIX - [제4강] 기본 운영01

by boolean 2016. 7. 19.
728x90

UNIX - [제 4강] 기본 운영01

● 사용자 계정 관리 ● 그룹 계정 관리 ● 파일/디렉터리 상태 출력 명령

UNIX 용어정리

  • 슈퍼 유저
    root 계정을 가진 관리자이다. root 권한의 계정은 다른 사용자의 파일을 수정 또는 삭제할 수 있으며 관리자 명령을 수행할 수 있다.
  • 사용자 계정과 홈 디렉터리
    사용자 계정은 시스템의 사용을 위해 부여된 id이며 특정 그룹의 멤버이다. 홈 디렉터리는 로그인 했을 때 위치하는 기본 작업 디렉터리이다.
  • passwd 파일
    /etc/passwd에는 시스템을 사용하는 사용자 계정에 관한 정보가 저장되어 있다. 계정명, 암호, UID, GID, 홈 디렉터리, 기본 쉘을 포함한다. 이때 실제 사용자의 암호는 /etc/shadow 파일에 암호화되어 저장된다.
  • 접근권한
    소유자는 파일이나 디렉터리에 읽기(r)/쓰기(w)/실행(x) 권한을 소유자(u)/그룹(g)/외부(o)를 구분하여 지정할 수 있다.

요점정리

  1. 사용자 계정을 추가, 삭제, 변경하는 명령의 사용법을 간단히 기술하고 관련이 있는 파일에 관해 설명하시오.
    • 계정을 추가하는 명령은 ‘useradd 사용자명’, 삭제하는 명령은 ‘userdel 사용자명’, 변경하는 명령은 ‘usermod 사용자명’이다.
    • 참조하는 파일은 다음과 같다.
      /etc/passwd : 사용자 계정의 자세한 정보
      /etc/shadow : 암호화된 패스워드
      /etc/skel : 사용자 홈 디렉터리에 복사되는 파일들의 템플릿
      /etc/group : 그룹 정보, 그룹명과 GID 나열
      /etc/login.defs : 사용자 계정 추가 시 적용되는 설정
      /etc/default/useradd : 홈 디렉터리, 쉘의 종류 등 정보
  2. 디렉터리의 내용을 보여주는 ls 명령의 사용법을 자세히 설명하시오.
    • ls [옵션] [파일명]...
      파일명 : 나열할 파일 이름 또는 디렉터리 이름이다. 파일명을 주면 해당 파일 정보만 나열하고 파일명을 생략하면 현재 디렉터리의 내용이 나열된다. 디렉터리 이름을 주면 해당 디렉터리의 내용을 나열한다. 여러 파일명을 사용할 수 있는데 파일명에 *나 ?를 사용하면 shell에 의하여 패턴에 맞는 파일의 이름들로 변환된다.
      예를 들어 디렉터리 내에 a.txt, b.txt, cc.txt 파일이 있다고 가정하면 *.txt는 ‘a.txt b.txt cc.txt’로 변환되고 ?.txt는 ‘a.txt b.txt’로 변환된다.
    • -a
      : 숨겨진 파일과 숨겨진 디렉터리 등을 포함하여 나열
    • -l
      : 파일종류/디렉터리/링크 구분, 접근 권한, 링크 수, 소유자, 그룹명, 파일 크기, 최종 수정된 시간, 이름 등 자세한 정보를 나열
    • -F
      : 이름 뒤에 실행 가능한 파일은 '*‘, 디렉터리는 '/'를 붙여서 보여줌
    • -i
      : 파일 및 디렉터리의 inode 번호를 보여줌
    • -s
      : 파일 및 디렉터리의 블록 수(간접 블록 포함)를 보여줌
    • -u
      : 파일 및 디렉터리가 최종 사용된 시간 순서로 보여주며 -l 옵션과 같이 사용하면 최종 사용된 시간을 보여줌
  3. 텍스트 파일의 내용을 보여주는 명령을 나열하고 기능을 간략히 설명하시오.
    • cat 파일명...
      : 파일(들)의 내용을 보여준다.
    • more 파일명...
      : 파일(들)의 내용을 페이지 단위로 보여준다. 패턴 검색이 가능하다.
    • head 파일명...
      : 파일(들)의 앞부분을 보여준다.
    • more 파일명...
      : 파일(들)의 뒷부분을 보여준다.
  4. 현재 디렉터리를 변경하는 명령, 디렉터리를 생성, 삭제하는 명령을 나열하고 기능을 간략히 설명하시오.
    • cd [디렉터리명]
      : 디렉터리명을 생략하면 사용자 계정의 홈 디렉터리로 변경되고 디렉터리명을 지정하면 해당 디렉터리로 변경된다.
      ‘cd ∼’명령도 ‘cd’명령과 동일하다. ∼은 shell에서 홈 디렉터리를 의미한다. ‘.’은 현재 디렉터리이고 ‘..’은 상위 디렉터리이다.
    • mkdir 디렉터리명...
      : 디렉터리(들)를 생성한다.
    • rmdir 디렉터리명...
      : 디렉터리(들)를 삭제한다. 비어있는 디렉터리만 삭제 가능하므로 삭제 이전에 디렉터리 아래에 있는 파일과 디렉터리를 모두 삭제하여야 한다.

연습문제

  • 연습문제1
    리눅스 시스템에서 사용자 계정명, UID, GID, 홈 디렉터리, 쉘의 종류 등 사용자 계정에 대한 자세한 정보가 저장되는 파일은?
    답을 체크하세요
    정답 :
    해설 : 사용자 계정에 대한 자세한 정보가 저장되는 파일은 /etc/passwd이다.

  • 연습문제2
    파일 목록을 보여주는 ls 명령에서 숨김 파일까지 보여주는 옵션은?
    답을 체크하세요
    정답 :
    해설 : 숨김 파일까지 보여주는 옵션은 –a 이다. -i는 inode 번호를 보여주고, -l은 자세한 정보를 보여주며, -F는 파일의 종류를 구별하는 특수 기호를 붙여 보여준다.
  • 연습문제3
    텍스트 파일 ‘memo.txt'의 내용을 스페이스 바를 누를 때마다 20줄 씩 화면에 보여주는 명령어는?
    답을 체크하세요
    정답 :
    해설 : 페이지 단위로 파일의 내용을 보여주는 것은 more 명령어이고 페이지 크기는 ‘-숫자’ 옵션으로 지정한다.
  • 연습문제4
    현재 디렉터리 아래에 있는 ‘mydir' 디렉터리 안에는 'mydoc' 디렉터리만 있고 ’mydoc' 디렉터리는 비어있다. ‘mydir' 디렉터리와 ’mydoc' 디렉터리를 동시에 삭제할 수 있는 명령어는?
    답을 체크하세요
    정답 :
    해설 : mydir 아래에는 mydoc만 있고 mydoc이 비어있다면 'rmdir -p mydir/mydoc' 명령으로 삭제 가능하다. 비어있지 않은 경우 'rm -r mydir' 명령을 사용하여야 한다.
  • 연습문제5
    디렉터리의 접근권한은 보통의 파일 접근권한과 약간 다르다.
    다음 설명에서 잘못된 것은? (r은 읽기, w는 쓰기, x는 실행)
    답을 체크하세요
    정답 :
    해설 : 해당 디렉터리에 rwx 권한이 있다고 해서 포함된 파일에 대해 어떤 권한이 있는 것은 아니다. 파일은 개별적으로 접근 권한이 지정되어 있다.

pratical centos 리눅스 활용 교재 연습문제 풀이

4강 기본 운영(1)

 리눅스 시스템 사용자

사용자 계정에 의해 구분되고 어떤 그룹에 속함

 슈퍼 유저(root)

 root는 시스템 관리자 계정으로 모든 권한을 가짐

 su 명령 : root 또는 다른 사용자 계정의 권한을 가질 수 있는 명령이며 해당 계정의 패

스워드가 필요

 사용법 : su [사용자계정]

∘ 예 : su (root 계정으로 로그인함. root 암호를 알아야 함)

∘ 예 : su namilpark (namilpark 계정으로 로그인. root가 아니라면 암호를 알아야 함)

 /etc/passwd 파일

 사용자 계정 정보를 가진 텍스트 파일

 라인별로 ‘사용자계정:패스워드:UID:GID:코멘트:홈디렉터리:쉘의 종류’를 저장함

∘ 예:namilpark:x:501:501::/home/namilpark:/bin/bash

∘ 사용자 계정 : 사용자의 고유한 계정

∘ 패스워드 : 패스워드가 있음을 ‘x'로 표시

∘ UID(User ID) : 사용자 계정 ID로 시스템에서는 UID로 사용자를 구분 (예 : 501)

∘ GID(Group ID) : 사용자가 속한 그룹의 ID로 그룹에 따라 부여된 권한이 다름 (예 : 501)

∘ 주석

∘ 홈 디렉터리 : 사용자 계정의 기본 디렉터리

∘ 쉘의 종류 : 로그인 시 활성화되는 shell의 종류

 사용자 계정을 추가하는 명령(add a user)

 사용법 : useradd [옵션] 사용자계정

∘ '/home/사용자계정' 디렉터리와 기본 파일들이 생성됨

∘ 사용자 메일박스로 '/var/spool/mail/사용자계정' 파일이 생성됨

 패스워드 생성 명령 : passwd [사용자계정]

 사용자 계정 생성과 관련된 파일들

 패스워드는 /etc/passwd 파일과 별도로 /etc/shadow 파일에 저장됨

 useradd가 참조하는 파일들

∘ /etc/passwd : 사용자 계정 정보

∘ /etc/shadow : 암호화된 패스워드

∘ /etc/skel : 사용자 홈 디렉터리에 복사되는 파일들의 템플릿

.bash_profile, .bashrc, .bash_logout : 로그인쉘 또는 일반 쉘(bash)이 시작될 때 실행되

는 설정 파일

∘ /etc/group : 그룹명과 GID 및 사용자를 나열

∘ /etc/login.defs : 사용자 계정 추가 시 적용되는 설정

-메일 스풀 디렉터리 지정

-패스워드 유효 기간, 패스워드 최소 길이

-UID와 GID의 범위(최소~최대값)

-홈 디렉터리 자동 생성 여부

∘ /etc/default/useradd : 홈 디렉터리, 쉘의 종류 등 정보

-홈 디렉터리 생성 위치 : /home

-쉘의 종류 : /bin/bash, /bin/csh, /bin/ksh

 사용자 계정 삭제

 사용자 계정의 삭제는 바람직하지 않음

삭제 후 새로운 사용자가 기존의 UID를 할당 받을 수 있으므로

 사용자를 삭제하지 않고 로그인을 막는 방법

∘ /etc/shadow 파일에서 암호 부분에 ‘*'와 같은 문자를 삽입

∘ usermod –L 사용자계정 (계정을 Locking함)

 사용법 : userdel [옵션] 사용자계정

∘ -r : 계정 삭제와 동시에 홈 디렉터리와 홈 디렉터리의 파일들, 메일 파일도 삭제

∘ 예 : userdel -r namilpark

 사용자 계정 변경

 사용자가 속해 있는 그룹을 변경하거나 홈 디렉터리를 변경

 사용법 : usermod [옵션] 사용자계정

∘ -e YYYY-MM-DD : 계정 사용 만료일 지정

∘ -g GROUP : 사용자의 소속 그룹을 변경

∘ -s SHELL : 로그인 쉘을 변경(/bin/bash, /bin/csh, /bin/ksh 등)

∘ 예 : usermod -s /bin/csh nipark

∘ 예 : usermod -g staff nipark

 그룹

 사용자의 계정들을 모아서 하나의 집합을 이루는 개념

-그룹에 속한 사용자는 그룹에 부여된 권한을 가짐

-bin, mail, sys 등의 시스템 정의 그룹에는 포함될 수 없음

-같은 그룹 내 사용자의 파일 접근 권한과 다른 그룹 사용자의 파일접근 권한을 다르게 적용

 그룹 계정

그룹별로 할당된 권한, 그룹에 속한 계정에 영향을 줄 수 있음

 관련 파일

/etc/group, /etc/gshadow 등

 새로운 그룹 생성 명령(add a group)

 사용법 : groupadd [옵션] 그룹명

∘ -g GID : 그룹의 ID를 GID로 지정, 기존 GID와 중복되지 않아야

∘ 예 : groupadd staff

∘ 예 : groupadd -g 510 foo

 groups는 사용자가 속한 그룹의 확인 명령

 그룹 삭제 명령(delete a group)

 사용법 : groupdel 그룹명

∘ 예 : groupdel foo

 그룹의 속성 변경 명령(modify a group)

 사용법 : groupmod [옵션] 그룹명

∘ -g GID : 그룹 ID를 변경

∘ -n GROUP : 그룹명을 변경

∘ 예 : groupmod -g 511 foo

∘ 예 : groupmod -n chouchou foo

 파일 및 디렉터리 상태 출력 명령(list)

 디렉터리의 파일 목록 확인 명령

 사용법 : ls [옵션] [파일명]...

∘ 파일명 : 나열할 파일 이름 또는 디렉터리 이름, 여러 파일명 사용 가능

∘ -a : 숨겨진 파일과 숨겨진 디렉터리 등 모든 이름을 포함

∘ -l : 파일종류(디렉터리/링크 구분), 접근 권한, 링크 수, 소유자, 그룹명, 파일 크기, 최종

수정된 시간, 이름 등 자세한 정보를 나열

∘ -F : 실행 가능한 파일은 '*", 디렉터리는 '/'를 붙여서 보여줌

∘ -i : inode 번호를 보여줌

∘ -s : 파일 또는 디렉터리의 블록 수(간접 블록 포함)를 보여줌

∘ -u : 파일 또는 디렉터리가 최종 사용된 시간

∘ -R : 서브디렉터리의 목록까지 보여줌

 사용 예

∘ ls (현재 디렉터리의 파일 나열)

∘ ls –a /home/nipark (/home/nipark 디렉터리의 모든 파일 나열)

∘ ls -al *.c (현재 디렉터리의 .c로 끝나는 모든 파일의 자세한 정보 나열)

∘ *는 임의 길이 문자열이나 .으로 시작하는 파일 이름을 제외

∘ ls /home/nipark/? (/home/nipark 디렉터리에서 이름이 한 글자인 파일 나열)

∘ ?는 1개 문자이나 .으로 시작하는 파일 이름은 매칭이 안됨

 현재 디렉터리를 알려주는 명령(print working directory)

 사용법 : pwd

 파일의 내용을 화면에 출력하는 명령(concatenate)

 사용법 : cat [옵션] [파일명]...

∘ 파일명 : 출력할 파일 이름, 여러 파일명 사용 가능

∘ -n : 줄 번호를 파일 내용과 같이 출력

∘ 예 : cat -n ~/.bashrc (홈 디렉터리의 .bashrc 파일 내용을 줄 번호와 같이 출력)

 페이지 단위로 파일의 내용을 출력하는 명령

 사용법 : more [옵션] [+줄번호] [파일명]...

∘ 파일명 : 출력할 파일 이름, 여러 파일명 사용 가능

∘ -숫자 : 페이지의 크기(줄 수) 지정, Space bar를 누를 때 이동하는 줄 수

∘ +줄번호 : 파일의 줄 번호에서부터 출력

 more의 내부 명령

∘ space 키 : 다음 페이지로 진행

∘ q : 출력을 중단하고 more 명령을 마침

∘ /pattern : 특정 단어 등 패턴을 검색

 파일의 앞부분을 지정한 행 수만큼 출력하는 명령

 사용법 : head [옵션] [파일명]...

∘ 파일명 : 출력할 파일 이름, 여러 파일명 사용 가능

∘ -숫자 : 출력할 줄 수 지정

 파일의 뒷부분을 지정된 행 수만큼 출력하는 명령

 사용법 : tail [옵션] [파일명]...

∘ 파일명 : 출력할 파일 이름, 여러 파일명 사용 가능

∘ -숫자 : 출력할 줄 수 지정

∘ -f : 파일 내용이 추가되면 추가된 부분을 보여줌

 명령 사용 예

 more 명령 사용 예

∘ more -20 +10 /etc/services (/etc/services 파일의 10번째 줄부터 20줄씩 한 페이지로

출력함. <space> 키로 페이지 전환)

 head 명령 사용 예

∘ head -3 /etc/*.conf

 tail 명령 사용 예

∘ tail -f /var/log/messages

 디렉터리를 변경하는 명령(change directory)

 현재의 작업 디렉터리에서 새로운 작업 디렉터리로 디렉터리를 변경(change directory)

 사용법 : cd [디렉터리명]

∘ 상대경로 : 현재 디렉터리로부터 시작하는 경로명을 지정

∘ 절대경로 : / 디렉터리로부터 시작하는 경로명을 지정

 cd 명령의 사용 예

∘ 예 : cd .. (상위 디렉터리로 이동)

∘ 예 : cd Sub (하위 디렉터리 Sub로 이동)

∘ 예 : cd /home/nipark/Sub (절대 경로 사용하여 해당 디렉터리로 이동)

 디렉터리를 만들어 주는 명령(make directory)

 사용법 :mkdir [옵션] 디렉터리명...

∘ -p : 하위 디렉터리를 동시에 생성

∘ 예 : mkdir -p backup/java

∘ -m 접근권한 :디렉토리를 생성하면서 접근 권한 부여

∘ 예 : mkdir -m 755 test (하위 디렉터리 test를 생성하고 접근 권한을 설정)

 디렉터리 삭제 명령(remove directory)

 사용법 : rmdir [옵션] 디렉터리명...

∘ -p : 하위 디렉터리를 동시에 삭제

∘ 예 : rmdir –p backup/java

 비어 있는 디렉터리만 삭제 가능

-디렉터리 안에 파일이나 다른 디렉터리가 없어야 함

-비어 있지 않은 디렉터리는 rm -r 또는 rm -ri 명령으로 삭제

∘ 예 : rm -r Sub

∘ 예 : rm –ri Sub (i는 interactive로 확인을 받음)

 권한 변경 명령(change mode)

 사용법 : chmod [옵션] 권한 파일명...

∘ -R : 하위 경로에 있는 파일들과 디렉터리까지 권한을 변경

 권한

-읽기 (r) : 파일 및 디렉터리 내용 보기

-쓰기 (w) : 파일의 쓰기 및 디렉터리 안에 파일 생성 및 삭제

-실행 (x) : 파일 실행 및 디렉터리 접근

 파일 및 디렉터리의 권한 표시

 사용자 권한(u) : 첫 번째 열 (예: rwx)

 그룹 권한(g) : 두 번째 열 (예: r-x)

 다른 사용자들 권한(o) : 세 번째 열 (예: r-x)

 chmod 명령에서 권한 지정 방법

 ugo 각각에 rwx 권한을 지정함

 예 : chmod 755 test

 허가는 1, 불허는 0으로 하여 2진수로 표시한 후 8진수 모드로 권한 지정

 u에 rwx, g와 o에 rx를 권한을 지정한다면, rwxr-xr-x -> 111101101 -> 755

 다음 문제의 정답을 고르시오.

11. useradd 명령으로 사용자 계정을 추가하면 /home 디렉토리에 기본 사용자 디렉토리가

생성되고, 환경 설정을 위한 기본 파일들이 복사되어진다. 다음 중 사용자 기본 환경 설정

파일을 가지는 디렉토리는 무엇인가?

① /etc/skel ② /etc/rc.d

③ /etc/services ④ /etc/hosts

12. root 사용자가 사용자 sooyounlee의 비밀번호 변경에 사용하는 명령은?

① info sooyounlee ② change sooyounlee

③ passwd sooyounlee ④ chpasswd sooyounlee

13. 다음 내용에 대한 설명이 옳지 않은 것은?

#ls -l ihd_test.txt

-rwxr----- 1 ihd linux 1024 Sep 11 09:22 ihd_test.txt

① 이 파일은 linux라는 사용자가 실행 권한을 가지고 있다.

② 일반 사용자는 이 파일에 접근할 수 없다.

③ root는 이 파일을 수정할 수 있다.

④ 파일의 소유자는 읽을 수 있는 권한도 있다.

14. ls 명령의 옵션에 관한 설명 중 옳지 않은 것은?

① -t 파일순서를 세로로 출력

② -a 디렉토리 내의 모든 파일 출력

③ -l 라인 당 한 파일씩 출력

④ -s KB 단위의 파일크기 출력

15. cd 명령에 관한 설명 가운데 옳은 것은?

① cd ~를 실행하였을 때 사용자의 홈 디렉토리로 이동한다.

② cd를 실행하였을 때 현재 디렉토리의 위치를 출력한다.

③ cd -al 명령을 실행하면 현재 디렉토리에 있는 파일들에 관한 모든 정보를 출력한다.

④ Change Disk의 약자로 CD Disk 등을 바꿀 때 사용한다.

 다음 문제에 대한 정답을 서술하시오.

16. ‘korea’, ‘japan’ 파일의 내용을 하나로 합쳐 ‘asia’ 파일을 만들고자 한다. 어떠한

명령을 사용하면 좋겠는가?

(답) cat korea japan > asia

'컴퓨터과학[3-2] > U.N.I.X' 카테고리의 다른 글

UNIX - [제6강] vi 편집기  (0) 2016.07.19
UNIX - [제5강] 기본 운영02  (0) 2016.07.19
UNIX - [제3강] 리눅스 시작  (1) 2016.07.19
UNIX - [제2강] 리눅스 설치  (1) 2016.07.19
UNIX - 개요  (0) 2016.06.27

댓글