change mode의 약자로 파일이나 디렉토리의 권한(permission)을 변경할 수 있다.
파일 정보 보기
코랩에서 실행해본 결과이다. 나는 캐글 데이터셋을 다운로드하기 위해 kaggle.json의 권한을 변경하고 싶다!
예를 들어 kaggle.json의 권한은 rw-r--r--인데 3개씩 나눠서 소유자, 소유그룹, 그외 사용자의 권한을 나타낸다.
- r : read
- w : write
- x : excute
맨 앞에 d는 directory를 의미한다.
사용 방법
chmod [변경될 퍼미션값][변경할 파일]
8진법 | 2진법 | 파일모드 |
0 | 000 | --- |
1 | 001 | --x |
2 | 010 | -w- |
3 | 011 | -wx |
4 | 100 | r-- |
5 | 101 | r-x |
6 | 110 | rw- |
7 | 111 | rwx |
변경될 퍼미션값은 위의 테이블을 참고하면 된다.
나는 다음과 같이 사용했다.
!chmod 600 ~/.kaggle/kaggle.json
600이니까 ~/.kaggle/kaggle.json 파일의 권한을 rw-------으로 바꿔줘! 이다.
잘 바뀌었다.
권한을 변경하고 보니까 느껴진게 데이터셋을 다운로드할 때는 이미 기존에도 rw 권한을 갖고있어서 변경하지 않아도 상관없지 않을까 싶어서 실행해봤는데 다음과 같은 경고문구가 떳다.
내 생각대로 데이터셋을 다운로드 받는데는 아무런 문제가 없지만 내 kaggle api 키가 소유그룹이나 다른 사용자에게도 read 권한이 그대로 남아있어서 그런 것 같다. 리눅스는 보안을 중요시 여기는 것 같다.
참고