더 널리 사용되는 것 : chmod 777 또는 chmod a + rwx [닫힘]


20

권한을 변경하는 두 가지 옵션 중 :

  • chmod 777 file.txt
  • chmod a+rwx file.txt

사용자가 특정 파일의 파일 권한을 변경해야한다는 내용을 자세히 설명하는 문서를 작성 중입니다. 파일 사용 권한을 변경하는 가장 일반적인 방법으로 자세히 설명하고 싶습니다.

현재는 말합니다 :

- Set permissions on file.txt as per the example below:
    - chmod 777 /tmp/file.txt

이것은 단지 예일 뿐이며 모든 사람이 모든 권한을 갖도록 파일을 변경하지는 않습니다.


6
첫 번째 솔루션은 더 짧고 널리 사용되므로 두 번째 솔루션은 보지 못했습니다.
Archemar

2
모든 사람에게 읽기, 쓰기 및 실행 권한을 설정하는 것은 실제로 보안 측면에서 좋은 생각이 아닙니다. 대신 chmod 773을 사용해야합니다.
Martin Erhardt

1
@MartinErhardt 나는 일반적으로 그냥 사용하는 것 775또는 755실행 파일 만.
Kevdog777

3
chmod 777비슷 chmod a=rwx하지 chmod a+rwx.
Stéphane Chazelas

1
777또는 666간단하고보다 더 memorizable이다 ugo+rwx, a+rwx또는 ugo+rw매우 혼란하는 것은 o모호하고 당신을 위해 하나 소유자 또는 다른 사람을 의미 할 수있다, 당신이 선택합니다. 따라서 큰 실수를 저지르는 대신 man어느 것이 어느 것인지 확인하거나 숫자를 사용하십시오.
kenorb

답변:


29

Google은 다음을 제공합니다.

chmod 777 약 3 배 더 인기가 있습니다.

즉, 자체 문서화되므로 문서와 스크립트에 긴 옵션을 사용하는 것이 좋습니다. " ls -l | grep file.txt권한 실행 및 확인 "에 대한 지침을 따르는 경우 chmod a+rwxls가 권한을 표시하는 방식이므로 사용할 수 있습니다 .


고마워 나는 그것을 전체 (알파벳)로 쓰면 사람들이 무엇을 7의미 하는지 등 을 묻지 못하게 될 것입니다 .
Kevdog777

1
나는 그 이유 chmod 777가 더 인기가 있다고 생각합니다 (숫자를보기 전에 미리 결정된 것처럼)는 단순히 2자를 더 적게 입력하는 것입니다. :
Ángel

문서에 팁을 추가하는 chmod 777경우 동일한 효과를 얻을 수있는 편리한 바로 가기를 추가 할 수 있습니다 . 독자는 문서의 교육 요소를 높이 평가할 것입니다. 777은 7을 세 번 누르는 것이 훨씬 쉽고 빠르기 때문에 더 인기가 있지만, 새로운 사용자가 777을 처음 보게되면 정확히 무엇을 의미하는지 모를 수 있습니다. 그렇기 때문에 기본 문서로는 잘못된 선택입니다. 그러나 팁으로 언급 할 가치가 있습니다.
ADTC

탄젠트로서, 나의 형제와 그의 친구들은 글자 맞추기 단어를 허용하기 위해이 기술을 사용할 것입니다. 단어가 '진짜'로 간주되기 전에 그들은 구글의 히트 수에 대한 몇 가지 한계를 가지고 있었다
웨인 베르너

나는 그것이 더 오래 되었기 때문에 인기가 있다고 생각합니다 (나중에 기호 표기법이 나중에 추가되었습니다). 따라서 누군가가 Google을 검색하거나 그와 동등한 시간이 무엇인지 검색하고 군중과 함께 가십시오. 나는 상징을 사용하는 것이 더 쉽다고 생각한다. 왜냐하면 내가 기호를 입력 할 수 있었던 숫자를 계산할 때, 나는 또한 그것을 올바르게 얻는 경향이 있기 때문이다.
ctrl-alt-delor

26

[그의 답변에서 Dotancohen의 제안에 따라 모범 사례를 추가하도록 편집했습니다. 덜 명확하지 않고 좋은 습관을 갖기를 바랍니다.]

중요한 추가 정보 : 동일 하지 않습니다 .

chmod a+rwx: 마지막 3 진수를 777로 설정하여 소유자, 그룹 및 사용자에게 "rwx"가 설정되도록합니다. 첫 번째 8 진수 (setuid, setgid 및 / 또는 Sticky bit)에 추가 비트가 있으면 그대로 유지됩니다. 이진 "또는 00777"이라고 생각하십시오.

chmod 777 : 권한을 00777로 설정하여 소유자, 그룹 및 사용자가 "rwx"를 설정하고 더 이상 설정하지 않도록합니다. 또한 추가 비트 (setuid, setgid 및 / 또는 Sticky bit)가 0으로 설정되어 있는지 확인하십시오.

따라서 모든 사람에게 액세스 권한을 부여하려면 첫 번째 양식을 사용하십시오 (그리고 이중으로 세 번 확인하십시오. 필수 사항은 모든 종류의 보안 문제에 대한 문을 엽니 다. 악의적 인 사용자가 할 수 있도록합니다)

setuid / setgid / sticky 비트를 다시 설정하려는 경우 (예 : 파일이 "00777"이어야하는 경우 777 형식을 사용하십시오. 파일의 경우 알려진 것으로 알려진 파일이어야합니다. : 00777). 여기에도 트리플이 꼭 필요한지 확인하십시오.

일반적으로 소유자 (및 때로는 그룹)에 대한 액세스를 유지하는 것이 가장 좋습니다. 그런 다음 그룹을 사용하여 특정 사용자에게 파일 / 디렉토리에 대한 액세스 권한을 부여하십시오. a + rwx는 쉽고 일반적으로 액세스 권한을 부여하는 잘못된 방법입니다 (물론 유일한 방법 인 경우 는 매우 드 cases니다 ...)

http://en.wikipedia.org/wiki/Chmod 는 각 숫자 또는 문자가 나타내는 내용 (setuid / setgid / sticky 포함)을 설명하므로 잘 읽습니다.


1
또한 suid 파일의 chmod a + w (a + rwx에 포함)는 매우 위험합니다. chmod a + w *에 대해 자세히 설명해야합니까?
Joshua

others권한 설정의 요점은 무엇입니까 ? 컴퓨터에 사용자로 로그인 한 경우 반드시 users권한을 사용할 수 있습니까?
Kevdog777

@ Kevdog777 : 다른 사람은 소유자 나 그룹에 속하지 않은 사람들을위한 것입니다. 시스템의 다른 모든 사람들
Olivier Dulac

1
@ Kevdog777 : 루트와 사용자 만 액세스 할 수있는 경우 : chmod 00600 (파일을 실행할 필요가없는 경우) 또는 chmod 00700 (파일을 실행해야하는 경우 또는 디렉토리) 또는 chmod 00400을 사용하여 파일 수정 / 쓰기에 대한 (작고 쉽게 재정의) 보호 기능을 추가하십시오 (디렉토리의 경우 00500). 그런 다음 다른 사람 (및 사용자는 아닌 그룹의 사람들)이 파일 / dir에 액세스 할 수 없습니다. (dotandcohen 메모에 따르면, 거기에 4 번째 8 진수 + "0"을 추가하기 전에 쉘에 차이가 없지만 perl / C / etc를 통해 설정하면 4 번째 8 진수는 존재한다는 것을 상기시켜줍니다. , 그리고 그것도 설정되어 있습니다)
Olivier Dulac

4
chmod 777같다 chmod a=rwx.
Stéphane Chazelas

1

필자는 일반적으로 권한을 0777로 설정하면 명시 적으로 0777로 설정한다는 차이점을 생각합니다. 앞에서 언급했듯이 777 만 입력하면 선행 0이 유추됩니다. a + rwx는 읽기 / 쓰기 / 실행을 추가하여 setuid / sticky를 그대로 둡니다. 손대지 않은 비트.

파일이 실행 가능한지 확인하려는 경우 다른 권한에 대해 걱정하거나 수정하지 않고 실행 권한을 수정할 수 있도록 a + x를 사용할 수 있습니다. 8 진 표현을 사용한 경우 의도 한 것 이외의 다른 방법으로 권한을 수정하지 않도록 현재 권한이 무엇으로 설정되어 있는지 알아야합니다.


0

나는 예산 웹 호스팅 사용자를 위해 만들어진 것과 같은 "간단한 사람들 가이드"에서 수치를 제공하는 것이 훨씬 일반적이라고 말하고 싶습니다. 그러나 10 진수 가 아닌 8 진수 값 으로 지정해야 합니다.

$ chmod 0777 some_dir

의 선행 0을 참고하십시오 0777. Bash와 다른 CLI 환경이 패딩되지 않은 것을 사용하는 것이 옳은 일이지만 777, PHP와 Perl과 같은 많은 프로그래밍 언어는 비슷한 기능을 수행해야합니다 0. 따라서 Bash에서도 사용하는 것이 좋습니다.

downvoters에 대한 참고 사항 : 주석에서 설명했듯이 chmod명령은 실제로 10 진수 표기법을 지정하더라도 지시문을 8 진수로 전달하는 것을 알고 있습니다. 그러나, 모든 환경은 따라서는,이 기능을 지원 모범 사례 명시 적으로 지정 익숙해가.


10
chmod숫자를 10 진수로 취급하지 않습니다. chmod 777 filechmod 0777 file완전히 동일합니다.
celtschk

3
@ Kevdog777 : "octal"은 base-8을 의미합니다. 그러나 chmod쉘 명령의 사용에 관한 한 신경 쓰지 않아도됩니다 . 세 자리를 서로 독립적으로 생각할 수 있습니다. 각 자리는 하나의 권한 집합을 나타냅니다.
celtschk

3
chmod에서 0777의 0은 실제로“setuid, setgid 및 sticky 비트를 지 웁니다”를 의미합니다. 인수는 항상 앞에 0을 4 자리로 채 웁니다. 이는 777과 같습니다. 같은 이유로에 chmod 77해당합니다 chmod 077.
Emil Jeřábek은 Monica

1
chmod명령은 8 진수의 모드 인수를 해석합니다. 대부분의 프로그래밍 언어 (C, Perl,…)를 사용하는 경우주의를 기울여야하지만 쉘 스크립트에서는 8 진수입니다 chmod.
Gilles 'SO- 악의를 멈춰라'

1
(심지어 4 개 8 진수로 설정하는 경우 : 예를 들어 01777) 항상 씁니다 참 좋은으로 메모 +1, 0 C를이 쉘에 아무런 차이가 없기 때문에,하지만 보장, 펄 등 8 진수로 해석
올리비에 Dulac
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.