파일에서 "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. 따라서 7558진수라고 하려면 실제로 호출해야 합니다 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진수 번호 매기기를 사용하면 다른 그룹 및 사용자 권한 각각에 숫자와 Sticky+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파일에 사용하면 다음과 같은 결과가 나옵니다.읽다특허그룹그리고읽다,쓰다그리고구현하다특허다른 사람.

관련 정보