본문으로 바로가기
728x90
반응형

samba를 통해 리눅스 파일들을 윈도우에서 수정하도록 개발 환경을 만들어 놓고 개발하는 경우가 더러 있는데

그럴때마다 원도우에서 저장한 파일이 리눅스 파일의 소유권 혹은 권한을 임의로 변경하는 경우가 있다.

그럴때마다 리눅스에서 변경을 해줘야 해서 골치가 아팠었다.

사실 samba 설정을 해주면 문제가 해결되지만 samba 설정 관련 내용은 추후 게재하도록 하고 리눅스에서 파일 권한이나 소유권 변경을 할 방법에 대해 적어 보도록 하겠다.

 

ls -la 명령어를 통해 파일 목록들을 살펴보면 아래 와 같은 모습으로 터미널에 표시가 된다.
1. -rwxrw-r-- walter walter ...  
2. -rw-rw-rw- root   root   ...
3. drwxrw-rw- root   root   ...

파일의 사용권한 및 소유권을 나타내는 것으로 

rwx(user 권한) rw-(group의 권한) r--(other의 권한) => (1번을 풀어보면) 와 같은 의미를 가진다.

즉, user는 read, write, execute 권한을 모두 가지고 있으며 
grop은 read, write 권한 만 other은 read 권한만 가지는 것이다.
또한 사용자는 walter 이며 그룹도 walter를 나타낸다.

 

파일에 대한 소유권 및 권한을 보는 방법에 대해서 알아봤다.

이제는 어떻게 하면 소유권 및 권한을 변경할 수 있는 지 자세히 확인해 보도록 하자.

 

1. chmod => 권한 변경 명령어

chmod 명령어는 두가지 모드로 사용할 수 있다.

 

- 문자열 모드 => chmod 옵션 (ref)(operator)(mode) 파일

reference(대상) :
  u : user의 권한 (사용자의 권한)
  g : group의 권한 (group의 권한)
  o : other의 권한 (user, group의 멤버가 아닌 사용자의 권한)
  a : all의 권한 (위의 셋을 포함하는 모든 사용자의 권한)
operator :
  + : 해당 권한 추가
  - : 해당 권한 제거 
  = : 해당 권한을 설정대로 변경
modes :
  r : read 권한 (읽기)
  w : write 권한 (쓰기)
  x : excute 권한 (실행)
  - : 사용권한없음

 

- 8진수 모드 => chmod 옵션 (8진수) 파일 

 

위에서 보았듯이 rwx은 각각 3비트처럼 사용하여 8진수로 나타낼수 있다.

 

  * rwx => 7
  (4 +2 + 1 = 7)
  * rw- => 6
  (4 + 2 = 6)
  * r-- => 4
  (4 = 4)

 

1. -rwxrw-r-- walter walter ...   
2. -rw-rw-rw- root   root   ... 
3. drwxrw-rw- root   root   ... 
=> 위의 1번 항목에서 모든 권한을 rwx로 변경하기 위해서

문자열 표현 : chmod a=rwx (1번 파일 이름) 
8진수 표현 : chmod 777 (1번 파일 이름) 

=>혹은 r--로 변경하기 위해서
문자열 표현 : chmod a=r (1번 파일 이름) 
8진수 표현 : chmod 444 (1번 파일 이름)

 

2. chown, chgrp => 소유권 변경 명령어

 

chown 옵션 (변경할 소유권 이름) (변경할 파일)

chown 옵션 (변경할 소유권 이름:변경할 그룹 이름) (변경할 파일)

chgrp 옵션 (변경할 그룹 이름) (변경할 파일)

 

1. -rwxrw-r-- walter walter ...   
2. -rw-rw-rw- root   root   ... 
3. drwxrw-rw- root   root   ... 
=> 위의 2번 항목에서 사용자 소유권을 walter로 변경하기 위해서

chown walter (2번 파일 이름)

=> 혹은 위의 2번 항목에서 그룹 소유권을 walter로 변경하기 위해서

chgrp walter (2번 파일 이름)

=> 위의 2번 항목에서 사용자 및 그룹의 소유권을 walter로 변경하기 위해서

chown walter (2번 파일 이름)
chgrp walter (2번 파일 이름)

or 

chown walter:walter (2번 파일 이름)

 

=> 공통적으로 옵션에  -R을 추가하면 하위 디렉토리 파일까지 모두 변경 가능 

**Note**

파일 타입 : d 디렉토리, l(소문자 L) 링크 카운터, s 소켓, p 파이프, - 일반, c 특수문자, b 특수블럭

반응형