chmod/chown를 하위 디렉토리와 하위 파일들에 적용하기


이번 포스팅에서는 sudo 명령어에 대해서 포스팅하려고 한다. sudo란 ‘superuser do’라고 해서 쉽게 말해, ‘최고 관리자(root)가 내리는 명령’이라고 보면 된다. 특히 이 sudo 명령어는 권한 문제로 인해 많이 사용하고 데비안, 레드헷 계열의 리눅스에서 모두 사용할 수 있는데, 이번 포스팅에서 레드헷 계열인 CentOS만 하는 이유는 Ubuntu는 root 비밀번호만 알면 일반 계정에서 sudo를 바로 이용할 수 있지만 CentOS의 경우는 일반 계정에서 root 비밀번호를 알고 있어도 sudo를 바로 이용할 수 없기 때문이다. 검색해보니 약간의 설정을 해줘야 했다. 그래서, 이번 기회에 공부할 겸 포스팅해보려고 한다. 실습 환경은 VM CentOS 7이다.


필자의 안 좋은 습관 중 하나는 root로 작업을 하는 것이다. 분명 실무에서는 root 권한(비밀번호)을 왠만하면 거의 안 줘서 root 자체를 접근 못할텐데 root 비밀번호를 알고 있는 경우 작업할 때 아무래도 편하다보니 root로 모든 걸 하는 습관이 있다. 이러다 보니 대부분의 파일과 디렉토리가 root 권한으로 되어버려서 root가 아니고서는 ‘접근/읽기/쓰기’ 를 못하는 경우가 허다했다. 그러다가 특정 계정에서만 액세스할 수 있게 권한을 바꾸고 싶었는데, 이게 몇 개 없으면 그냥 직접 chmod/chown으로 바꾸면 되지만 해당 파일이 여러 개인 경우 일일이 바꾸기엔 너무 귀찮고 비효율적이었다. 검색해보니 한 번에 적용하는 방법이 있어 간단하지만 포스팅해보려고 한다. Ubuntu와 CentOS에 모두 동일하게 적용되기 때문에 필자는 CentOS 7에서만 진행했다.


(1) chmod

간단하다. -R 옵션을 적용해주면 된다.

$ chmod -R [permission] [file/directory name]

’.’은 현재 위치 즉, 현재 해당 디렉토리를 의미하는데, drwxr-xr-x(755) 상태이고 ‘..’은 해당 디렉토리에 대한 상위 디렉토리를 의미한다. 각 파일들은 -rw-r--r--(644) 상태이다. 하위 디렉토리인 test도 살펴보면

이렇게 되어 있다. 이를 모두 (d)rwxrwxrwx(777)로 바꾼다고 하면 -R 옵션을 사용하면 된다.

$ chmod -R 777 /home/pooh/chmod_test/

보면 디렉토리 및 파일들의 권한이 모두 777((d)rwxrwxrwx)로 바뀐 것을 확인할 수 있다. 하위 디렉토리인 test도 확인해보면

역시나 모두 바뀌어 있는 것을 확인할 수 있다.


(2) chown

chmod와 동일하게 -R 옵션을 적용해주면 된다.

$ chown -R [owner name]:[group name] [file/directory name]

현재 해당 디렉토리는 owner, group이 root 권한이며 각 디렉토리의 파일들 역시 모두 root이다(상위 디렉토리는 pooh 권한). 하위 디렉토리인 test도 보면

owner, group이 모두 root이다. 이를 pooh 계정 권한으로 바꿔보겠다.

$ chown -R pooh:pooh /home/pooh/chmod_test/

owner, group이 모두 pooh 계정으로 바뀌었음을 확인할 수 있다. 하위 디렉토리인 test도 보면

역시 잘 바뀌어져 있다.



참고 사이트 :

  • https://twpower.github.io/64-use-chown-to-subfiles-and-subfolders

이전글: [CentOS] sudo 명령어 사용하기 다음글: [Pycharm] Could not verify 'ssh-rsa' host key with fingerfrint