'chmod -644'는 파일 권한을 000으로 설정합니다.


12

644 ( -rw-r--r--) 파일을 가지고 -rw-rw-r--실행 한 후 664 ( ) 로 변경하고 싶었습니다 .

sudo chmod -664 my_file

파일 권한이 000 ( ----------) 으로 설정되었습니다 .

000이 아닌 다른 것으로 권한을 변경하려는 시도가 작동하지 않는 것 같습니다. 내가 여기서 무엇을 놓치고 있습니까?


11
-644 앞에 있습니까? 시도하십시오 sudo chmod 644 my_file. -644권리를 제거합니다.
Soren A

답변:


34

을 사용 -664하고 있으며 664대신 사용하십시오. 그리고 결코 사용하지 sudo당신이 필요 해달라고 할 때. 그것이 당신의 파일이라면, 당신은 필요하지 않습니다 sudo:

chmod 644 my_file

당신이 실행하면 chmod로모그래퍼 -모드 전에 해당 모드를 제거합니다. man chmod(강조 광산) 참조 :

연산자 +는 선택한 파일 모드 비트가 각 파일의 기존 파일 모드 비트에 추가되도록합니다. -그것들을 제거 시킨다; =는 디렉토리의 언급되지 않은 세트 사용자 및 그룹 ID 비트가 영향을받지 않는 것을 제외하고는 추가되고 언급되지 않은 비트가 제거되도록합니다.

숫자는 다음과 같습니다.

  • 1 : 실행
  • 2 : 쓰다
  • 4 : 읽다

따라서 777권한이 있는 파일은 1 + 2 + 4 = 7이므로 모든 사람이 세 가지를 모두 수행 할 수있는 권한을 가지므로 권한을 7로 설정하면 읽기, 쓰기 및 실행이 허용됩니다.

모드가 777다음 과 같은 파일로 시작하는 경우 :

$ ls -l my_file 
-rwxrwxrwx 1 terdon terdon 0 May 28 13:45 my_file

이제 실행 chmod -644하면 비트를 제거하고 644모드가 133다음 과 같은 파일로 끝납니다 .

$ chmod -644 my_file; ls -l my_file 
---x-wx-wx 1 terdon terdon 0 May 28 13:45 my_file

소유자의 권한에서 6 (읽기 (4) + 쓰기 (2))을 제거하고 그룹 및 기타 권한에서 1 (실행) 세트 만, 4 (읽기) 만 남겨두기 때문입니다. 결과는 소유자에 대한 실행 (1) 권한 만 있고 나머지에 대한 쓰기 및 실행 (4를 설정 해제하고 1과 3을 남김) 권한을 가진 파일입니다.

파일에 아마도 새 파일에 대한 기본 권한이 있었기 때문에을 644실행할 때 chmod -644 my_file설정된 권한 비트를 모두 제거하고 다른 사람에 대한 권한이없는 파일을 얻었습니다.

$ ls -l my_file 
-rw-r--r-- 1 terdon terdon 0 May 28 13:45 my_file
$ chmod -644 my_file
$ ls -l my_file 
---------- 1 terdon terdon 0 May 28 13:45 my_file
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.