![더 널리 사용되는 것은 chmod 777 또는 chmod a+rwx입니다.](https://linux55.com/image/55149/%EB%8D%94%20%EB%84%90%EB%A6%AC%20%EC%82%AC%EC%9A%A9%EB%90%98%EB%8A%94%20%EA%B2%83%EC%9D%80%20chmod%20777%20%EB%98%90%EB%8A%94%20chmod%20a%2Brwx%EC%9E%85%EB%8B%88%EB%8B%A4..png)
권한을 변경하는 데는 두 가지 옵션이 있습니다.
chmod 777 file.txt
chmod a+rwx file.txt
나는 특정 파일에 대한 파일 권한을 변경해야 하는 사용자의 요구 사항을 자세히 설명하는 문서를 작성 중입니다. 파일 권한을 변경하는 가장 일반적인 방법으로 이것을 자세히 설명하고 싶습니다.
현재는 다음과 같이 말합니다.
- Set permissions on file.txt as per the example below:
- chmod 777 /tmp/file.txt
이는 단지 예일 뿐이며 모든 사람이 전체 권한을 갖도록 파일을 변경하지는 않습니다.
답변1
Google은 다음을 제공합니다.
- 결과 1,030,000개'수정 777'
- 결과 371,000개'chmod a+rwx'
chmod 777
인기가 3배정도 높네요.
즉, 나는 문서와 스크립트에서 긴 옵션을 사용하는 것을 선호합니다. 왜냐하면 그들은 자체 문서화되기 때문입니다. "권한 실행 및 확인" 지침을 따랐다면 ls가 권한을 표시하는 방식이므로 ls -l | grep file.txt
ls를 사용해야 할 수도 있습니다 .chmod a+rwx
답변2
[Dotancohen의 답변 제안을 바탕으로 모범 사례를 추가하도록 편집했습니다. 이로 인해 상황이 덜 명확해지고 좋은 습관이 형성되기를 바랍니다.]
중요한 추가 정보:아니요동일한.
chmod a+rwx
: 마지막 3옥텟을 777로 설정하면 소유자, 그룹 및 사용자가 "rwx"로 설정됩니다. 첫 번째 옥텟에 다른 비트(setuid, setgid 및/또는 고정 비트)가 있는 경우 영향을 받지 않습니다. 바이너리 "또는 00777"로 생각하십시오.
chmod 777
:권한을 00777로 설정하면 소유자, 그룹 및 사용자가 "rwx"로 설정됩니다. 또한 추가 비트(setuid, setgid 및/또는 고정 비트)가 0으로 설정되도록 합니다.
따라서 모든 사람에게 액세스 권한이 부여되었는지 확인하려면(이중, 삼중 필수인지 확인하세요...) 첫 번째 양식을 사용하세요... 그러면 모든 종류의 보안 문제가 발생할 수 있습니다. 이러한 문제 중 일부는 다음과 같습니다. 놀라울 정도로 범위가 넓으며 악의적인 사용자가 이를 수행할 수 있습니다)
setuid/setgid/sticky 비트가 재설정되었는지 확인하려면(예: 파일이 "00777"이어야 함) 777 형식을 사용하십시오. 이는 아마도 귀하의 경우에 더 가능성이 높습니다(파일의 정확성은 알려져 있습니다. 그리고 해야 할 것은: 00777). 여기서도 실제로 필요한지 세 번 확인하세요...
일반적으로 소유자(때로는 그룹)에 대한 액세스 권한을 유지하는 것이 더 좋습니다. 그런 다음 그룹을 사용하여 일부 특정 사용자에게 파일/디렉토리에 대한 액세스 권한을 부여합니다. a+rwx는 액세스 권한을 부여하는 간단하면서도 종종 잘못된 방법입니다(물론매우 드물다이 방법밖에 없는 상황...)
http://en.wikipedia.org/wiki/Chmod각 숫자 또는 문자가 무엇을 의미하는지 설명하므로 읽어 볼 가치가 있습니다(setuid/setgid/sticky 포함).
답변3
나는 일반적으로 권한을 0777로 설정하고 명시적으로 0777로 설정하는 것이 차이점이라고 생각합니다. 앞서 언급했듯이 777만 입력하면 앞에 오는 0이 유추됩니다. 그리고 a+rwx는 읽기/쓰기/실행을 추가하고 setuid/고정성을 어느 정도 그대로 유지합니다.
파일이 실행 가능한지 확인하려는 경우 a+x를 사용하면 다른 권한에 대해 걱정하거나 수정할 필요 없이 실행 권한을 수정할 수 있습니다. 8진수 표현을 사용하는 경우 의도한 목적 이외의 방식으로 권한을 수정하지 않도록 현재 어떤 권한이 설정되어 있는지 알아야 합니다.
답변4
예산 웹 호스팅 사용자를 위해 만들어진 것과 같은 "간단한 사람들을 위한 안내서"에서는 숫자 값을 제공하는 것이 더 일반적이라고 말하고 싶습니다. 그러나 다음과 같이 지정해야 합니다.8진수, 소수점 이하, 값:
$ chmod 0777 some_dir
0
. 0777
Bash 및 기타 CLI 환경에서는 패딩되지 않은 콘텐츠를 사용하는 것이 맞지만 777
, 많은 프로그래밍 언어(예: PHP 및 Perl)는 유사한 기능을 가지고 있지만 선행 0
. 따라서 Bash에서도 사용하는 것이 좋습니다. Bash가 거기에 있어야 한다는 점을 기억하세요.
반대표를 던진 분들은 참고하세요.주석에서 명확히 알 수 있듯이 chmod
명령은 실제로 10진수 표기법이 지정된 경우에도 명령을 8진수로 전달하는 것을 알고 있습니다. 그러나 모든 환경이 이를 지원하는 것은 아니므로모범 사례명시적으로 지정하는 데 익숙해지세요.