2022 데이터 사이언스/Linux 19

19. 프로그램 설치(2): rpm

rpm 명령어로 패키지를 이용하여 프로그램 및 서비스를 관리한다. rpm(redhat package manager)을 활용하여 패키지 기반의 프로그램 설치를 할 수 있다. 패키지는 프로그램을 나누어 놓은 조각을 말한다. Linux는 kernel부터 시작하여 모든 구성이 패키지로 이루어져 있으며, 패키지는 다른 패키지와 의존 관계에 놓여있는 경우가 많다. 따라서 패키지 설치/삭제 과정에서 의존성 관련 오류가 굉장히 자주 발생한다. rpm은 redhat에서 처음 도입했고, 모든 redhat 기반의 Linux에서 rpm 명령어를 사용한다. rpm 명령어는 CentOS 뿐 아니라 redhat 기반 다른 계열의 Linux에서도 사용 가능하다. 참고하자면, debian 기반의 Linux에서는 rpm이 아닌 dpkg..

18. 프로그램 설치(1): tar

tar, rpm, yum 명령어를 활용한 프로그램 설치 방식을 알아본다. 앞으로 세 번의 포스팅에 걸쳐 세 가지 프로그램 설치 방식과 관련된 명령어를 다룰 예정이다. 초창기에는 프로그램의 소스 파일을 직접 건드리는 방식으로 설치를 진행했다. 소스 파일을 다운로드 받아 컴파일하고 설정 파일을 작성한 뒤, 올바른 위치에 파일을 배치하면 프로그램을 사용할 수 있다. 이러한 방식은 tar 명령어와 파일 압축을 활용하여 실행해볼 수 있다. 초창기 방식은 더 이상 사용되지 않는다. 오늘날의 프로그램 설치는 rpm 명령어 또는 yum 명령어를 사용한다. 프로그램의 패키지 파일을 보유한 경우 rpm 명령어로 프로그램을 설치할 수 있는데, 인터넷이 되는 환경에서는 패키지 파일 없이 yum 명령어만 가지고도 설치가 가능하..

17. 권한(4): 특수 권한

setUID, setGID, sticky bit 세 가지의 특수 권한이 존재한다. 지금까지 권한 파트에서 살펴본 내용은 모두 일반 권한에 대한 내용이다. 이번 포스팅에서는 setUID, setGID, sticky bit 세 가지의 특수 권한에 대해 알아본다. 특수 권한은 일반 권한과 비교했을 때 다소 특이한 동작을 하며, 각 영역의 x가 s나 t로 바뀐다. 숫자로 변환하면 일반 권한 숫자 값의 앞에 각각 4, 2, 1이 추가로 붙는다. 1) setUID Owner 영역의 x가 s로 바뀌는 경우 4777 r w s r w x r w x 2) setGID Group 영역의 x가 s로 바뀌는 경우 2777 r w x r w s r w x 3) sticky bit Other 영역의 x가 t로 바뀌는 경우 177..

16. 권한(3): 소유권과 권한 적용

허가권과 소유권이 적용되는 방식을 아는 것은 매우 중요하다. 이번에는 소유권에 대해 간단히 알아본 후, 허가권과 소유권이 적용되는 방식을 살펴볼 예정이다. 허가권과 소유권의 적용 방식은 권한 파트에서 가장 중요한 개념이다. 소유권의 의미 소유권은 파일이나 디렉토리를 어느 사용자와 그룹이 소유하고 있는지를 나타내는 권한이다. ls -l로 출력되는 정보들 중 링크 개수 뒤에 따라오는 사용자명과 그룹명이 소유권을 나타낸다. 소유권은 두 개의 영역으로 구분된다. 앞에 나오는 정보가 계정명(UID), 즉 파일이나 디렉토리를 소유하고 있는 사용자를 의미하고, 뒤에 나오는 정보는 그룹명(GID)으로, 파일이나 디렉토리를 소유하고 있는 그룹을 의미한다. 소유권 변경 chown 명령어로 소유권을 변경해줄 수 있다. ch..

15. 권한(2): 웹 서버와 http

웹 서버는 client의 요청에 web page를 제공해주는 서버이다. 웹 서버가 클라이언트의 요청에 따라 웹 페이지를 제공해주는 서버라면, http는 웹 서버와 브라우저 사이에 문서를 전송하기 위해 사용되는 통신 규약이다. 이번 포스팅에서는 FTP 파일 전송 후 Linux에서 html 파일을 브라우저에 띄우고, 파일과 디렉토리의 허가권을 변경해보며 웹 페이지의 변화를 살펴보는 실습을 한다. 웹 서버 설치 및 사용 준비 웹 서버 설치 및 방화벽 설정을 위해 아래 다섯 줄의 명령어를 차례로 입력해준다. yum -y install httpd-* : web server 설치 systemctl restart httpd : web server 실행 systemctl enable httpd : 부팅 시 web se..

14. 권한(1): 허가권

권한은 파일이나 디렉토리를 사용할 수 있는지를 정하는 개념이다. Linux에서 권한은 경로만큼이나 중요한 개념이다. 경로가 파일이나 디렉토리를 찾아가는 길이라면, 권한은 실제로 파일이나 디렉토리를 어떻게 사용할 수 있을지를 결정한다. 권한은 허가권과 소유권으로 구분된다. '허가권', '소유권', 그리고 '허가권과 소유권의 적용'의 순서로 살펴볼 예정이다. 허가권의 의미 ls -l 명령어로 파일이나 디렉토리의 허가권을 확인할 수 있다. 출력되는 내용 중 개체 형식을 나타내는 맨 첫 글자 뒤의 9개 글자가 허가권을 나타낸다. itbank의 개체 형식 디렉토리를 의미하는 d 뒤에 r, w, x, - 로 이루어진 9개 글자가 허가권이다. Linux에서는 다음의 8가지 문자로 허가권을 표현한다. r, w, x, ..

13. 사용자와 그룹(4): 그룹

그룹은 사용자 계정을 묶어서 관리하기 위해 생성하는 계정이다. 그룹을 만들어 사용자 계정을 그룹에 소속시켜 사용한다. 예를 들어 그룹에 권한을 부여하여 소속된 모든 사용자가 동일한 권한을 적용받도록 할 수 있다. 그룹 정보 사용자와 마찬가지로 그룹과 관련된 정보를 확인할 수 있는 파일이 있다. /etc/group은 그룹의 일반적인 정보가 들어있는 파일이다. 그룹 정보 각 부분의 의미는 다음과 같다. itbank (그룹 이름) : 뒤에 오는 정보가 어느 그룹의 정보인지 출력 x (암호) : 그룹에는 별도의 암호를 지정하지 않음 1000 (GID) : 해당 그룹의 고유 번호 : 그룹에 일반 소속된 사용자들의 목록 출력 * 단, 운영체제 설치 시에 생성된 그룹은 자신을 GID로 하는 사용자를 목록에 담고 있다..

12. 사용자와 그룹(3): 사용자 정보 수정 및 삭제

사용자 정보를 수정하고 사용자를 삭제하는 법에 대해 알아본다. 사용자 계정 정보 수정 사용자 정보를 수정하는 명령어 형식은 아래와 같다. usermod 옵션 값 [옵션] [값] … [옵션] [값] 사용자명 -k 옵션과 -D 옵션을 제외하면 useradd 명령어의 옵션을 대부분 사용 가능하다. 단, usermod 명령어의 -m 옵션은 make directory가 아닌 move directory의 의미를 가진다. -u : UID 지정(따로 지정하지 않으면 UID, GID의 기본값은 현재 가장 큰 숫자 +1) -g : GID 지정 -c : 별칭 지정 -s : shell 지정 -d : 홈 디렉토리 지정(경로와 이름을 절대경로로 작성) -m : move directory useradd 명령어에서 shell을 바꿀..

11. 사용자와 그룹(2): 사용자 계정 생성

사용자 생성은 사용자와 그룹 파트에서 가장 집중해야 할 부분이다. 사용자와 그룹 파트에서 가장 비중을 많이 차지하고 중요한 부분이 사용자 계정 생성이다. 사용자 계정을 생성하는 명령어는 아래와 같은 형식으로 사용한다. useradd [옵션] [값] … [옵션] [값] 사용자명 사용 가능한 옵션을 살펴보면 다음과 같다. -u : UID 지정(따로 지정하지 않으면 UID, GID의 기본값은 현재 가장 큰 숫자 +1) -g : GID 지정 -c : 별칭 지정 -s : shell 지정 -d : 홈 디렉토리 지정(경로와 이름을 절대경로로 작성) -m : make directory * -d 사용 시 /etc/login.defs의 CREATE_HOME 설정이 no이면 -m 옵션을 함께 사용해야 한다. 현재는 yes로..

10. 사용자와 그룹(1): 사용자 정보

사용자 계정이란 장치를 사용하기 위해 운영체제에서 로그인하는 계정이다. 사용자 계정은 누가 어떤 작업을 했는지 명확하게 알기 위해 개개인에게 부여되며, 해당 계정을 이용하여 파일 및 디렉토리의 권한 설정이 가능하다. 동일한 파일에 a 사용자는 접근 가능하도록, b 사용자는 접근 불가능하도록 설정할 수도 있다. 집에서 혼자 사용하는 컴퓨터는 공용 계정으로 로그인해도 무방하다. 하지만 정석적으로는 사용자마다 계정을 따로 지정해주어야 한다. 그룹이란 사용자 계정을 묶어서 관리하기 위해 사용하는 계정이다. 관리자는 그룹의 생성/수정/삭제와 그룹에 사용자 계정을 소속시키는 작업 등을 한다. 그룹에 권한을 부여하여 그룹에 소속된 사용자들이 동일한 권한을 적용받도록 하기도 한다. 그룹은 관리자가 제어하므로 일반 사용..