umask는 기본 권한을 750으로 설정합니다.

umask는 기본 권한을 750으로 설정합니다.

다음 문제를 해결 중입니다.유닉스 교과서.

나는 이 문제를 해결하려고 노력 중이야(8장 15호, 207쪽):

  1. 사용자에게는 읽기, 쓰기 및 실행 권한이 있고, 사용자의 그룹에는 읽기 및 실행 권한이 있으며, 사용자의 그룹에는 읽기 및 실행 권한이 있고, 다른 모든 사용자에게는 읽기, 쓰기 및 실행 권한이 있도록 기본 액세스 모드를 설정하는 명령줄을 제공합니다. 새로 생성된 실행 파일입니다. 파일에 권한이나 디렉터리가 없습니다. 작동하는지 확인하기 위해 어떻게 테스트하시겠습니까?

내 원래 대답은 을 사용하는 것이 umask 027었지만나는 찾았다touchnot 에 실행 권한이 적용되거나 적용되지 않고 vim예상대로 새 파일이 생성됩니다 .umask666777

내 최종 목표는 권한 값을 갖는 것이므로 이 명령 에 적용된 어떤 것도 결과가 발생하지 않으므로 750이 명령은 불가능한 것 같습니다 .umaskumask666750

이 섹션의 모든 질문은 의도한 목표를 달성하는 데 사용할 수 없기 때문에 이 질문에 결함이 chmod있습니까 ?umaskumask

답변1

질문에는 다음 부분이 포함되어 있습니다.

새로 생성된 실행 파일 또는 디렉터리의 경우.

새로 생성된 실행 파일과 디렉터리는 모드 0777을 사용하여 생성될 수 있으므로 필요한 실행 권한도 얻게 됩니다. 따라서 질문이 올바르게 공식화된 것 같습니다. umask 027이 작동해야 합니다.

답변2

모든이 문서들777에서 umask를 빼면 umask를 결정할 수 있습니다(666은 기본적으로 실행 가능하지 않은 파일에 권장됩니다).

그래서 당신은 다음과 같은 것을 할 수 있습니다

PERM=750
UMASK=$(expr 777 - $PERM)
echo $UMASK
>>> 27

앞에 0이 없기 때문에 어떤 경우에는 문제가 될 수 있지만 원하는 경우에는 잘 작동합니다.

관련 정보