리눅스 입문 03

AeZan·2023년 9월 7일
0

permission

리눅스의 가장 큰 특징은 다중 유저, 다중 작업
여러 유저가 여러 작업을 진행하기 때문에 보안이 중요함
따라서 유저/그룹마다 최소한의 권한만을 부여하는 것이 중요한데, 이를 할 수 있는 것이 permission

permission 구조

-rw-rw-r--

첫번째 공간 - d: 디렉토리 | l: 심볼릭링크 | 없으면 파일

3개씩 끊어서 사용자/그룹/기타(사용자도 그룹에도 속하지 않음) 의 권한

  • 사용자: rw
  • 그룹: rw
  • 기타: r

*각 문자가 뜻하는 바
r = readable
w = writable
x = executable

permission 변경

8진수 모드 : chmod [8진수 3자리] 파일명
심볼릭 모드 : chmod [(u,g,o)(+, =, -)(r, w, x)] 파일명

  • 8진수 모드
    8진수로 rwx 나타내기
    순서대로 4(222^2), 2(212^1), 1(202^0) 을 나타냄

    ex) -rwxrw-r-x -> 4+2+1 = 7 | 4+2 = 6 | 4+1 = 5
         => chmod 765 filename

  • 심볼릭 모드
    u = user
    g = group
    o = other
    + = 기존 권한에 추가
    - = 기존 권한에 제거
    = = 새로운 권한 부여

    ex) chmod go-rwx filename
         chmod u+x,go+r filename
         chmod a=r filename
         모든 사용자에게 읽을 권한 부여 (기존 권한과 상관없이 그냥 -r--r--r--로 변경)
         chmod u=rw filename
         기존 권한과 상관없이 변경 -> 유저 기존 권한이 r-x 라고 했을 때 rw-로 변경됨

-R 옵션 사용시 하위 디렉토리와 그 파일들 까지 권한이 모두 변경됨


umask

파일 생성시 기본 권한을 설정함
기본 권한의 설정을 XOR 연산으로 구현함

사용 이유
파일 생성 때마다 권한 설정을 하나하나 해주기 불편하기 때문에 umask 로 기본 권한을 설정한 것
이를 이용하여 불필요한 사용자가 권한을 받지 못하도록 기본 설정 변경 가능함

예시
일반적으로 유닉스에서는 022로 설정
파일의 최대 권한은 666
디렉토리의 최대 권한은 777

umask 로 XOR 연산 -> 파일 권한은 644 / 디렉토리의 권한은 755
사실 그냥 777-022 이렇게 각자리 수 빼기하면 됨

메타 문자

~ : 틸드 메타 문자, 사용자의 홈디렉토리

파일 이름 대체 문자

* -> ls *A : _A를 포함한 파일 찾기 (앞에 자릿수는 중요치 않음)

? -> ls f???A : f___A 형식으로 이루어진 파일 찾기

[] -> ls dir[A-S] : [0-9], [AX] (A 또는 X) 등 도 가능

인용부호 메타문자

echo : argument 로 오는 문자열 출력

' ' : 이 안에 있는 모든 메타 문자를 일반 문자 취급

# echo $USER
jin

# echo '$USER'
$USER

" " : $, `, \ 를 제외한 나머지 메타문자 일반 문자 취급

# echo "?$USER*"
?USER*

# echo "$USER"
root

` ` : 특정 명령어의 결과 출력

# echo `date`
Friday, January 10, 2014 09:39:26 AM UTC

# echo "The current time is 'date'"
The current time is Friday, January 10, 2014 09:39:26 AM UTC

#echo "The current time is $(date)"	//위 명령어와 같은 결과 출력
The current time is Friday, January 10, 2014 09:39:26 AM UTC

방향재지정 메타문자
입력 장치, 출력 장치를 다른 곳으로 재지정

>> : 명령어의 결과를 파일에 작성함
> : 파일에 내용이 있더라도 덮어씌움


< : 표준 입력을 키보드가 아닌, 파일로 입력 가능
cat 명령어만 치면 입력을 받을 수 있게 바뀜. 이를 아래와 같이 하면 파일을 입력으로 할 수 있음

# cat < /etc/hosts // command < filename
# host 내용 아래에 좌라락 나옴
# ...

| : 명령어 표준 출력을 또 다른 명령어의 표준 입력으로 받음

# ps -ef | grep bash //command | command
"bash" 패턴 들어가는 결과만 보기

0개의 댓글