모드 값 0777과 777 사이에 차이가 있습니까? 0777로 변경된 작업에서 코드가 변경되는 것을 보았습니다.

nfs setattr이 작동하도록 모드 값이 777에서 0777로 변경된 작업에서 코드가 변경되는 것을 보았습니다. 두 값의 차이는 무엇입니까?



답변

그것들을 chmod(명령 줄 프로그램)으로 전달한다면 아무런 차이가 없습니다. 그러나 C 프로그램 또는 이와 유사한 경우 07778 진수 (3 비트 세트의 1 비트, 원하는 것입니다) 777는 10 진수이며 비트 패턴이 다릅니다. ( chmod숫자 인수를 8 진수로 해석하므로 선행 0이 필요하지 않습니다.)

0777 (8 진수) == 바이너리 0b 111 111 111    == 권한 rwxrwxrwx   (== 10 진수 511)

777 (10 진수) == 이진 0b 1 100 001 001== 권한 sr----x--x(== 8 진수 1411)


답변

첫 번째 비트는 스티키 비트에 사용됩니다 http://en.wikipedia.org/wiki/Sticky_bit

4 자리 숫자를 사용하여 권한을 설정하면 첫 번째 비트가이 비트를 설정하거나 제거합니다.


답변

흥미로운 대답은 다음과 같습니다.

  • 이 사이에는 차이가없고 0700그리고 700다른 답변에서 설명한 바와 같이,
  • 하지만 거기에 있다 차이 007000700(디렉토리)는

최소한 GNU coreutils의 chmod 버전은 Linux의 기본값입니다.

이 예제를보십시오 :

$ ls -ld mydir
drws--s--- 4 myuser mygroup 4096 Jul  8 09:27 mydir
$ chmod 0710 mydir ; ls -ld mydir                   # surprise ahead -- s-bits remain:
drws--s--- 4 myuser mygroup 4096 Jul  8 09:27 mydir
$ chmod 00710 mydir ; ls -ld mydir                  # _now_ they're gone:
drwx--x--- 4 myuser mygroup 4096 Jul  8 09:27 mydir

이는 디렉토리의 setuid / setgid 비트가 실수로 삭제되는 것을 방지하기위한 것입니다. 자세한 내용은 chmod 설명서를 참조하십시오 .


답변

Linux 시스템에는 두 가지 유형의 권한이 있습니다.

  1. 파일 권한
  2. 특별 허가

파일 권한에서 파일 및 폴더에 대한 권한을 설정합니다.

권한은 다음과 같습니다.

  • 읽다 (4)
  • 쓰다 (2)
  • 실행 (1)

특별 허가를받는 동안 다음 세 가지 유형의 허가가 있습니다.

  • SUID (4)
  • SGID (2)
  • 스티키 비트 (1)

귀하의 질문에 당신은 차이가 무엇인지 묻습니다. 따라서 (0) 0의 표시 값 chmod 777 and 0777이 있기 때문에 차이가 없습니다 no any octal value.