chmod와 chown의 주요 차이점은 무엇입니까?


43

일부 예에서는 일부가 chown대신 사용되는 것을 보았습니다 chmod. 어디서 사용하는 방법을 알고하지 않습니다 chmodchown. 언제, 왜 사용해야하는지에 대한 차이점을 설명해주세요.


18
아무도 그것을 명시 적으로 밝히지 않았습니다. 한 chmod e를 진탕하고 다른 ch자신의 것을 진압합니다 . 또한 사람을 읽으십시오 .
모니카 해밍을 중지

1
반면 chown도 수 를 ch 플랜지 GR OU , 거기 chgrp이 작업에 특별히 헌신.
모니카 해밍 중지

6
바나나와 의자의 주요 차이점은 무엇입니까? 바나나에 앉지 마십시오.
Shadur

답변:


48

파일을 만들어 봅시다

touch rainbow

파일의 메타 데이터를 보자

$ ls -l rainbow
-rw-rw-r-- 1 zanna zanna 0 May 24 10:09 rainbow

정보의 첫 번째 부분은 파일 형식 ( -처음에는 일반 파일임을 의미)과 권한 비트입니다.

그 후 우리는 소유자 (zanna)와 그룹 (zanna)을 봅니다. chown명령을 사용하여 다음 을 변경할 수 있습니다 .

$ sudo chown pixie rainbow
$ ls -l rainbow
-rw-rw-r-- 1 pixie zanna 0 May 24 10:09 rainbow

그리고 우리 chmod는 허가 비트를 변경하는 데 사용

$ sudo chmod 333 rainbow
$ ls -l rainbow
--wx-wx-wx 1 pixie zanna 0 May 24 10:09 rainbow

권한 비트가 소유자, 그룹 및 다른 사람에 대해 개별적으로 설정되어 있기 때문에, 당신은 결합하여 서로 다른 사용자에 대한 파일 사용 권한을 제어 할 수 있습니다 chownchmod. Linux의 권한에 대한 충돌 코스는 이 짧은 안내서 를 참조하십시오 .


1
이미지 +1. 8 진수 데프가 없습니까? 아니면 chmod a+w예? 시간이 많이 걸리지 만 더 많은 표를 얻는다. : D
WinEunuuchs2Unix

2
@ WinEunuuchs2Unix haha ​​thanks ... 고의로 특히 쓸모없는 권한 설정을 선택했습니다. 정말 모든 가능한 순열을 사용하는 경우와 이유를 설명 시작하는 경우 chmodchown(지금까지 너무 광범위 질문입니다) 내 대답은 영원히 계속됩니다. 간단하게 유지하려고
Zanna

96

간단히 말해서 chown파일의 소유권을 변경하는 데 사용되는 반면 chmod파일 모드 비트 를 변경하는 데 사용됩니다 .

  • chown 파일을 소유 한 사람을 정의합니다.
  • chmod 누가 무엇을 할 수 있는지 정의합니다.

누군가를 파일의 소유자로 만들면, 그 파일을 원하는 곳 어디에서나 할 수 있습니다 chmod.

$ ls -l file
-rwxrwxr-x  2  ravexina admins   26 May  9 12:49 file

위의 줄 ravexina에서 파일의 소유자이며 admins그룹 임을 알 수 있습니다 . 내가 사용할 수 있습니다 sudo chown dave:sudo file에 파일의 소유자 변경 dave하고 그룹을 sudo; 이제 파일은 "dave"및 "sudo"그룹의 모든 사용자에 속합니다.

그러나 chmod우리는 누가 무엇을 할 수 있는지 정의합니다. 파일을 읽거나 파일에 쓰거나 실행할 권한이있는 사람 예 :

chmod 777 file

소유자, 그룹 및 다른 모든 사람을 포함한 모든 사람에게 읽기, 쓰기 및 실행 권한을 부여합니다.

에서 turnoff.us : 여기에 이미지 설명을 입력하십시오


1
소유자는 파일에 대해 원하는 작업을 수행 할 수 없습니다. 삭제하거나 이동하려면 포함 디렉토리에 대한 쓰기 권한이 필요합니다.
muru

2
@muru that 's true;) 나는 읽기 / 쓰기 / 실행을 의미 chattr했고, 내가 추측 한 파일에 영향을 줄 수도 있습니다.
Ravexina

1
@KamilMaciorowski 아시다시피, Ravexina는 그것을 알고 있지만 대부분의 사람들은 그렇지 않습니다.
muru

2
@KamilMaciorowski 나는 당신에게 아무것도 척하지 않았다. 누락 된 것은 대부분의 사람들이 파일을 삭제하거나 이름을 바꾸는 것을 디렉토리에서 작업하는 것이 아니라 파일에서 작업하는 것으로 생각한다는 것입니다. 우리는 다음과 같은 질문이 이유의 : superuser.com/q/373115/334516 , unix.stackexchange.com/q/48579/70524을 , askubuntu.com/q/240424/158442 분명히 당신이 알고이 디렉토리에 대한 작업 (축하하다 !)하지만 그것에 대한 일반적인 오해가 있으므로 이름을 바꾸거나 삭제하면 파일이 아닌 디렉토리에 대한 권한이 포함됩니다. ...
muru

1
@KamilMaciorowski ...이 질문은 chmod와 chown의 차이점을 모르는 사용자에 의한 것이므로 파일 이름을 바꾸려면 디렉토리에 대한 권한이 필요하다는 것을 알지 못하는 것이 합리적입니다.
muru

19

파일 (또는 디렉토리 등)의 권한을 고려할 때 두 가지 요소가 있습니다.

  • 파일 소유 한 사람 -사용자 및 그룹
  • 무엇을 , 읽기, 쓰기, 실행 또는 이들의 조합 - 그들은 그것으로 할 수 있습니다.

chown누구를 다루고 있습니다 . 무엇chmod 을 다루고 있습니다 . 다른 대신 사용할 수 없습니다.

단순 유닉스 권한은 파일에 액세스하려는 사용자를 세 가지 유형으로 분류합니다.

  1. 파일의 소유자
  2. 파일을 소유 한 그룹의 구성원 인 사용자
  3. 다른 사람들

chown처음 두 개를 변경하는 데 사용됩니다. chmod이러한 유형에 부여 된 권한을 변경하는 데 사용됩니다.


7

이전 우수 답변에 추가 할 몇 가지 요점 :

  • 디렉토리 (및 그 위의 모든 디렉토리)에 액세스하려면 실행 권한이 있어야합니다.
  • -R 옵션을 사용하여 변경 사항을 대상을 포함하여 아래에있는 모든 항목에 반복적으로 적용 chown -R www-data files/
  • 구문을 사용하여 사용자와 그룹을 동시에 변경할 수 있습니다 chown user:group myfile
  • 특히 파일과 디렉토리의 조합을 처리 할 때 절대 권한을 설정하는 대신 '+'및 '-'옵션을 사용하는 것이 더 쉽고 더 좋습니다. 예를 들어, 디렉토리 및 그 아래의 모든 항목에 그룹 쓰기 권한을 부여하려면 chmod -R 775 files/'files /'및 그 안의 모든 파일을 실행 가능하고 읽을 수있게 만들면 모든 파일에서 원하는 결과가 아닐 수 있습니다. 를 사용 chmod -R g+w files/하면 다른 항목을 건드리지 않고 그룹 쓰기 권한이 추가됩니다.

6

이미 좋은 답변이지만 권한이 이해하기 쉬운 곳에 기여하고 싶습니다.

chmod u=r+w,o=r-w,g=-r-w test.php

u = user
o = other
g = group

이렇게하면 파일에 권한을 쉽게 추가 할 수 있습니다. 위의 예에서

user = read + write
other = read but not write
group = not read not write

-R권한을 재귀 적으로 변경하려는 경우를 잊지 마십시오 .


1

chown변경됩니다 누가 파일을 소유하고 어떤 그룹이 속하는를하면서 chmod변경 하는 방법 (그들은 모두에 액세스 할 수있는 경우 나) 소유자와 그룹이 파일에 액세스 할 수 있습니다.

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