-> Linux shell 파일 기본 접근 권한
touch
명령어로 생성한파일은 일반파일(실행권한x)umask [ 옵션 ] [<mask값>]
-S
옵션 - mask값 문자 출력
umask 또는 umask -S 입력시 현재 설정된 mask값 출력
mask값
- 파일 생성시 제한하고 싶은 권한을 표시한 값
마스크값 | 소유자 | 그룹 | 기타 | |
---|---|---|---|---|
002 | 000 | 000 | 010 | |
권한제한 | 없다 | 없다 | 쓰기제한 | |
022 | 000 | 010 | 010 | |
권한제한 | 없다 | 쓰기제한 | 쓰기제한 | |
077 | 000 | 111 | 111 | |
권한제한 | 없다 | 모두제한 | 모두제한 | |
066 | 000 | 110 | 110 | |
권한제한 | 없다 | 읽기쓰기 | 읽기쓰기 |
->접근 권한은 원래 8진수로 4 자리 사용
❗가장 처음 자리수가 특수 접근 권한을 의미
특수 접근 권한에는 1
, 2
, 4
를 부여할 수 있다.
sticky bit
- 맨 앞자리가 1
SetGID
- 맨 앞자리가 2
SetUID
- 맨 앞자리가 4
-> 해당 파일이 실행되는 동안에는 실행한 사용자의 권한이 아니라 파일 소유자의 권하으로 실행
chmod 4<숫자모드3자리> <파일명>
소유자 실행 권한 문자는 s
로 변경
-> 해당 파일이 실행되는 동안 파일을 소유한 그룹의 권한으로 실행
chmod 2<숫자모드3자리> <파일명>
그룹 실행 권한 문자는 's' 로 변경
-> 디렉토리에 부여하여 누구나 파일 생성 가능하게함.
파일 생성 계정이 소유자 (다른 사용자는 삭제 불가)
대표적으로 /tmp 디렉토리가 sticky bit 설정되있음
r
- 디렉토리 내용 읽기 가능
w
- 디렉토리에 파일 생성 가능
x
- 디렉토리에 이동 가능
디렉토리에 sticky bit가 설정되면 이 디렉토리에는 누구나 파일 생성이 가능
chmod 1<숫자모드3자리> <파일명>
기타 실행 권한이 t
로 변경
*
-> 모든 문자 집합 의미
?
-> 한 문자 의미
;
-> 명령을 연결해서 실행
&&
-> lhs 의 명령 정상 수행시 rhs 실행
-> 출력 또는 입력 방향을 변경하는 목적으로 사용, 방향 전환
✳️표준 입출력 장치
- 특별한 장치 지정없이 바로 사용할 수 있는 입출력 장치, 기본 장치
표준 입력 장치
-stdin
( standard input ), 기본 입력 장치를 의미하고 키보드가 해당, 정수0
으로 식별
표준 출력 장치
-stdout
( standard output ), 기본 출력 장치를 의미하고 모니터가 해당, 정수1
로 식별
표준 에러 표시 장치
-stderr
( standard error ), 기본 에러 메시지 표시 장치를 의미하고 모니터가 해당, 정수2
로 식별
>
->왼쪽 명령의 결과를 >
오른쪽 방향의 장치나 파일로 출력 방향 변경
오른쪽에 파일명을 지정하면 항상 해당 파일을 새로 생성한다. ( create )
>>
>>
왼쪽 명령의 결과를 >>
오른쪽 방향의 장치나 파일로 출력 방향 변경
만약 같은 이름의 파일이 있다면 기존 파일에 내용을 추가한다.( append )
장치번호>
->해당 장치로 출력될 내용에 대한 방향 전환
명령 1> 파일
- 표준 출력 장치를 사용하는 출력 결과에 대한 방향 전환예)
cat /etc/hosts 1> result
/etc/hosts 출력 결과( 표준 출력 장치 )를 result로 방향 전환
cat /etc/hosts > result
와 같은 표현
명령 2> 파일
- 표준 에러 표시 장치를 사용하는 출력 결과( error message )에 대한 방향 전환예)
cat sample 2> result
cat 명령에 대한 정상 출력은 표준 출력 장치에 출력하고, error 발생시 error message는 result 파일로 방향 전환
예)ls > ls.out 2> ls.err == ls 1> ls.out 2> ls.err
ls 명령에 대하여 정상 작동 결과는 ls.out, 에러 발생시 결과는 ls.err에 저장
ls > ls.out 2> /dev/null
/dev/null - null 장치를 의미하고 이 장치로 전달하면 그 내용은 그냥 소멸
cat /etc/hosts > result 2>&1
명령 전체 출력 결과( 정상적인 결과, 에러 결과 )를 result에 저장
cat > 파일
<
-> 프로그램 실행 결과를 전달 받는 목적으로 사용
프로세스 통신이라고 한다.
특정 명령에 대한 수행 결과를 기반으로 2차 가공 동작을 수행할 때 많이 사용
명령1 | 명령2
명령1의 실행 결과( 출력 )를 | ( pipe ) 를 통해 명령2에 입력한다.
cat /etc/services | less
/etc/services 파일 내용을 |( pipe ) 를 통해 less 명령에 전달하여 동작
cat /etc/hosts | wc
/etc/hosts 파일 내용을 |( pipe ) 를 통해 wc 명령에 전달하여 동작