LINUX - DAY 3

BUMSOO·2024년 7월 25일

권한을 설정하는 숫자

  • 8진수 각 숫자는 권한 패턴
    0~7,
    x -> 2**0 = 1
    w -> 2**1 = 2
    r -> 2**2 = 4

    0 : 권한을 허용하지 않겠다.
    1 : 실행(x) 권한 허용
    2 : 쓰기(w) 권한 허용
    3 : 읽기(r) 권한 허용

    8진수rwx
    0---
    1--x
    2-w-
    3-wx
    4r--
    5r-x
    6rw-
    7rwx

[user3@linux-server ~]$ chmod 000 date.txt
[user3@linux-server ~]$ ll date.txt
----------. 1 user3 user3 29 Jul 25 10:21 date.txt

[user3@linux-server ~]$ chmod 764 date.txt
[user3@linux-server ~]$ ll date.txt
-rwxrw-r--. 1 user3 user3 29 Jul 25 10:21 date.txt


# ls -R [디렉터리] : 디렉터리 안에 서브 디렉터리까지 다 보여줌
-R : 서브 디렉터리까지 영향을 주는 옵션
[user3@linux-server ~]$ ls -lR test1
test1:
total 0
drwxrwxr-x. 3 user3 user3 19 Jul 25 10:44 test2

test1/test2:
total 0
drwxrwxr-x. 2 user3 user3 6 Jul 25 10:44 test3

test1/test2/test3:
total 0

# chmod -R [권한숫자][디렉터리] : 서브 디렉터리까지 같은 권한으로 변경

[user3@linux-server ~]$ chmod -R 550 test1
[user3@linux-server ~]$ ls -lR test1
test1:
total 0
dr-xr-x---. 3 user3 user3 19 Jul 25 10:44 test2

test1/test2:
total 0
dr-xr-x---. 2 user3 user3 6 Jul 25 10:44 test3

test1/test2/test3:
total 0

기본 접근권한

  • 리눅스에서는 파일이나 디렉터리를 생성할 때 기본 접근 권한이 자동으로 설정된다.

<user3 계정>
[user3@linux-server ~]$ date > date.txt
[user3@linux-server ~]$ ll
total 4
-rw-rw-r--. 1 user3 user3 29 Jul 25 10:58 date.txt -- 664 권한
[user3@linux-server ~]$ mkdir new
[user3@linux-server ~]$ ll
total 4
-rw-rw-r--. 1 user3 user3 29 Jul 25 10:58 date.txt -- 664 권한
drwxrwxr-x. 2 user3 user3 6 Jul 25 10:58 new -- 775 권한

<root 계정>
-rw-r--r--. 1 root root 139 Jul 25 11:00 cal.txt -- 파일 644 권한
drwxr-xr-x. 2 root root 6 Jul 25 11:00 new -- 디렉터리 755 권한

유저마다 기본값 권한이 다르다.

umask 확인

<user 3 계정>
[user3@linux-server ~]$ umask
002
[user3@linux-server ~]$ umask -S
u=rwx,g=rwx,o=rx

<root 계정>
[root@linux-server ~]# umask
022
[root@linux-server ~]# umask -S
u=rwx,g=rx,o=rx

파일 권한은 일반적으로 디렉터리 권한에서 execute 권한은 제외 후 부여된다

<일반계정>
일반 파일의 최대 권한
rw- rw- rw-
110 110 110 <- 2진수 (666)
000 000 010 <- 마스크값(002)
666-002 = 664 권한

디렉터리의 최대 권한
rwx rwx rwx
111 111 111 <- 2진수 (777)
000 000 010 <- 마스크값(002)
777-002 = 775 권한

<root계정>
일반 파일의 최대 권한
rw- rw- rw-
110 110 110 <- 2진수 (666)
000 010 010 <- 마스크값(022)
666-022 = 644 권한

디렉터리의 최대 권한
rwx rwx rwx
111 111 111 <- 2진수 (777)
000 010 010 <- 마스크값(022)
777-002 = 755 권한

umask 값 수정

[user3@linux-server ~]$ umask 022 --002로 수정
[user3@linux-server ~]$ umask -S
u=rwx,g=rx,o=rx
[user3@linux-server ~]$ ls -l > ls+print.txt
[user3@linux-server ~]$ mkdir dir1
[user3@linux-server ~]$ ll
total 8
drwxr-xr-x. 2 user3 user3 6 Jul 25 11:32 dir1 --755 권한
-rw-r--r--. 1 user3 user3 160 Jul 25 11:32 ls+print.txt --644 권한

vi편집기를 통해 .bash_profile 에서 umask 022를 작성

# source .bash_profile을 통해 적용

source 명령어

  • source 명령어는 스크립트 파일을 수정한 후에 수정된 값을 바로 적용하기 위해 사용하는 명령어
  • 예를들어 ~/.bashrc 파일을 수정 후 저장하여도 수정한 내용이 바로 적용되지 않는다.
  • 그 이유는 ~/bashrc 파일은 유저가 로그인 할 때 읽어들이는 파일이여서, 로그아웃 후 로그인하거나 리눅스를 재시작해야 적용이 된다.

chown

  • 파일이나 디렉터리의 소유자와 소유 그룹을 변경하는 명령어
  • 반드시 소유자가 변경해야 한다.

# chown [변경될소유자]:[변경될그룹][파일(디렉터리)]
# chown user3:user3 /home/user3/day.txt

# chown -R [변경될소유자]:[변경될그룹][파일(디렉터리)] : 서브 디렉터리 소유자까지 전부 변경해야 할 경우

# chown [변경될소유자][파일(디렉터리)] : 소유자만 변경
# chown user3 /home/user3/cal_2024.txt

# chown :[변경될그룹][파일(디렉터리)] : 그룹만 변경
# chown :user3 /home/user3/cal_2024.txt

chgrp

  • 파일이나 디렉터리의 소유그룹을 변경하는 명령어
  • chgrp [변경될그룹][파일(디렉터리)]

# chgrp user3 /home/user3/cal_2024.txt
# chown :user3 /home/user3/cal_2024.txt 와 동일한 명령어

tar

  • 파일을 압축하고 압축해제하는 명령어
  • 압축할때
    tar cvf [압축파일명][압축대상파일]
  • 압축풀때
    tar xvf [압축파일명][압축해제할위치]
  • 옵션
    -c : compress, 압축하는 옵션
    -v : view, 압축되는 과정 화면 출력
    -f : file, 생성될 파일명 지정
    -x : extract, 묶여 있는 파일 해제
    -C(대문자) : 압축이 해제 위치 지정
    -z : gzip 압축 적용 옵션

압축

[user3@linux-server test]$ tar cvf all.tar *
cal.txt
date.txt
ls.txt
[user3@linux-server test]$ ll
total 24
-rw-r--r--. 1 user3 user3 10240 Jul 25 13:44 all.tar
-rw-r--r--. 1 user3 user3 139 Jul 25 13:42 cal.txt
-rw-r--r--. 1 user3 user3 29 Jul 25 13:42 date.txt
-rw-r--r--. 1 user3 user3 55 Jul 25 13:42 ls.txt

압축해제

[user3@linux-server ~]$ tar xvf ./test/all.tar -C ./test2
cal.txt
date.txt
ls.txt
[user3@linux-server ~]$ cd test2
[user3@linux-server test2]$ ll
total 12
-rw-r--r--. 1 user3 user3 139 Jul 25 13:42 cal.txt
-rw-r--r--. 1 user3 user3 29 Jul 25 13:42 date.txt
-rw-r--r--. 1 user3 user3 55 Jul 25 13:42 ls.txt

linux oracle jdk 설치

  1. mobXterm(FTP 파일) 설치

  2. mobXterm을 통해 jdk-8u131-linux-x64.tar 리눅스 서버로 파일 전송

  3. /usr/java 로 이동 후 다운받은 jdk-8u131-linux-x64.tar.gz 압축해제
    [root@linux-server java]# tar -xvfz ~/jdk-8u131-linux-x64.tar.gz

기본 jdk변경(root작업)

  1. [root@linux-server ~]# which java
    /usr/bin/java

  2. [root@linux-server ~]# java -version
    openjdk version "1.8.0_262"
    OpenJDK Runtime Environment (build 1.8.0_262-b10)
    OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

기본 java 버젼은 openjdk로 되어있다.

기본 버젼을 oracle jdk로 변경하기 위한 작업을 해야한다.

  1. [root@linux-server ~]# update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.8.0_131/bin/java" 1

  2. [root@linux-server ~]# update-alternatives --config java

    There are 2 programs which provide 'java'.

    Selection Command
    -----------------------------------------------
    *+ 1 java-1.8.0-openjdk.x86_64 (/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64/jre/bin/java)
    2 /usr/java/jdk1.8.0_131/bin/java

    Enter to keep the current selection[+], or type selection number: 2

  1. [root@linux-server ~]# java -version
    java version "1.8.0_131"
    Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)

예외) 만약 제거를 해야 하는 상황이면
[root@linux-server ~]# update-alternatives --remove "java" "/usr/java/jdk1.8.0_131/java"
remove를 사용하면 된다.

0개의 댓글