본문 바로가기
App/리눅스

[리눅스] 05 리눅스 사용자 관리와 파일 관리

by 건망망고 2024. 4. 23.

 

학습 목표 

- 리눅스의 사용자와 그룹에 대해 알아본다

- 리눅스의 사용자와 그룹 관련 명령어 사용법을 익힌다

- 파일의 유형을 파악하고 소유권과 허가권을 이해한다

- 링크의 개념을 이해한다

- 프로세스,서비스(데몬)의 개념을 이해한다


리눅스의 사용자와 그룹에 대해 알아본다

리눅스는 다중 사용자 시스템이다. 리눅스를 설치하면 기본적으로 root 라는 이름의 슈퍼 유저가 있으며 슈퍼유저에게는 모든 작업을 실행할 수 있는 권한이 있다. 

 

/etc/passwd 파일을 열면 여러 사용자를 확인할 수 있다

 

/etc/group

사용자 이름:비밀번호:사용자ID:사용자소속그룹ID:추가정보:홈 디렉터리:기본 셸


리눅스의 사용자와 그룹 관련 명령어 사용법을 익힌다

 

<사용자와 그룹 관련 명령어>

adduser : 새로운 사용자를 추가하는 명령어
passwd : 사용자의 비밀번호를 변경하는 명령어
usermod : 사용자의 속성을 변경하는 명령어
userdel : 사용자를 삭제하는 명령어
chage : 사용자의 비밀번호를 주기적으로 변경하도록 하는 명령어
groups : 사용자가 소속된 그룹을 보여주는 명령어
groupadd : 새로운 그룹을 생성하는 명령어
groupmod : 그룹의 속성을 변경하는 명령어
groupdel : 그룹을 삭제하는 명령어
gpasswd : 그룹의 비밀번호를 설정하거나 그룹 관리를 수행하는 명령어

파일의 유형을 파악하고 소유권과 허가권을 이해한다

touch mydata.txt 명령으로 빈 파일 만들고 ls -l 명령 실행하면 다음과 같이 나타난다

<파일 유형>

- r w - r -- r -- 1 root root 0 6월 30 11:56 mydata.txt 

- : 파일 유형

r w - r -- r -- : 파일 허가권

1 : 링크수 

root : 파일 소유자 

root : 파일 소유 그룹

0 : 파일 크기(byte)

6월 30 11:56 : 마지막 변경 날짜/시간

mydata.txt : 파일 이름

 

파일 유형 = 파일의 종류 

ls -l/dev | less : 파일의 종류 확인

d : 디렉터리 

- : 일반적인 파일

b,c : 디바이스 

-> b : 블록 디바이스 ex) 하드디스크, usb메모리, cd/dvd등의 저장장치

-> c : 문자 디바이스 ex) 마우스, 키보드, 프린터등의 입출력 장치

l : link

 

<파일 허가권>

r : read, w : write,  x : execute, rwx : 읽고 쓰고 실행할 수 있는 파일

- r w - r -- r -- 1 root root 0 6월 30 11:56 mydata.txt 

첫번째의 rw - : 소유자의 파일 접근 권한

두번째의 r -- : 그룹의 파일 접근 권한

세번째의 r -- : 그 외 사용자의 파일 접근 권한

 

 

ex> 754 : rwx r-x r--

소유자는 읽고 쓰고  실행가능

그룹은 읽고 실행가능

그 외 사용자는 읽기 가능

 

 

 

참고로 디렉터리를 해당 디렉터리로 이동하려면 실행(x) 권한이 반드시 있어야한다. 따라서 일반적으로 디렉터리에는 소유자, 그룹, 그 외사용자의 실행권한(x)이 설정되어있다.

 

chmod : 파일 허가권을 변경 -> root 사용자 또는 해당 파일의 소유자만 실행할 수 있다
chmond 777 mydata.txt  -> 모든 사용자가 파일을 읽고 쓰고 실행할 수 있다

 

단 파일 허가권이 실행할 수 있도록 설정되어 있더라도 파일이 실제로 실행 가능한 코드가 아니라면 실행시 오류가 발생할 수 있다

 

상대모드로 실행

chmod u + x 파일명 -> 소유자(user) 에게 실행권한(execute)을 허가하라(+)
chmod u-wx 파일명 -> 사용자의 쓰기, 실행 권한을 제거하라는 읨
chmod g+rx 파일명 -> 그룹에게 읽기, 실행 권한을 허가라하는 의기
chmod o+rwx 파일명 -> 그 외 사용자에게 읽기,쓰기,실행 권한을 허가하라는 의미

 

 

<파일 소유권>

chown : 파일 소유권을 변경하는 명령어
ex) chown ubuntu mydata.txt : mydata.txt를 ubuntu로 바꿔라
ex) chown ubuntu.ubuntu mydata.txt : mydata.txt의 그룹도 ubuntu로 바꿔라
ex) chgrp ubuntu mydata.txt : 그룹만 ubuntu로 바꿔라

 


링크의 개념을 이해한다

하드링크 / 심벌릭 링크 / 소프트 링크

ln 원본파일 링크 파일명 : 하드링크 생성하는 명령
ln -s 원본파일 링크 파일명 : 심벌릭 링크 생성하는 명령

원본 파일과 하드 링크 파일은 데이터 블록에서 같은 원본 파일 데이터를 사용하기 때문에 크기가 동일하다

심벌릭 링크 파일은 원본 파일 데이터가 아니라 원본 파일이 저장된 곳의 주소 값인 포인터를 갖기 때문에 크기가 더 작다

하드링크는 디렉터리에서 원본파일이 없어져도 아무이상 없고 심벌릭 링크는 디렉터리에서 원본 파일이 없어지면 연결이 끊어진다


프로세스,서비스(데몬)의 개념을 이해한다

 

<프로세스>

프로세스 : 하드디스크에 저장된 실행코드(프로그램)가 메모리에 로딩되어 활성화된것

- 포그라운드 프로세스 : 실행하면 화면에 나타나서 사용자와 상호작용을 하는 프로세스. 실행되는 것이 화면으로 보이는 프로세스

- 백그라운드 프로세스 :  화면에 나타나지 않은 채 뒤에서 실행되느 ㄴ프로세스

- 프로세스 번호 : 메모리에 로딩되어 활성화된 프로세스를 구분하려면 고유 번호가 필요한데 각 프로세스에 할당된 고유번호 -> 메모리에서 활성화된 프로세스를 강제로 제거하려면 프로세스 번호가 필요하다

- 작업 번호 : 현재 실행중인 백그라운드 프로세스의 순차번호를 의미한다

- 부모프로세스와 자식프로세스 : 모든 프로세스는 독립적으로 실행되는 것이 아니라 부모 프로세스에 종속되어 실행된다

ps : 현재 프로세스의 상태 확인
ps -ef | grep : 프로세스 번호와 상태 확인
kill : 프로세스를 강제로 종료하는 명령어
kill -9 프로세스 번호 : 강제종료
prstree : 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여주는 명령어

 

<서비스> = 데몬

서버 프로세스, 서비스는 눈에 보이지 않지만 현재 시스템에서 동작중인 프로세스이므로 백그라운드 프로세스의 일종

서비스 = 데몬 = 서버 프로세스

 

<서비스와 소켓의 구분>

서비스 = 평상시에도 늘 작동하는 서버 프로세스

소켓 = 필요할 때만 작동하는 서버 프로세스

systemctl start/stop/restart 서비스명 : 서비스 실행 및 종료
systemctl start httpd : 웹서버 구동명령

서비스는 항상 구동중이지만 소켓은 외부에서 특정 서비스를 요청하는 경우에만 systemd가 구동. 또한 요청이 끝나면 소켓은 종료

 

소켓으로 설정된 서비스를 요청하는 경우 처음 연결되는 데 걸리는 시간이 서비스의 시간모다 더 길수도 있다. systemd가 서비스를 새로 구동하는 데 시간이 필요하기 때문이다 ex> 텔넷 서버

 

소켓과 관련된 스크립트 파일은 /lib/systemd/system/ 디렉터리 안에있는 '소켓명.socket' 이다

 


연습문제

1. 사용자가 등록되어있는 /etc/passwd 파일의 구성 내용을 차례로 나열하시오

사용자 이름:비밀번호:사용자ID:사용자소속그룹ID:추가정보:홈 디렉터리:기본 셸

 

2. 그룹이 정보가 등록되어 있는 파일 : /etc/group

 

3. 다음은 각각 어떤 명령어에 대한 설명인가?

- 새로운 사용자를 추가하는 이 명령어를 실행하면 /etc/passwd, /etc/shadow, /etc/group 파일에 새로운 행이 추가된다 : adduser

- 사용자의 비밀번호를 주기적으로 변경하도록 설정한다 : chage

- 사용자의 비밀번호를 변경한다 : passwd

- 그룹의 속성을 변경한다 : groupmod

 

4. ls -l 명령을 실행했을 때 나타나는 정보가 아닌것 : 최소 생성 일자 // 파일 유형, 파일 이름, 파일 크기, 파일 소유자. 링크 수

 

5. ls -l 명령을 실행했을 때 나타나는 각 파일 유형을 의미하는 영문 한 자 또는 기호

- 디렉터리 : d

- 블록 디바이스 : b

- 링크 : l

- 문자 디바이스 : c 

- 일반파일 : -

 

6. 각 파일의 허가권을 chmod 명령으로 수행할 때의 rwxrwxrwx형식을 쓰시오

- 소유자는 읽거나 쓸 수 있고 그룹과 그 외 사용자는 읽을수만 있다 : rw-r--r--

- 소유자와 그룹은 읽거나 실행할 수 있고 그 외 사용자는 실행만 가능하다 :  r-xr--r--

- 소유자만 읽을 수 있고 나머지는 아무것도 못한다 : r-- --- ---

 

7. 각 파일 허가권을 chmod 명령으로 수행할 때의 ugo + rwx 또는 ugo - twx 형식을 쓰시오

- 소유자에게 쓰기권한을 준다 : chmod u+x

- 그룹과 그 외 사용자의 쓰기 및 실행 권한을 제거한다 : chmod u-wx

- 모든 사용자에게 읽기 권한을 추가한다 : chmod a+r

 

8. 다음 중 chown/chgrp 명령에 대한 설명으로 옳지 않은것은? ㄱ.ㄴ.ㄷ

- 파일소유자에게 실행 권한이 있다 X -> chown 또는 chgrp 명령과 관련이 없음

- chmod 사용자.그룹 파일명 형식으로 사용한다 X

- chmod 사용자 파일명 형식으로 사용한다 X 

- chgrp 그룹 파일명 형식으로 사용한다 0

 

9. 링크에 대한 설명으로 옳지 않은 것 ㄷ.ㄹ

- 하드링크와 심벌릭 링크가 있다 0

- ln -s 명령으로 심벌릭 링크를 만든다 0

- 심벌릭 링크는 원본파일과 inode를 공유한다 X

- 원본 파일을 제거하면 하드링크도 제거된다 X

 

10. 다음은 무엇에 대한 설명인지 각각 보기에서 고르시오

- 현재 실행중인 백그라운드 프로세스이 순차번호이다

- 파이어폭스와 마찬가지로 실행하면 화면에 나타나서 사용자와 상호 작용을 하는 프로세스이다

- X 윈도우가 종료되면 브라우저인 파이어폭스도 함께 종료된다

 

11. 다음은 각각 어떤 명령어에 대한 설명인가?

- 프로세스를 강제로 종료한다 : kill

- 부모 프로세스와 자식 프로세스의 관계를 트리 형태로 보여준다 :pstree

- 현재 프로세스의 상태를 확인한다 : ps

 

12. 서비스를 시작, 중지, 재시작하는 명령어 : systemctl start/stop/restart 서비스명

 

13. '서비스'는 평상시에도 늘 작동하는 서버 프로세스이고, 소켓은 필요할대만 작동하는 서버 프로세스를 말한다


사용자 이름:비밀번호:사용자ID:사용자소속그룹ID:추가정보:홈 디렉터리:기본 셸

[5-1] 사용자와 그룹 관리하기

  1. server 초기화하기
  2. 새로운 사용자 만들기tail /etc/passwd = 사용자가 생성되었는지 확인adduser = 새로운 사용자 시스템에 추가
  3. tail /etc/group = 그룹확인
  4. adduser hanbit 1 = 사용자를 생성
  5. 그룹 생성하고 소속된 다수 사용자 관리하기groupadd ubuntuGroup = 그룹 생성adduser - - gid 그룹ID 사용자 = 새로운 사용자 생성(gid - 사용자가 속할 그룹의 ID 지정)tail -5 /shadow = 비밀번호 설정 파일 확인
  6. ls -l = 홈디렉터리와 비교
  7. tail -5 /etc/passwd = passwd 파일 확인(앞의 숫자로 그룹 확인)
  8. tail -5 /etc/group = 확인(마지막 다섯줄 출력)
  9. userdel -r hanbit = 사용자 삭제

[5-2] 파일 허가권과 소유권 실행하기

  1. 파일속성 확인하기
    1. 연습용파일 생성ls -l sample = 파일 속성 확인
    2. vi sample → :wq
    3. 파일 속성 변경하기chmod 755 sample
    4. ls -l sample = sample 파일 변경 있나 확인
    5. ./sample = sample 파일 실행
    6. 소유권 변경하기chgrp ubuntu sample 명령(그룹도 ubuntu로 변경)ubuntu로 접속 해서 ubuntu로 넘겨주었는데도 파일 접근이 거부된다면 → root 디렉터리의 속성이 rwx —- —- 라서 그 외사용자(우분투)가 접근이 거부된거
    7. → 루트 사용자로 접속해서 파일을 우분투로 옮기고 허가권 변경해도 root가 속성이 rwx —- —-라서 명령을 허용하지 않음이 정상
    8. (chown ubuntu.ubuntu sample 명령 사용하면 한번에 둘다 변경)
    9. chown ubuntu sample 명령 입력(sample 파일의 소유권을 ubuntu로 변경)

[5-3] 하드링크와 심벌릭 링크 생성하기

  1. 파일 생성하고 확인하기 cat 명령으로 파일 내용 확인
  2. 하드링크와 심벌릭 링크 확인하기
    1. ln 원본파일 링크 파일명
    2. 원본 파일을 다른곳으로 이동하고, 하드링크 파일과 심벌릭 링크 파일 확인
    3. cat hardlink cat softlink(그런 파일이나 디렉터리가 없습니다)

[5-4] 포그라운드 프로세스와 백그라운드 프로세스 살펴보기

  1. 무한루프도는 프로세스 중지시키기ps -ef | grep yes = 프로세스 번호 확인
  2. kill -9 프로세스 번호 = 강제 종료
  3. yes > /dev/null = 무한루트 도는 단순 프로세스 생성
  4. 프로세스 상황 바꾸기 (포→백→포)ctrl + z = 프로세스 일시 중지jobs = 현재 실행중인 백그라운드 프로세스 확인 가능
  5. fg 작업번호 = 다시 포그라운드 프로세스로 변경 가능
  6. bg = 잠시 중단된 프로세스를 백그라운드 프로세스로 계속 진행
  7. yes > /dev/null = 무한루트 도는 단순 프로세스 생성
  8. 명령 실행 시 처음부터 백그라운드로 실행되도록 설정하기gedit & = 백그라운드로 프로세스를 계속 실행 가능
  9. gedit = gedit 편집기 실행