더북(TheBook)

이 예에서 파일 소유자는 읽기(r), 쓰기(w), 실행(x), 즉 모든 권한을 행사할 수 있다. 그룹과 나머지 사용자들은 읽고 실행할 수는 있지만, 파일 내용은 변경할 수 없다.

그런데 이 권한이 실제로 의미하는 것은 무엇일까? 여기에 있는 zcat 파일은 압축 파일을 읽는 명령줄 프로그램(스크립트)이다. 권한에 따라 모든 사용자가 스크립트 내용을 읽거나 실행(zcat myfile.zip과 같은 형식으로 실행)할 수 있지만, 소유자만 파일 내용을 편집(w)해 변경할 수 있다. 만약 소유자가 아닌 다른 사용자가 이 파일을 편집하려고 시도하면 쓰기 권한이 없다는 경고 메시지를 받게 된다.

파일에 대한 접근 권한을 변경하려면 모드 변경(change mode) 도구, chmod를 다음과 같이 사용한다.

# chmod o-r /bin/zcat
# chmod g+w /bin/zcat

이 예는 나머지 사용자(o)의 읽기 권한을 제거하고 그룹(g) 사용자들에게 쓰기 권한을 추가한다. 파일의 소유자는 u(user를 의미)로 표현된다.

그룹이란?

그룹(group)은 일반적인 사용자 계정처럼 생각할 수 있다. 접근하거나 접근하지 못하는 것은 파일 권한에 의해 정의된다. 그런데 리눅스 시스템에 그룹으로 로그인할 수는 없다. 그러면 그룹은 왜 만들고, 어디에 사용할까? 간단히 설명하면 다음과 같다.

그룹은 리소스를 강력하고 아주 효율적으로 구성하는 방법이다. 간단히 예를 들면 다음과 같다. 직원이 수십 명 있는 회사가 있다. 직원들은 서버에 접근하지만, 모든 직원이 같은 리소스에 접근하는 것은 아니다. 이럴 때 dev나 IT 같은 그룹을 만들 수 있다. 그리고 사용자 계정을 만들 때 개발자는 모두 dev 그룹에 추가하고 시스템 관리자는 모두 IT 그룹에 추가한다. 그러고 나서 어떤 시스템 설정 파일을 사용하게 되었을 때 십여 명이나 되는 시스템 관리자를 일일이 파일 권한에 추가하는 대신 IT 그룹에 권한을 주면 된다. 그러면 IT 그룹에 속한 사용자들은 자동으로 권한을 갖게 되고 dev 그룹에 속한 사용자들은 권한을 갖지 못한다.

시스템의 모든 사용자는 자신의 그룹에 따라 자동으로 리소스에 대한 권한이 생긴다. 그래서 여러분이 만든 파일은 기본으로 여러분의 <사용자 계정>이 소유자가 되고, 여러분의 <사용자 계정> 그룹에 속하게 된다. 그룹에 대한 자세한 설명은 9장을 참조하기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.