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

permission 구조
-rw-rw-r--
첫번째 공간 - d: 디렉토리 | l: 심볼릭링크 | 없으면 파일
3개씩 끊어서 사용자/그룹/기타(사용자도 그룹에도 속하지 않음) 의 권한
rwrwr*각 문자가 뜻하는 바
r = readable
w = writable
x = executable
permission 변경
8진수 모드 : chmod [8진수 3자리] 파일명
심볼릭 모드 : chmod [(u,g,o)(+, =, -)(r, w, x)] 파일명
8진수 모드
8진수로 rwx 나타내기
순서대로 4(), 2(), 1() 을 나타냄
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옵션 사용시 하위 디렉토리와 그 파일들 까지 권한이 모두 변경됨
파일 생성시 기본 권한을 설정함
기본 권한의 설정을 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" 패턴 들어가는 결과만 보기