UNIX - [제 4강] 기본 운영01
● 사용자 계정 관리 ● 그룹 계정 관리 ● 파일/디렉터리 상태 출력 명령
UNIX 용어정리
-
- 슈퍼 유저
- root 계정을 가진 관리자이다. root 권한의 계정은 다른 사용자의 파일을 수정 또는 삭제할 수 있으며 관리자 명령을 수행할 수 있다.
-
- 사용자 계정과 홈 디렉터리
- 사용자 계정은 시스템의 사용을 위해 부여된 id이며 특정 그룹의 멤버이다. 홈 디렉터리는 로그인 했을 때 위치하는 기본 작업 디렉터리이다.
-
- passwd 파일
- /etc/passwd에는 시스템을 사용하는 사용자 계정에 관한 정보가 저장되어 있다. 계정명, 암호, UID, GID, 홈 디렉터리, 기본 쉘을 포함한다. 이때 실제 사용자의 암호는 /etc/shadow 파일에 암호화되어 저장된다.
-
- 접근권한
- 소유자는 파일이나 디렉터리에 읽기(r)/쓰기(w)/실행(x) 권한을 소유자(u)/그룹(g)/외부(o)를 구분하여 지정할 수 있다.
요점정리
- 사용자 계정을 추가, 삭제, 변경하는 명령의 사용법을 간단히 기술하고 관련이 있는 파일에 관해 설명하시오.
- 계정을 추가하는 명령은 ‘useradd 사용자명’, 삭제하는 명령은 ‘userdel 사용자명’, 변경하는 명령은 ‘usermod 사용자명’이다.
- 참조하는 파일은 다음과 같다.
/etc/passwd : 사용자 계정의 자세한 정보
/etc/shadow : 암호화된 패스워드
/etc/skel : 사용자 홈 디렉터리에 복사되는 파일들의 템플릿
/etc/group : 그룹 정보, 그룹명과 GID 나열
/etc/login.defs : 사용자 계정 추가 시 적용되는 설정
/etc/default/useradd : 홈 디렉터리, 쉘의 종류 등 정보
- 디렉터리의 내용을 보여주는 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 옵션과 같이 사용하면 최종 사용된 시간을 보여줌
- ls [옵션] [파일명]...
- 텍스트 파일의 내용을 보여주는 명령을 나열하고 기능을 간략히 설명하시오.
- cat 파일명...
: 파일(들)의 내용을 보여준다. - more 파일명...
: 파일(들)의 내용을 페이지 단위로 보여준다. 패턴 검색이 가능하다. - head 파일명...
: 파일(들)의 앞부분을 보여준다. - more 파일명...
: 파일(들)의 뒷부분을 보여준다.
- cat 파일명...
- 현재 디렉터리를 변경하는 명령, 디렉터리를 생성, 삭제하는 명령을 나열하고 기능을 간략히 설명하시오.
- cd [디렉터리명]
: 디렉터리명을 생략하면 사용자 계정의 홈 디렉터리로 변경되고 디렉터리명을 지정하면 해당 디렉터리로 변경된다.
‘cd ∼’명령도 ‘cd’명령과 동일하다. ∼은 shell에서 홈 디렉터리를 의미한다. ‘.’은 현재 디렉터리이고 ‘..’은 상위 디렉터리이다. - mkdir 디렉터리명...
: 디렉터리(들)를 생성한다. - rmdir 디렉터리명...
: 디렉터리(들)를 삭제한다. 비어있는 디렉터리만 삭제 가능하므로 삭제 이전에 디렉터리 아래에 있는 파일과 디렉터리를 모두 삭제하여야 한다.
- cd [디렉터리명]
연습문제
- 리눅스 시스템에서 사용자 계정명, UID, GID, 홈 디렉터리, 쉘의 종류 등 사용자 계정에 대한 자세한 정보가 저장되는 파일은?
- 정답 :
-
③
- 해설 : 사용자 계정에 대한 자세한 정보가 저장되는 파일은 /etc/passwd이다.
ㅇ
- 파일 목록을 보여주는 ls 명령에서 숨김 파일까지 보여주는 옵션은?
- 정답 :
-
①
- 해설 : 숨김 파일까지 보여주는 옵션은 –a 이다. -i는 inode 번호를 보여주고, -l은 자세한 정보를 보여주며, -F는 파일의 종류를 구별하는 특수 기호를 붙여 보여준다.
- 텍스트 파일 ‘memo.txt'의 내용을 스페이스 바를 누를 때마다 20줄 씩 화면에 보여주는 명령어는?
- 정답 :
-
④
- 해설 : 페이지 단위로 파일의 내용을 보여주는 것은 more 명령어이고 페이지 크기는 ‘-숫자’ 옵션으로 지정한다.
- 현재 디렉터리 아래에 있는 ‘mydir' 디렉터리 안에는 'mydoc' 디렉터리만 있고 ’mydoc' 디렉터리는 비어있다. ‘mydir' 디렉터리와 ’mydoc' 디렉터리를 동시에 삭제할 수 있는 명령어는?
- 정답 :
-
④
- 해설 : mydir 아래에는 mydoc만 있고 mydoc이 비어있다면 'rmdir -p mydir/mydoc' 명령으로 삭제 가능하다. 비어있지 않은 경우 'rm -r mydir' 명령을 사용하여야 한다.
- 디렉터리의 접근권한은 보통의 파일 접근권한과 약간 다르다.
다음 설명에서 잘못된 것은? (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 |
댓글