모드 값 0777과 777 사이에 차이가 있습니까?


답변:


75

그것들을 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)


14
명확하게 chmod말하면 명령에 전달하는 값 은 항상 8 진으로 해석됩니다. 사용 chmod 888하면 오류가 발생합니다.
mattdm

그러나 각 숫자는 정수 자체가 아닌 8 진수입니다.
Drake Clarris

1
8 진수의 문자열 입니다 8 진수. chmod접두사에 관계없이 숫자 인수를 8 진수로 해석합니다. (그러나 실제로 숫자 자체는 기능이 없으며 숫자 또는 비트 만 있습니다.)
Alexis

따라서 C 프로그램에서 전달 1777하려면을 작성해야 01777합니까?
Faheem Mitha

1
@Faheem, 맞습니다. 8 진수 177701777C 로 작성 되었습니다 (또는 102310 진수와 같은 숫자이지만 쓸 수 는 없습니다. :-).
alexis

4

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

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


3
스티커 비트는 첫 번째 비트가 아니라 세 번째 비트입니다. 첫 번째는 suid 비트이고 두 번째는 sgid 비트입니다. 세 자리를 사용하여 권한을 설정하면 누락 된 첫 번째 자리도이 세 비트에 영향을 미칩니다 (즉, 제거).
jlliagre 2016

네 말이 맞아 Ergo, "
alexis

2
@jlliagre chmod 매뉴얼 페이지에서- "생략 된 숫자는 선행 0으로 가정합니다." 또한,도 4의 첫 번째 숫자 이다 스티키 비트. 맨 페이지에서 다시 : "첫 번째 숫자는 설정된 사용자 ID (4) 및 설정된 그룹 ID (2) 및 제한된 삭제 또는 고정 (1) 속성을 선택합니다. 두 번째 숫자는 파일을 소유 한 사용자의 권한을 선택합니다. 4), 쓰기 (2) 및 실행 (1), 세 번째는 파일 그룹의 다른 사용자에 대해 동일한 값을 가진 권한을 선택하고, 네 번째는 파일 그룹에없는 다른 사용자에 대해 동일한 값을 가진 권한을 선택합니다. "
Faheem Mitha

1
@FaheemMitha 생략 따라서 숫자 앞에 0을 것으로 가정 한다 상기 비트를 제거한다. 또한 비트와 숫자를 혼동하는 것처럼 보입니다. 첫 번째 숫자가 아니라 첫 번째 비트에 대해 언급하고있었습니다.
jlliagre

1
@jlliagre 좋아요, 충분합니다.
Faheem Mitha

1

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

  • 이 사이에는 차이가없고 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 설명서를 참조하십시오 .


-1

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

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

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

권한은 다음과 같습니다.

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

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

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

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.