복습)
■ 파일의 접근 권한 관리
# 권한의 종류 3가지
1. 읽기(read) 권한
2. 쓰기(write) 권한
3. 실행(execute) 권한
권한 | 대표문자 | file | directory |
읽기 | r | 읽고, copy | 디렉터리에 ls |
쓰기 | w | 수정 | 디렉터리에 파일을 생성 |
실행 | x | shell script 실행 | 디렉터리에 cd로 접근 가능 |
ex)
▶ 왼쪽부터 파일유형 파일권한, 링크수 (1), 소유자 (joel), 소유자 속한 그룹(joel), 파일크기(byte), 마지막 변경 날짜 시간, 파일이름
# 파일유형
- 파일이 어떤 종류인지 나타낸다.
- - : 일반적인 파일
- d : 디렉터리
- b : 블록 디바이스 (block device) 장치 : 하드디스크, 플로피디스크, CD/DVD 저장장치
- c : 문자 디바이스(character device) 장치 : 마우스, 키보드, 프린터등의 입출력 관련된 장치
- l : 링크(link) : 윈도우 바로가기와 비슷한 개념으로 연결된 파일, 실제 파일은 다른 곳에 존재한다.
# 파일 권한
ex) rw- r-- r--
1) 2) 3)
1) : 파일의 소유자의 권한
2) : 소유자가 속한 그룹의 권한
3) : 기타 사용자 권한
■ chmod
- 권한을 수정하는 명령어
- chmod [옵션] 파일
- u : 유저
- g : 그룹
- o : 기타 유저
- a : 전체
- r : 읽기
- w : 쓰기
- x : 실행
- + : 권한 부여
- - : 권한 해지
ex) 실행권한을 수정할 경우
ex) 쓰기 권한을 줄 경우
ex) 모든 권한을 줄 경우
ex) 모든 권한을 해지할 경우
ex) 모든 유저들의 읽기 권한만 줄 경우
■ 권한을 설정하는 숫자
- 8진수(0~7) 각 숫자는 권한 패턴
- x : 2의 0승 = 1
- w : 2의 1승 = 2
- r : 2의 2승 = 4
# 8진수 rwx
--------- ------
0 ---
1 --x
2 -w-
3 -wx
4 r--
5 r-x
6 rw-
7 rwx
ex) rwx rwx rwx
421 421 421
7 7 7
▶ 문자, 숫자 중에 본인이 편한 걸 쓰면 된다. 하지만 숫자가 입력이 편하기 때문에 엔지니어들은 숫자를 많이 사용한다.
# 디렉터리 안에 있는 모든 파일과 서브 디렉터리들을 동일하게 권한 부여를 수행하는 방법 (-R)
▶ -R 옵션을 통해 서브 디렉터리까지 한 번에 수정된 걸 볼 수 있다.
ex) rm -rf *
- 전부 다 삭제
- 히든 파일들은 삭제되지 않는다.
ex) 파일 생성
▶ 권한이 자동으로 부여된 걸 볼 수 있다.
■ 기본 접근 권한 (Linux 시험에 꼭 나오는 문제!)
- Linux에서 파일이나 디렉터리를 생성할 때 기본 접근 권한이 자동으로 설정된다.
# 확인하는 법 (umask)
ex) mask값을 문자로 출력 (umask -S)
▶ 디렉터리는 775로 만들어지는데 파일은 664로 만들어진다.
※ 리눅스에서는 기본적으로 파일을 생성할 때 실행(x) 권한을 갖고 생성하지 못하도록 되어있다.
▶ u=rx,g=rw-,o=r-- (664)
# 기본적으로 일반 파일의 최대권한
▶ rw- rw- rw-
110 110 110 ← 2진수로 변환 (666)
000 000 010 ← 마스크 값이 002이기 때문이다.
666- 002 = 664 rw-rw-r-- : 664로 기본 권한이 설정된 것이다.
# 디렉터리에 대한 최대권한
▶ rwx rwx rwx
111 111 111 ← 2진수로 변환(777)
000 000 010 ← 마스크 값 (002)
777- 002 = 775 ← rwxrwxr-x : 기본 생성 권한
# umask 수정
ex) 파일 및 디렉터리 생성
▶ 일반 파일의 최대권한
rw- rw- rw-
110 110 110
000 010 010
666 - 022 = 644
▶ 디렉터리의 최대권한
rwx rwx rwx
111 111 111 → 2진수 변환(777)
000 010 010 → 마스크 값(022)
777 - 022 = 755
# 소유자, 소유자 그룹 수정하는 법
■ chown
- 파일이나 디렉터리의 소유자와 소유자 그룹을 변경하는 명령어
- chown 소유자:소유자 그룹 파일(디렉터리)
- 파일의 소유자와 소유자의 속한 그룹만 변경할 수 있다.
# 디렉터리 안에 있는 모든 파일과 서브 디렉터리에 대해서 변경
- chown -R 소유자:소유자 그룹 파일(디렉터리)
▶ root에서 생성했기 때문에 root로 되어있지만 -R 명령어를 통해 서브 디렉터리까지 joel로 수정한 것이다.
# 소유자만 수정하고 싶은 경우
- root 유저는 모든 소유자의 수정 변경을 할 수 있다.
# 소유자 그룹도 수정해야 할 경우
# 소유자와 소유자 그룹 변경
■ chgrp
- 파일이나 디렉터리의 소유 그룹을 변경하는 명령어
■ MobaXterm설치 (PUTTY 대신 사용 가능)
- 윈도우에서만 지원하고, Mac OS에서는 지원하지 않는다.
# 윈도우 서버에서 리녹스 서버로 접속
▶ SFTP란 SSH의 파일 전송 버전을 뜻하고, 네트워크 프로토콜 중 하나이다.
▶ 왼쪽은 윈도우 환경이고, 오른쪽은 리눅스 환경이다.
▶ 왼쪽에 있는 jdk 압축파일을 마우스로 오른쪽으로 드래그하면 파일이 전송된다.
# PUTTY에서 확인
▶전송이 제대로 된 것을 볼 수 있다.
■ tar
- 파일을 압축하고 압축해제하는 명령어
- -c : compress, 여러 개의 파일을 하나로 만든다.
- -v : view, 압축되는 과정을 화면 출력
- -f : file, 생성될 파일명을 지정
- -x : extract, 묶여있는 파일을 해제
- -C : 압축이 풀릴 위치 지정
- -z : gzip 압축 적용 옵션
# 압축할 때
- tar cvf 압축파일명 압축대상파일
# 압축해제
- tar xvf 압축파일명 압축해제할 위치
- 현재 위치에 압축해제 하고 싶다고 . 입력하면 에러 발생
ex)
ex) 다른 위치에 압축해제 할 경우
ex)
▶ tar에서 xvfz에 z는 압축해제 파일 이름 끝에 gz이기 때문에 전용 옵션인 z를 쓴 거다.
▶ j입력하고 tab키 누르면 j로 시작하는 게 하나밖에 없기 때문에 바로 자동완성이 된다.
▶ 다른 쪽에 압축해제 할 거기 때문에 -C 옵션을 써서 /usr/java 라는 이름을 만들어서 거기에 압축을 해제한 것이다.
▶ java파일로 접속해서 파일을 확인해 보면 압축한 파일이 있는 걸 볼 수 있다.
■ 시스템 환경설정
- 시스템을 사용하는 전체 사용자의 공통 환경을 설정하는 파일로 모든 사용자가 로그인할 때 무조건 실행한다.
- 시스템 환경 설정 파일 : /etc/bashrc, /etc/profile
■ 사용자 환경 설정
- 각 사용자의 홈 디렉터리에 숨김 파일로 있으며 사용자가 내용을 수정하고 관리한다.
- 사용자가 로그인하면 제일 먼저 시스템 환경 설정 파일이 실행되어 시스템 공통환경을 만들고 이후 사용자 환경 설정 파일을 순서대로 실행하여 사용자별 환경을 설정한다.
# 사용자 환경 설정 파일
- .bashrc : 가장 먼저 실행
- .bash_profile : 그 다음 실행, 중간에 변경 작업 시 재적용 작업을 해야한다. (source)
- .bash_logout
# export 환경변수=값
- export JAVA_HOME=/usr/java/jdk1.8.0_131
- $JAVA_HOME/bin
# 환경설정 파일을 수정하고 싶을 경우 (source 사용)
▶ .bash_profile은 처음 로그인할 때만 보이기 때문에 결과가 나오지 않아서 재적용 작업을 해줘야 한다.
ex)
# open jdk(무료) → oracle jdk(유료) 수정
1) 기본 jdk 변경
▶ 어느 버전에서든 쓸 수 있기 때문에 이렇게 작성한 것이다.
▶ "usr/bin/java" : which java해서 나온 위치를 지정해주면 된다.
▶ 1 : priority→ 우선순위를 결정, 숫자가 높은 순으로 자동 선택 (지금은 하나밖에 없기때문에 1로 한 거다.)
2) 등록된 걸 확인
3) 자바 버전 확인
ex) 삭제하고 싶을 경우
▶ root 유저 상태에서만 권한이 있기때문에 삭제 가능하다.
▶ 숫자 입력할 때 그냥 Enter키 누르면 된다.
▶ Openjdk로 변경된 걸 볼 수 있다.
# 다른 유저에서 설정하는 법
- ex) joel 유저로 로그인 후 vi .bash_profile 편집기 들어가기
▶ source .bash_profile 작업을 꼭 해줘야한다.
▶ 버전을 확인해보면 JAVA 제대로 적용된 걸 볼 수 있다.
▶ 안 될 경우에 이렇게 설정하면 된다.
'Linux' 카테고리의 다른 글
2025.01.15 oracle 19c 설치 및 환경설정 셋업과 listener 상태 정보 확인 및 reboot 시 복구 방법 (0) | 2025.01.15 |
---|---|
2025.01.14 vi 편집기에서 JAVA 코드 입력 및 수정, 출력, Shell 프로그램으로 코드 작성 (0) | 2025.01.14 |
2025.01.10 vi 환경 및 명령어, 유저 생성, group 생성, passwd 생성 및 삭제 및 변경 (2) | 2025.01.10 |
2025.01.09 Linux 명령어 및 디렉터리 이동,수정,복사,timezone 확인 및 변경 (0) | 2025.01.09 |
2025.01.08 Linux 설치 및 환경설정 세팅, Linux 기본 명령어 (2) | 2025.01.08 |