"chmod u=rw,go=r,..." 대신 "chmod 644"를 사용하는 이유는 무엇입니까?

"chmod u=rw,go=r,..." 대신 "chmod 644"를 사용하는 이유는 무엇입니까?

나는 몇 년 동안 *nix 작업을 해왔는데 익숙해지지 않는 것 중 하나가 내 코드의 8진수 권한입니다. 줄 길이 외에 chmod 644 ...다른 이유가 있나요 chmod u=rw,go=r ...?

첨부된:8진수 권한에 대한 설명을 찾고 있는 것이 아닙니다.나는 그것이 어떻게 작동하는지 알고 있으며 설명서에 잘 설명되어 있습니다. 나는 왜 사람이 읽을 수 있는 형식보다 8진수를 선호하는지 물었습니다.

답변1

8진수 코드를 사용하면 두 가지 이점이 있다고 생각할 수 있지만 둘 다 그다지 크지 않습니다.

  1. 더 짧고 입력하기가 더 쉽습니다.
  2. 어떤 것들은 정기적으로 사용해야만 이해할 수 있으므로, 직면했을 때 머리를 긁적이거나 문서로 달려가는 일이 없습니다. 예를 들어 chmodPerl이나 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

관련 정보