나는 몇 년 동안 *nix 작업을 해왔는데 익숙해지지 않는 것 중 하나가 내 코드의 8진수 권한입니다. 줄 길이 외에 chmod 644 ...
다른 이유가 있나요 chmod u=rw,go=r ...
?
첨부된:8진수 권한에 대한 설명을 찾고 있는 것이 아닙니다.나는 그것이 어떻게 작동하는지 알고 있으며 설명서에 잘 설명되어 있습니다. 나는 왜 사람이 읽을 수 있는 형식보다 8진수를 선호하는지 물었습니다.
답변1
8진수 코드를 사용하면 두 가지 이점이 있다고 생각할 수 있지만 둘 다 그다지 크지 않습니다.
- 더 짧고 입력하기가 더 쉽습니다.
- 어떤 것들은 정기적으로 사용해야만 이해할 수 있으므로, 직면했을 때 머리를 긁적이거나 문서로 달려가는 일이 없습니다. 예를 들어
chmod
Perl이나 C에서는 8진수를 사용해야 합니다.
때때로 매우 간단한 유틸리티는 특히 GNU가 아닌 사용자 영역에서 "친숙한" 버전을 처리할 수 없습니다.
또한 일부 유틸리티는 8진수를 출력합니다. 예를 들어 umask
현재 umask가 무엇인지 확인하기 위해 실행하면 8진수 형식으로 출력됩니다(bash에서는 umask -S
기호 형식임).
간단히 말해서 이를 선호하는 유일한 이유는 더 적은 문자를 입력하기 위한 것이라고 말하고 싶습니다. 그러나 사용하지 않기로 선택하더라도 런타임 시 8진수 코드 변경 사항 중 하나로 파악할 수 있도록 매핑 방법을 알아야 합니다. 그것은 8진수만 수행합니다. 그러나 5가 무엇에 매핑되는지 즉시 알 필요는 없으며 rx
단지 그것을 알아낼 수 있으면 됩니다.
답변2
제가 너무 오랫동안 8진수를 사용해 온 것 같아요.
7은 rwx(무엇이든 수행), 5는 rx(실행하려면 읽어야 함), 6은 wr(수정해야 하는 모든 데이터 파일), 4는 r(자세히 살펴보겠습니다) it), 0은 -(죄송합니다. 여기서는 볼 것이 없습니다)입니다. 순서는 나, 우리, 모두다. 이것이 기본 조합입니다.
755 내가 바꾸고 실행할 수 있고, 다른 사람도 실행할 수 있습니다.
내가 644장을 바꾸면 다른 사람들도 읽을 수 있어요.
444 모두가 읽을 수 있도록 여기서 멈추겠습니다.
500 나는 그것을 구현할 수 있고 그것이 변경되는 것을 원하지 않으며 다른 사람들은 그것을 그대로 둡니다.
나에게 그것은 짧고 요점이다. 9 글자와 파일 사양을 계속합니다.
답변3
나는 8진수 표기법을 별로 좋아하지 않았고, 직접 rwxr-xr-x
표기법이 더 단순해 보이기 때문에 항상 직접 표기법을 사용해 왔습니다. 그러나 내가 아는 한, 8진수 표현은 실제로 우리가 기억하기 쉽도록 하기 위해 존재합니다(어떻게 작동하는지 모르겠습니다).
나는 8진수가 가져올 수 있는 유일한 이점은 모호성이 없다는 점이라고 생각합니다. 8개의 서로 다른 권한 비트 구성은 다른 숫자로 표시되는데, 이는 누군가 실수 w
로 있어서는 안 되는 위치에 배치하는 데 도움이 될 수 있다고 확신합니다 .
불행하게도 나는 이미 다음 표를 기억해 두었습니다.
# r w x
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
답변4
8진수 모드는 일부 시스템에서 setuid 및 setgid 비트를 제거할 수 있습니다.
페도라 16:
$ mkdir dir
$ chmod 2775 dir
$ stat -c %a dir
2775
$ chmod 770 dir
$ stat -c %a dir
2770
( 2
예약된)
FreeBSD 9:
$ mkdir dir
$ chmod 2775 dir
$ stat -f %Mp%Lp dir
2775
$ chmod 770 dir
$ stat -f %Mp%Lp dir
0770
( 2
이 되다 0
)
파일이나 디렉터리의 권한을 변경하려면 변경하려는 비트만 지정하는 것이 가장 좋습니다(예: chmod o= dir
또는 위의 예).chmod o-rwx dir