답변:
8 진 코드를 사용하면 내가 생각할 수있는 두 가지 장점이 있습니다.
chmod
Perl 또는 C에서 8 진수를 사용해야합니다 .때로는 간단한 유틸리티가 "친숙한"버전을 처리하지 못하는 경우가 있습니다. 특히 비 GNU 사용자 지역에서.
또한 일부 유틸리티는 8 진수를 내뿜습니다. 예를 들어, umask
현재 umask가 무엇인지 확인하기 위해 실행 하면 8 진수로 뱉어 낼 것입니다 (bash umask -S
에서는 상징적입니다).
간단히 말해서, 선호하는 유일한 이유는 더 적은 문자를 입력하는 것이지만, 사용하지 않기로 선택하더라도 8 진수 코드를 알아낼 수 있도록 어떻게 매핑하는지 알아야합니다. 8 진수 만하는 것 중 하나로 그러나에 5 개의지도가 있다는 것을 즉시 알 필요는 없으며 rx
,이를 알아낼 수 있으면됩니다.
내가 8 진수를 너무 오랫동안 사용했다고 생각합니다.
7은 rwx (무엇이든 할 것), 5는 rx (읽기 위해 읽어야 함), 6은 wr (수정해야하는 모든 데이터 파일), 4는 r (보자)입니다. 0은-(죄송합니다. 여기에 아무것도 없습니다). 그리고 순서는 나, 우리, 모두입니다. 이들은 기본 조합입니다.
755 변경하고 실행할 수 있고 다른 사람이 실행할 수 있습니다.
644 변경할 수 있습니다. 다른 사람도 읽을 수 있습니다.
444 모든 사람에게만 읽습니다. 여기까지입니다.
500 나는 그것을 실행할 수 있고, 그것을 바꾸고 싶지 않다.
나를 위해, 요점은 짧습니다. 9 자 및 파일 사양으로 넘어갑니다.
나는 8 진 표현을 실제로 즐긴 적이 없으며, 나는 rwxr-xr-x
더 단순 해 보이는 것처럼 항상 직선 표기법을 사용했습니다. 그러나 8 진수 표현을 수집 한 것부터 실제로 기억하기가 더 쉽기 때문에 존재합니다 (어떻게 작동하는지 모르겠습니다).
8 진수가 테이블에 가져 오는 유일한 이점은 모호성이 없다는 것입니다. 8 개의 서로 다른 권한 비트 구성은 하나의 고유 한 숫자로 표시되므로 일부 사람들이 실수로 w
원하지 않는 곳에 배치하는 데 도움 이됩니다.
불행히도, 나는이 테이블을 암기했습니다.
# r w x
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
/tmp
고정 비트를 포함하여 1777과 같은 특수 문자 는 12 비트), PDP에서 편리한 크기를 사용합니다. 특히 PDP-8. 16 진수를 사용하는 경우 16 진수당 하나의 권한 집합을 자연스럽게 매핑하려면 16 비트 이상의 워드 머신이 필요했지만 모든 PDP가 아니 었습니다. 또한 3 비트를 낭비했거나 그 비트에 대한 사용을 발명해야했을 것인데, 이는 아마도 실제 이익없이 복잡한 Unix perms를 가질 것입니다.
8 진 모드는 일부 시스템에서 setuid 및 setgid 비트를 제거 할 수 있습니다.
페도라 16 :
$ mkdir dir
$ chmod 2775 dir
$ stat -c %a dir
2775
$ chmod 770 dir
$ stat -c %a dir
2770
( 2
유지됨)
FreeBSD 9 :
$ mkdir dir
$ chmod 2775 dir
$ stat -f %Mp%Lp dir
2775
$ chmod 770 dir
$ stat -f %Mp%Lp dir
0770
(가 2
되었다 0
)
파일 또는 디렉토리의 권한을 변경하려면 변경하려는 비트를 지정하는 것이 좋습니다 (예 : 위의 예에서 chmod o= dir
또는 chmod o-rwx dir
위의 예).
역사는 8 진 모드 가 존재 하는 이유를 설명 하지만 기능은 니모닉 형식이 존재하는 이유라고 생각합니다. 그리고 독점적으로 진수 모드를 사용하여 다른 도구에 대한 모든 포인트는 완벽하게 유효하고 난 당신이 생각 이 배우고을 알고. 그럼에도 불구하고 보수적 인 관리자는 니모닉 형태의 진정한 유틸리티를 보지 못합니다.
8 진 형식은, 특히 재귀 적으로 사용될 때 관리자가 어리석은 일을하게하는 경향이 있습니다. 또는 오히려 과실이 추가되면 어리석게 변합니다. 텍스트 파일과 x
비트 세트 가 많은 폴더를 실행할 때마다 증거가 있습니다.
왜 x
그런 식으로 비트를 설정 했을까요? 모드에 니모닉 형식을 사용하지 않으면 어렵지 않기 때문입니다. 사용 권한을 재설정하고 /var/www
이전 스타일 CGI를 실행하지 않으므로 x
비트를 제거해야합니다. 그러나 x
비트는 디렉토리에서 다른 용도로 사용됩니다. 따라서 다음 root
과 같은 작업을 수행합니다 .
chmod -R 666 /var/www
find /var/www -type d -exec chmod 777 {} \;
그러나 니모닉 형식을 사용하는 경우 "레시피"를 제공 할 수 있습니다.
chmod -R a=rwX /var/www
이것은 짧은 형식입니다 chmod -R ugo=rwX /var/www
(동일하지만 다른 경로를 달성하십시오 chmod -R a-x,a+rwX /var/www
).
그러나 8 진 모드로는 달성 할 수없는 더 사소한 것이 있습니다. 당신은 조정할 수 없습니다 user
또는 group
또는 other
8 진수 형태로 개별적으로 마스크.
간단히 말해서 : 메스 (니모닉)와 날카로운 부엌 칼 (옥탈)을 비교하는 것과 같습니다 ...하지만 다른 이유로 여전히 팔진 모드 비트를 알아야합니다 :)
8 진 모드가 여전히 선호 되는 이유 는 니모닉 형태에 더 많은 타이핑이 아니라 지나치게 보수적 인 관리자라고 생각합니다. 그리고 그렇습니다.
일반적으로 8 진수 (in pam
또는 fstab
)로 제공되는 umask 설정에 잘 맞습니다 .
chmod
Perl 또는 C에서 8 진 표현을 사용해야 한다고 말하는 것은 실제로 표현이 이미 존재했기 때문에 보는 이점이 아닙니다.