--> r the file is readable
--> w the file is writable
--> x the file is executable
* the indicated permission is not granted
ls -al 커맨드로 확인해보면 drwxrwxrwx 이란 10자리 권한 필드가 보이죠?
첫번째 d 가 위치한 곳은 파일의 성격을 말해주고 두번째 부터 마지막 자리 까지가 권한을 의미합니다.
각권한은 rwx rwx rwx 세자리씩 나뉘어 지구요 각 세자리는 owner, group, other 를 의미합니다.
그러니깐 -rw-r--r-x 요런 권한을 가진 파일이 있다면 파일의 소유자는 읽기,쓰기 권한이 있고,
이걸 일기 쉽게 각 자리수를 421 로 대신해 읽기도 하는데요.. 그럼 위의 예는
645 가 되는거죠.
-rw-r--r-x
42 4 4 1
그럼 소유자,그룹,그밖의다른 사용자에게 모두 권한이 있는걸 숫자로 표현하면
777 이 되겠지요 ..
umask 는 파일을 생성할때 디폴트로 줄 권한을 의미합니다.
사용방법은 umask 022 <--- 요러케 숫자로된 파일에 부여할 권한을 설정하는거죠
그러면 777-022=755 되서 파일이 처음 생성될때 그룹과 other 에게는 쓰기 권한을 부여 하지 않게 됩니다.
그리고 윗분말씀처럼 일반적으로 vi 로 생성한 file 같은 경우는
umask가 000 으로 setting 이 되어도 x 가 추가되지 않아요~ 근데 cd 로 이동 가능하
기 위해서는 x permission 이 있어야 하기 때문 입니다.
따라서 000 으로 setting 되어도 file은 666 로 생성되는 것이고 directory 는 777 로 생성 됨.
문제
csh를 사용하는 솔라리스 시스템 로그인을 한 상태에서 파일을 새로 생성할때마다
파일모드가 -rw-r-r-- (644)로 된다. 하지만 이 파일모드는 다른 유저가 파일
내용을 열람할 수 있는 취약점이 있기 때문에 좋지 않아서 일일이 생성된 파일에
대해서 chmod명령어를 통하여 -rw------- (600)으로 바꿔줘야만 했다.
이 작업은 번거롭기 때문에 쉘환경변수를 적절히 변경하여 새로 파일을
생성할때마다 default 파일모드가 -rw------- (600)이 되도록 설정하시오.
단, 이문제에서는 현재 접속되어 있는 쉘에 대해서만 일회성으로 바로잡으면 되며,
쉘환경변수 값을 영구적으로 바로잡기 위해 resource파일을 변경할 필요는없다.
풀이
umask : 파일이나 디렉토리를 생성할때 권한을 지정해줌
umask <= 설정된 값 보기
umask 명령어는 새로운 파일이나 허가권 지정 명령어로
일반 파일인 경우 666 , 디렉토리인 경우 777에서 umask 값을 뺀 값을
기본 허가권으로 조정
예를들어 umask 가 0022 인 경우
파일 666 - 022 = 644 , 디렉토리 777 - 022 = 755
디폴트값 수정 umask 027 > 로그아웃시 022로 변경됨
>> /etc/profile의 값을 수정하면 로그아웃시에도 유지할수 있음
umask는 주어진 콘테스트에서 새로 만들어진 파일과 디렉토리 퍼미션에 적용될 마스크를 지정해주는 지시자입니다. 새로운 디렉토리와 파일들이 쓰기 권한을 가진 그룹이나 전체가 되는 것을 막기 위해 Umask를 합리적인 표준값인 002, 007, 020, 070, 022등으로 설정합니다. 002 umask가 의미하는것은 디렉토리는 퍼미션 775 파일은 퍼미션 664를 갖도록 하는겁니다.
Umask | 디렉토리 허가권 | 파일 허가권 |
002 | 775 | 664 |
007 | 770 | 660 |
020 | 757 | 646 |
070 | 705 | 604 |
022 | 755 | 644 |
1.현재 umask 설정값을 확인
#umask
022
2.생성시 600으로 설정을 바꾸기 위해서 umask를 이용해서 변경.
#umask 077
#finish






q7hint.pdf








