안녕하세요 ki입니다.
이번 Exp는 파일의 권한을 변경하는 명령어 chmod입니다.
지금까지 Exp는 파일을 움직이는 명령어였는데요.
2024.04.25 - [분류 전체 보기] - [Linux] 명령어로 파일을 움직여 보자
[Linux]명령어로 파일을 움직여 보자
안녕하세요 ki입니다.이번 Exp는 리눅스 파일 이동 관련 명령어입니다.Crontab으로 일정 시간에 백업을 하는 개발을 하면서 파일 이동과 복사를 필요했던 경험이 있습니다.이전 글에서는 로컬에서
kkkkt.tistory.com
파일을 조작할 때에도 권한이 없음으로 설정이 됐으면 조작이 제한적입니다.
최소 읽기 권한은 있어야 이동이나 복사가 가능합니다.
저 또한 파일을 읽어야 할 상황에서 읽기 권한이 없어 chmod권한을 부여하여 개발을 했던 경험이 있었습니다.
권한 부여 명령어 chmod
chmod는 "change mode"의 약어입니다. 주로 파일 또는 디렉토리에 대한 읽기, 쓰기, 실행 권한을 설정하거나 변경하는 데 사용됩니다.
# chmod [옵션] [모드를 표시할 수치나 기호] [파일]
# ex) script.sh 파일에 실행 권한을 추가/제거합니다.
chmod +x script.sh
chmod 옵션은?
-R, --recursive: 디렉토리와 그 내용을 재귀적으로 변경합니다.
-c, --changes: 변경된 파일만 출력합니다.
-v, --verbose: 수행된 작업에 대해 자세한 정보를 출력합니다.
-f, --quiet, --silent: 에러 메시지를 출력하지 않고 조용히 실행합니다.
--reference=참조파일: 참조 파일의 퍼미션을 기반으로 대상 파일의 퍼미션을 설정합니다.
-u, --users: 사용자의 퍼미션을 변경합니다.
-g, --groups: 그룹의 퍼미션을 변경합니다.
-a, --all: 모든 사용자와 그룹에 대해 퍼미션을 변경합니다.
-x, --remove-executable: 실행 권한을 추가/제거합니다.
다양한 옵션들을 사용해서 파일의 권한을 설정하고 변경합니다.
chmod [모드] 란에 적는 숫자와 기호는 뭘까?
명령어에서 "모드(mode)"는 파일이나 디렉토리의 퍼미션(허락 or 허가)을 나타내는 방법을 의미합니다.
[모드]는 사용자(user), 그룹(group), 기타(others)에 대한 권한을 나타내고 세 자리 숫자로 표현합니다.
- 첫 번째 숫자는 사용자(user)
- 두 번째 숫자는 그룹(group)
- 세 번째 숫자는 기타(others)
권한은 읽기, 쓰기, 실행 3가지 권한입니다. 각 권한에는 자세히 설명하자면
- 읽기 (read / 4): 파일을 읽을 수 있는 권한을 나타냅니다. 폴더인 경우 해당 폴더 내의 파일 목록을 볼 수 있음.
- 쓰기(write / 2): 파일을 수정하거나 삭제할 수 있는 권한을 나타냅니다. 폴더 경우 해당 폴더 내의 파일을 생성, 수정 또는 삭제할 수 있음.
- 실행(execute / 1): 파일을 실행할 수 있는 권한을 나타냅니다. 폴더 경우 해당 폴더 접근할 수 있는 권한을 나타냅니다.
위 권한들은 숫자들로 권한을 부여하고 조합할 수 있습니다.
- 읽기(read) + 쓰기(write) + 실행(execute): 7
- 읽기(read) + 쓰기(write): 6
- 읽기(read) + 실행(execute): 5
- 읽기(read): 4
- 쓰기(write) + 실행(execute): 3
- 쓰기(write): 2
- 실행(execute): 1
- 권한 없음: 0
chmod 755 file
위에 명령어는 사용자에게는 읽기, 쓰기, 실행 권한(7), 그룹과 기타에게는 읽기와 실행 권한(5)을 부여하는 명령어입니다.
명령어를 사용 후 퍼미션은 ls -l 명령어를 사용하여 확인할 수 있습니다.
# ls -l 입력 후 출력 값
# r: 읽기 권한
# w: 쓰기 권한
# x: 실행 권한
drwxr-xr-x 3 user group 4096 Mar 1 10:15 example_directory
drwxr-xr-x / 3 / user group / 4096 / Mar 1 10:15 / example_directory
(1) / (2) /(3) / (4) / (5) / (6)
(1) d는 디렉토리를 뜻하고 rwx는 소유자 권한 r-x는 그룹의 읽기와 실행 r-x는 기타 사용자가 읽기와 실행 권한을 의미
(2) 디렉토리를 포함한 파일의 하드 링크 수
(3) 파일 또는 디렉토리의 소유자 / 파일 또는 디렉토리의 소속 그룹
(4) 파일크기 / 디렉토리에 속한 파일의 개수
(5) 마지막 수정 시간
(6) 파일 또는 디렉토리 이름
권한을 꼭 확인하여 필요한 권한을 부여하고 동작을 chomod와 ls -l을 이용하여 사용해 보시기 바랍니다.
'Exp > Linux' 카테고리의 다른 글
[Linux] 리눅스 경로는 어디서부터 일까?(2) (0) | 2024.04.30 |
---|---|
[Linux] 리눅스 경로는 어디서 부터일까?(1) (0) | 2024.04.28 |
[Linux]명령어로 파일을 움직여 보자 (0) | 2024.04.25 |
[Linux] scp 명령어에 대해서 (0) | 2024.04.25 |
[Linux] 쉘스크립트로 If문을 만들어보자 (0) | 2024.04.23 |