일관성없는 적용 권한 다음과 같이 매우 혼란 스럽습니다. OSX에서 “.app”을 만들려면

특정 응용 프로그램 (Linux 및 OSX)을 설치 한 후 스크립트의 권한을 변경하면 다음과 같이 매우 혼란 스럽습니다.

OSX에서 “.app”을 만들려면 루트 권한으로 / Aplications 디렉토리에 여러 파일 (응용 프로그램, 리소스, 라이브러리)이있는 디렉토리를 배치해야합니다. CD 또는 네트워크에서 앱을 가져올 수 있으므로 권한이 실제로 필요한 것은 아닙니다. 응용 프로그램은 실행 권한이 필요하며 라이브러리도 필요하지만 일부 항목은 “x”가 아닌 “r”일 수 있습니다. 나는 “w”권한을 건드리지 않고있다-여기서는 안된다.

chmod -R +rx /Applications/myApp

모든 내부 디렉토리에 대해 완벽하게 수행됩니다 (예 : 일부 항목은 필요하지 않지만 중요하지 않은 경우 + x 권한을 갖습니다).

Linux 및 OSX의 경우 :에 일부 파일을 파일로 저장 (파일로 인쇄)하고 있습니다 /tmp/company/product. 설치 중에도 추가했습니다.

chmod -R +rw /tmp/company

결과는

rwx r-x r-x

폴더에 777 권한을 적용한 결과 … r과 w 권한을 추가해도 왜 작동하지 않는지 이해가되지 않습니다.

아마도 누군가가 설명 할 수 있습니까?

나도 했어

chmod +rw /tmp/company
chmod +rw /tmp/company/product

동일한 효과로 권한이 적용되지 않았습니다. (OSX의 경우 ls -l이 올바른 권한을 표시했지만 Finder 특성에 권한이 표시되지 않았고 파일이 디렉토리에 작성되지 않았습니다 … Linux에서 ls -l은 실제로 “other”에 대한 rx 권한 만 표시했습니다.

숫자가 아닌 + w 권한을 적용 할 때 특별합니까?



답변

umask와 관련이 있습니다. chmod 맨 페이지에서 이것을 참조하십시오.

문자 ‘ugoa’의 조합은 파일에 대한 사용자의 액세스 권한을 변경합니다. 파일을 소유 한 사용자 (u), 파일 그룹의 다른 사용자 (g), 파일 그룹에없는 다른 사용자 (o), 또는 모든 사용자 (a). 이들 중 어느 것도 주어지지 않으면, 효과는 ‘a’가 주어진 것처럼 보이지만 umask에 설정된 비트는 영향을받지 않습니다.

설명한 내용에 따라 umask는 0022 일 수 있습니다. 따라서 chmod에 ‘ugoa’중 하나를 지정하지 않으면 그룹 및 기타 권한이 설정되지 않습니다. chmod a+rw /tmp/company대신 사용하십시오 .