심볼릭 표기법으로 권한 관리하기
숫자 표기법은 간결하지만, 단 하나의 권한만 변경하고 싶을 때는 심볼릭 (문자) 표기법이 더 직관적일 수 있습니다. 심볼릭 표기법은 문자를 사용하여 사용자, 그룹, 기타 사용자를 나타내고 연산자를 사용하여 권한을 추가하거나 제거합니다.
먼저, 내용이 포함된 새 스크립트 파일을 만들어 보겠습니다.
cd ~/project
echo '#!/bin/bash\necho "Hello, World"' > script.sh
이 명령어는 두 가지 작업을 수행합니다.
script.sh라는 새 파일을 생성합니다. .sh 확장자는 일반적으로 쉘 스크립트에 사용됩니다. 쉘 스크립트는 순차적으로 실행되는 일련의 명령어들을 담고 있는 실행 파일입니다.
- 파일에 두 줄의 내용을 씁니다.
#!/bin/bash(쉬뱅이라고 부름) 은 시스템에 이 파일이 bash 스크립트임을 알려줍니다. 쉬뱅 라인은 스크립트를 실행하는 데 사용될 인터프리터를 지정합니다. 여기서는 Bash 인터프리터의 경로인 /bin/bash입니다.
echo "Hello, World"는 스크립트가 실행될 때 "Hello, World"를 출력하는 명령어입니다.
\n은 줄바꿈 문자로, 두 명령어가 파일 내에서 서로 다른 줄에 위치하도록 합니다.
이제 초기 권한을 확인해 봅시다.
ls -l script.sh
다음과 유사한 결과가 나타날 것입니다.
-rw-rw-r-- 1 labex labex 32 Jul 29 16:30 script.sh
보시는 것처럼 처음에는 소유자와 그룹에게 읽기 및 쓰기 권한이 있고, 기타 사용자에게는 읽기 권한만 있습니다. 프로그램을 실행하는 데 필요한 실행 권한이 없습니다.
스크립트를 실행해 봅시다.
./script.sh
스크립트에 실행 권한이 없기 때문에 "Permission denied" 오류가 발생할 것입니다. ./ 부분은 쉘에게 현재 디렉토리에 있는 스크립트를 실행하라고 지시하는 것입니다.
이제 심볼릭 표기법을 사용하여 소유자에게 실행 권한을 추가해 보겠습니다.
chmod u+x script.sh
이 명령어에서:
u는 사용자 (소유자, user) 를 가리킵니다. 다른 옵션으로는 그룹을 뜻하는 g, 기타 사용자를 뜻하는 o, 그리고 모두 (사용자, 그룹, 기타 사용자) 를 뜻하는 a가 있습니다.
+x는 실행 권한을 추가합니다. + 기호는 권한을 추가하고, - 기호는 권한을 제거합니다.
따라서 u+x는 "소유자에게 실행 권한을 추가하라"는 의미입니다.
변경 사항을 확인해 봅시다.
ls -l script.sh
이제 다음과 같이 표시되어야 합니다.
-rwxrw-r-- 1 labex labex 32 Jul 29 16:30 script.sh
소유자는 이제 rwx(읽기, 쓰기, 실행) 권한을 갖게 되었습니다.
이제 스크립트를 다시 실행해 봅시다.
./script.sh
이번에는 "Hello, World"라는 출력이 정상적으로 나타날 것입니다.
이 예제는 스크립트에 실행 권한을 추가해야 하는 이유와 권한 추가 전후의 차이를 명확히 보여줍니다. 심볼릭 표기법을 사용하면 전체 숫자 값을 다시 계산할 필요 없이 특정 권한만 쉽게 수정할 수 있습니다.