권한을 나타내는 아홉 비트
Unix 파일은 소유자, 그룹, 그 밖의 사용자에게 각각 읽기(r), 쓰기(w), 실행(x) 권한을 기록해. ls -l의 rwxr-xr--라면 소유자는 세 권한을 모두 갖고, 그룹은 읽기와 실행, 나머지는 읽기만 할 수 있어.
기호로 chmod 사용하기
chmod u+x file: 소유자에게 실행 권한을 더해.chmod g-w file: 그룹의 쓰기 권한을 없애.chmod o= file: 그 밖의 사용자 권한을 모두 없애.chmod a+r file: 모든 범주에 읽기 권한을 더해.
숫자로 chmod 사용하기
읽기 4, 쓰기 2, 실행 1을 더해 범주별 8진수 한 자리를 만들어. rwx는 7, rw-는 6, r-x는 5, r--는 4야. 그래서 chmod 755 script.sh는 rwxr-xr-x, chmod 644 file.txt는 rw-r--r--를 뜻해. SSH 개인 키에는 chmod 600 ~/.ssh/id_ed25519, SSH 디렉터리에는 chmod 700 ~/.ssh을 사용해.
디렉터리에서는 의미가 달라져
디렉터리의 실행 권한은 그 경로 안으로 들어갈 수 있다는 뜻이고, 읽기 권한은 항목 이름을 나열할 수 있다는 뜻이야. 쓰기 권한은 항목을 만들거나 지울 수 있게 해. 그래서 디렉터리에는 일반 파일에 흔한 644가 아니라 실행 권한을 포함한 755가 필요한 경우가 많아.
chown으로 소유자 바꾸기
chown alice file은 소유자를 alice로 바꾸고, chown alice:staff file은 소유자와 그룹을 함께 바꿔. -R은 하위 항목에 재귀 적용해. 다른 사용자에게 파일 소유권을 넘기는 작업은 보통 관리자 권한이 필요해.
umask로 기본 권한 정하기
파일을 만들 때는 0666 & ~umask, 디렉터리는 0777 & ~umask가 적용돼. umask 022라면 새 파일은 644, 디렉터리는 755가 되고, umask 077은 새 파일을 소유자만 읽을 수 있게 해. 비공개 데이터가 들어갈 닷파일을 만들 때 유용한 기본값이야.