nfs setattr이 작동하도록 모드 값이 777에서 0777로 변경된 작업에서 코드가 변경되는 것을 보았습니다. 두 값의 차이는 무엇입니까?
답변
그것들을 chmod
(명령 줄 프로그램)으로 전달한다면 아무런 차이가 없습니다. 그러나 C 프로그램 또는 이와 유사한 경우 0777
8 진수 (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
다른 답변에서 설명한 바와 같이, - 하지만 거기에 있다 차이
00700
와0700
(디렉토리)는
최소한 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 시스템에는 두 가지 유형의 권한이 있습니다.
- 파일 권한
- 특별 허가
파일 권한에서 파일 및 폴더에 대한 권한을 설정합니다.
권한은 다음과 같습니다.
- 읽다 (4)
- 쓰다 (2)
- 실행 (1)
특별 허가를받는 동안 다음 세 가지 유형의 허가가 있습니다.
- SUID (4)
- SGID (2)
- 스티키 비트 (1)
귀하의 질문에 당신은 차이가 무엇인지 묻습니다. 따라서 (0) 0의 표시 값 chmod 777 and 0777
이 있기 때문에 차이가 없습니다 no any octal value
.