파일에 `chmod 7`을 실행하면 어떤 결과가 나오나요?

파일에 `chmod 7`을 실행하면 어떤 결과가 나오나요?

나는 알고 chmod 777있다읽다,쓰다, 그리고실행하다~을 위한사용자,그룹, 그리고다른 사람

하지만 내가 그냥 하면 어쩌지 chmod 7?

그게 rwx그 사람에게만 해당되는 건가요?사용자?

답변1

Ramesh의 답변은 완벽하게 정확하지만 파일 모드에 대한 더 자세한 설명을 제공하고 싶었습니다.

755및 같은 숫자는 777특별해 보이고 파일 모드에서만 의미가 있을 수 있지만 실제로는 매우 기본적입니다.

이 숫자는 실제로 8진수입니다. 10진수는 10진수, 16진수는 16진수, 2진수는 2진수, 8진수는 8진수입니다. 즉, 계산하는 대로 진행됩니다 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 .... 따라서 숫자는 007단지 8진수입니다 7. 8진수 755는 숫자일 뿐이며 49310진수와 동일합니다.
이제 8진수를 다른 진수와 구별하는 방법은 8진수 앞에 0. 그래서 말하는 755것은 8진수이므로 실제로는 로 참조해야 합니다 0755. 이 chmod명령은 파일 모드를 참조하는 가장 일반적인 방법이므로 모든 입력 숫자가 8진수라고 가정합니다.

이제 파일 모드에서 8진수를 사용하는 이유는 무엇입니까? 우선 모드가 다음과 같은 비트마스크일 뿐이라는 점을 이해해야 합니다.

111111111111 - 12 binary bits
============
           1 - Other execute
          1  - Other write
         1   - Other read
        1    - Group execute
       1     - Group write
      1      - Group read
     1       - User execute
    1        - User write
   1         - User read
  1          - Sticky bit
 1           - Set group ID
1            - Set user ID

"기타", "그룹", "사용자" 각각에 대해 3비트가 있다는 점에 유의하세요. 이진수 111는 이며 7, 이는 가장 높은 한자리 8진수 값입니다. 따라서 8진수 번호 매기기를 사용하면 다른 그룹, 사용자 권한 각각에 한 자리 숫자와 함께 고정+setuid+setgid에 대한 추가 숫자가 부여됩니다.

chmod 7따라서 이를 통해 "무엇인가 " 라는 원래 질문으로 돌아갈 수 있습니다 .
글쎄, 이제 우리는 그것이 단지 8진수이고 비트마스크라는 것을 알았으므로 이것을 알아낼 수 있습니다. 8진수 7는 2진수입니다 111. 위의 비트 위치를 사용하여 '기타' 비트 3개를 모두 설정하고 '기타' 실행, 읽기 및 쓰기 액세스 권한을 부여하는지 확인할 수 있습니다. 그리고 이것은 단지 숫자이기 때문에 다른 모든 비트는 0이고 설정되지 않습니다.

답변2

그 반대입니다. rwx에 대한 허가를 부여할 것입니다 .다른 사람.

touch samplefile
ls -l samplefile
-rw-rw-r-- 1 ramesh ramesh 0 Oct 16 22:29 samplefile

이제 명령을 실행하면 다음과 같이 출력됩니다.

chmod 7 samplefile
ls -l samplefile
-------rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile

의 매뉴얼 페이지에서 chmod,

숫자 모드는 1~4개의 8진수(0-7)이며 값 4, 2, 1의 비트를 더하여 파생됩니다. 생략된 숫자는 선행 0으로 간주됩니다.

이제 다음과 같은 명령을 실행하여 동일한 내용을 확인할 수 있습니다.

chmod 47 samplefile
ls -l samplefile
----r--rwx 1 ramesh ramesh 0 Oct 16 22:29 samplefile

보시다시피 chmod 47파일을 사용하면읽다허가그룹그리고읽다,쓰다그리고실행하다허가다른 사람.

관련 정보