umask는 새로 생성되는 파일이나 디렉토리의 기본 권한을 설정하는 명령어로, 파일 권한을 제한하는 데 사용됩니다. 리눅스에서 파일과 디렉토리의 기본 권한은 각각 666과 777입니다. 그러나 umask 명령어를 통해 이러한 권한을 제한할 수 있습니다. umask는 파일 또는 디렉토리가 생성될 때 기본적으로 부여되는 권한에서 뺄셈 방식으로 권한을 제한합니다.
기본적으로 umask는 8진수 값으로 표현되며, 이 값은 사용자(user), 그룹(group), 다른 사용자(others)에 대한 권한을 각각 설정합니다.
umask의 기본 동작
파일은 기본적으로 666(rw-rw-rw-) 권한을 가지며, 디렉토리는 777(rwxrwxrwx) 권한을 가집니다. umask는 이러한 기본 권한에서 뺄 값을 지정하여 최종적으로 파일이나 디렉토리의 권한을 결정합니다. 예를 들어 umask 값이 022일 경우:
- 파일: 666 - 022 = 644 (rw-r--r--)
- 디렉토리: 777 - 022 = 755 (rwxr-xr-x)
이렇게 umask 값에 따라 파일과 디렉토리의 권한이 달라지게 됩니다.
umask 명령어 확인
현재 umask 값을 확인하려면 umask 명령어를 실행합니다.
user@linux:~$ umask
0022
이 명령어는 현재 umask 값이 022임을 보여줍니다.
umask 값 설정
umask 값을 변경하려면 원하는 값과 함께 umask 명령어를 입력하면 됩니다. 예를 들어 umask 027로 설정하려면 다음과 같이 입력합니다.
user@linux:~$ umask 027
이제 새로 생성되는 파일과 디렉토리의 권한은 다음과 같습니다:
- 파일: 666 - 027 = 640 (rw-r-----)
- 디렉토리: 777 - 027 = 750 (rwxr-x---)
umask 예시
다음은 umask가 파일과 디렉토리의 기본 권한에 어떻게 영향을 미치는지에 대한 예시입니다.
1. 현재 umask 값 확인
user@linux:~$ umask
0022
2. 디렉토리 생성 후 권한 확인
user@linux:~$ mkdir testdir
user@linux:~$ ls -ld testdir
drwxr-xr-x 2 user user 4096 Oct 18 12:34 testdir
umask 값이 022일 때, testdir 디렉토리는 755 권한을 가집니다.
3. 파일 생성 후 권한 확인
user@linux:~$ touch testfile.txt
user@linux:~$ ls -l testfile.txt
-rw-r--r-- 1 user user 0 Oct 18 12:35 testfile.txt
umask 값이 022일 때, testfile.txt 파일은 644 권한을 가집니다.
4. umask 값 변경 후 디렉토리와 파일 생성
user@linux:~$ umask 027
user@linux:~$ mkdir newdir
user@linux:~$ touch newfile.txt
user@linux:~$ ls -ld newdir
drwxr-x--- 2 user user 4096 Oct 18 12:36 newdir
user@linux:~$ ls -l newfile.txt
-rw-r----- 1 user user 0 Oct 18 12:36 newfile.txt
umask 값을 027로 변경한 후 생성된 newdir 디렉토리는 750 권한을, newfile.txt 파일은 640 권한을 가지게 됩니다.
umask의 영구 설정
umask 값은 기본적으로 셸 세션 동안에만 적용되며, 시스템을 재부팅하거나 새로운 셸을 실행하면 기본 값으로 돌아갑니다. umask 값을 영구적으로 설정하려면 /etc/profile 또는 ~/.bashrc 파일에 umask 명령어를 추가하면 됩니다.
예를 들어 ~/.bashrc 파일에 umask 027을 추가하면 다음과 같이 설정됩니다.
user@linux:~$ echo 'umask 027' >> ~/.bashrc
이제 사용자가 로그인할 때마다 umask 값이 027로 설정됩니다.
참고사이트
'Linux' 카테고리의 다른 글
[리눅스] nohup 명령어 완벽 가이드 사용법(백그라운드 실행) (1) | 2024.10.19 |
---|---|
[리눅스] nice, renice 명령어 완벽 가이드 사용법(프로세스 우선순위 변경) (0) | 2024.10.18 |
[리눅스] iostat 명령어 완벽 가이드 사용법(디스크 I/O 성능 확인) (0) | 2024.10.18 |
[리눅스] lsof 명령어 완벽 가이드 사용법(네트워크 연결 상태 확인) (0) | 2024.10.18 |
[리눅스] sudo -s 명령어 완벽 가이드 사용법(root 쉘로 전환) (1) | 2024.10.16 |
[리눅스] sudo !! 명령어 완벽 가이드 사용법 (0) | 2024.10.16 |
[리눅스] timedatectl 명령어 완벽 가이드 사용법(시스템 시간 설정) (0) | 2024.10.16 |
[리눅스] cal 명령어 완벽 가이드 사용법(달력 출력) (0) | 2024.10.15 |