Ubuntu Linux 🐧/[컴퓨터시스템관리] 실습일지

컴퓨터시스템관리) 3주차 실습일지

Go_nii 2020. 4. 5. 04:50

3주차에서는 리눅스 명령어를 추가로 배웠으며

사용자 관리 및 파일 속성, 프로그램 설치 및 관리, 응급복구 및 GRUB 부트로더에 대한 내용을 다뤘다.

리눅스는 여러 사용자가 이용하는 시스템이므로 사용자 관리가 정말 중요할 것이라 생각했다.

 

새로 알게 된 내용

 

리눅스는 '역할과 권한 구분'이 중요하다. (리눅스 설정 변경 등의 권한을 아무에게나 주면 안됨)

 

-사용자 정보 확인 시

less(tail) /etc/passwd

ex) tail /etc/passwd

'사용자이름:비밀번호:사용자ID:그룹ID:추가정보:홈디렉터리:로그인시 제공되는 셸' 순.

-그룹 정보 확인 시

less(tail) /etc/group

 ex) tail /etc/group

'그룹이름:비밀번호:그룹ID:보조그룹사용자(여러 명이면 쉼표로 구분)' 순.

less /etc/shadow 입력 시.

알 수 없는 문자들 ... -> 비밀번호가 암호화되어 안전!

 

*사용자 계정 생성 및 관리 관련 명령어

passwd [사용자] : 사용자의 비밀번호 설정 또는 변경
usermod [옵션] [사용자] : 사용자의 속성 변경
userdel [옵션] [사용자] : 사용자 삭제
chage [옵션] [사용자] : 사용자의 비밀번호를 주기적으로 변경하도록 설정
           : -l (내용확인) / -E [날짜] (사용자에게 설정한 비밀번호 만료일. 설정한 날짜까지 사용 가능) ...
groups : 사용자가 소속된 그룹을 보여줌
groupadd [그룹명] : 새로운 그룹 생성
groupmod [옵션] [그룹명] : 그룹 속성 변경
groupdel [그룹명] : 그룹 삭제
gpasswd ([옵션]) [그룹명]: 그룹의 비밀번호 설정 또는 그룹 관리를 수행

 

*리눅스 파일 시스템에서 파일과 디렉터리는 소유권과 허가권이 있다.

 

-소유권 : 누가 해당 파일 또는 디렉터리를 생성 및 관리할 수 있는가?

  파일 소유자, 파일 소유 그룹

 * chown : 파일 소유권 변경 명령어

  'chown 새사용자명(.새그룹명) 파일명'

예) chgrp ubuntu mydata.txt / mydata.txt 파일의 소유 그룹을 ubuntu그룹으로 바꿔라.

    = chown .ubuntu mydata.txt

 

-허가권 : 해당 파일 또는 디렉터리를 읽거나(r) 쓰거나(w) 실행(x)할 수 있는가?

  소유자, 그룹, 그외 사용자 별로 구분하여 관리한다.  read, write, execute

  r w x   r - -   - - -

  4 2 0   4 0 0 0 0 0

    6        4      0

*chmod : 파일 허가권을 변경하는 명령어

예) chmod 777 mydata.txt / 모든 사용자가 이 파일을 읽고,쓰고,실행 가능

 

-링크 파일

1. 하드 링크

 : 원본 파일이 삭제되어도 파일 데이터는 확인가능(원본파일의 백업 효과)

2. 심벌릭 링크 (소프트 링크)

: [바로가기] 아이콘처럼.. 링크만 제공! 지워져도 원본 데이터는 남아있음. (지워져도 상관없음)

 

- dpkg (Debian package)

: 설치 시 의존성 문제로 설치 불가일 때도 있음..

-> 이러한 문제점을 해결할 수 있는

 

- apt-get

: 온라인 저장소에서 패키지를 직접 다운! 의존성 문제를 파악해 자동으로 함께 설치해주는 패키지 설치 프로그램 (매우 편리..)

우분투 패키지 저장소
1. main 패키지 : 우분투에서 공식 지원 / 무료!
2. universe 패키지 : 우분투에서 공식 지원 X / 무료!
3. multiverse 패키지 : 우분투에서 공식 지원 / 유료!
4. restricted 패키지 : 우분투에서 공식 지원 X / 유료!

- root 사용자 계정의 비밀번호를 잊어버린 경우..

리눅스 재설치가 어려운 시점엔,, 응급복구!

그러나 응급복구 방법을 알고 있다면 누구나 응급복구가 가능.(보안에 취약)

-> GRUB 부트로더의 패스워드까지 설정한다.


실습 중 고민한 내용

 

실습 과제를 하면서 info.sh 파일을 w-user와 d-user 계정에서만 수정이 되도록 하는 방법을 고민했다.

 

처음에는 w-user와 d-user를 파일 소유자로 설정하기 위해

chown w-user info.sh 

명령을 입력한 뒤 d-user를 추가하려 했는데 추가하는 방법을 몰라서 한참 고민했다.

 

그러다가 두 계정을 동시에 쓰는 것이 가능할 지 써보았다.

결과는.. 되지 않았다.

d-user를 사용자로 인식하지 않고 파일이나 디렉터리로 받아들이고 있었다.

그러면서 w-user와 d-user를 하나로 묶을 수 있는 공통점을 생각해보았다.

그것은 바로 두 계정 모두 developer 그룹안에 소속되어 있는 계정이라는 점이었다.

 

따라서 파일 소유자를 각각 설정하는 방법 말고, 파일 소유 그룹을 developer로 하는 방법을 이용했다.

chown .developer info.sh 명령어를 입력하자 원하는대로 적용이 되었다.

 

chmod 770 info.sh 명령으로 그 외 사용자는 파일을 수정하지 못하고, 읽기도 불가능 하도록 설정했다.

 

결과를 확실히 확인하기 위해 나는 다른 계정으로 들어가 파일 수정이 되는지 확인해보았다.

w-user, d-user 계정에서는 파일을 읽고, 쓰고, 실행이 가능하고

o-user 계정에서는 세 권한이 모두 없어야 했다.

 

1) d-user 계정에서 info.sh 파일을 읽고, 쓰고, 실행할 수 있는가?

파일을 읽는 것도 가능하고, '입력모드'로 전환해 내용을 쓰고 수정하는 것 모두 가능했다.

 

2) o-user 계정

앞선 두 계정과 달리 o-user 계정에서는 파일을 읽을 수 없었다.

그리고 맨 밑에 [허용 안 됩니다] 라는 문구가 나왔고,

입력모드로 변경하여 내용을 쓰고 저장할 수도 없었다.

 

이렇게 파일 소유 그룹을 developer로 변경함으로써 그에 속한 w-user, d-user 계정은 권한을 가지게 되고, o-user 계정에서는 파일 허가권이 없는 것을 확인할 수 있다.


참고한 내용

 

https://jhnyang.tistory.com/11

 

파일 권한 내용과 관련 문제 (chmod, chown, rwx, file permission 허가권, 소유자 및 소유자 그룹 변경)

리눅스 완전 정복 : 리눅스 목차 파일 권한이란? (허가권, 소유권) 맨~~날 나오는 리눅스 단골 출제 부문이기도 하고 그런게 아니더라도 리눅스를 쓰게 된다면 아래 그림처럼 -rw-rw-r-- 이런 것들을 보게 될텐데..

jhnyang.tistory.com

이 포스팅을 통해 chmod 명령어에 옵션을 추가할 수 있음을 알 수 있었다. -R을 입력하면 하위 디렉터리를 포함해 디렉터리 내부의 모든 파일의 접근 권한 변경이 가능하다. 이 내용과 함께 파일 소유권, 허가권에 대한 설명이 잘 되어있어 참고하면 좋을 것이다.


회고

 

이번 실습을 진행하면서 다중 사용자 시스템인 리눅스의 특징을 알 수 있었다.

많은 사용자가 이용하므로 계정 관리가 중요하며, 그로 인해 보안의 중요성이 크기 때문에

비밀번호를 입력할 때 아무 표시도 나지 않는 것이 아닐까 생각했다.

 

그리고 링크 파일에 대해 공부하면서 하드 링크를 이용해 원본 데이터가 삭제되어도 이를 복구할 수 있다는 점을 알게 되었다. 링크 파일이라고 하면 나는 자연스레 심벌릭 링크의 기능을 생각했기 때문에 원본 데이터가 사라지면 이것 또한 못쓰게 될 줄 알았다. 하지만 하드 링크가 곧 원본 데이터가 될 수 있다는 사실을 알고 나니 정말 놀라웠다.

 

이번에는 정말 실습실의 조교가 된 느낌을 받았다. 진정한 '관리자'로서 한발자국 다가간 듯 했다. 응급복구와 GRUB 부트로더 실습을 하면서 이 생각을 많이 한 것 같다.

Server(B) 에서 root계정 비밀번호를 재설정하는 응급복구 과정은 내가 단순히 리눅스 사용자였다면 생각지도 못 할 방법이었다. 검은 화면에 흰 글씨들만 가득해서 비밀번호를 재설정하는 과정이 복잡해보여도 하다보니 재미있었다.

 

그러나 한가지 의문이었던 것은 실습 도중 mount -o remount, rw / 명령을 입력할 때

맨 처음에는 already mounted on /. 이라는 문구가 뜨며 다음 단계로 넘어가질 않았다.

다시 해보니 그때는 정상적으로 되었다. 그래서 나는 시스템 오류가 난 것인줄 알았는데

알고보니 처음에 remount를 입력하다 오타가 난 것이었다. 오타가 난 줄도 한참 뒤에 알았다. 만약 이 환경에서도 리눅스 데스크톱의 터미널처럼 오타가 발생하면 '이 명령어를 입력하려던 것 아니야?' 라는 식으로 알려줬다면 관리자가 작업하기 좀 더 편했을거라고 생각했다. 큰 바람이겠지만 있다면 정말 큰 장점이 되었을 것이다!

 

이번 주차에서는 배운 내용이 많아서 꼭 복습을 많이 해야겠다.

다음주에 배울 내용도 기대가 된다.