[Linux] 파일 퍼미션 및 보안
파일 퍼미션 및 보안
파일 퍼미션
각각의 파일 퍼미션에 대한 내용은 아래와 같다.
파일에 적용될때와 디렉토리에 적용될때의 내용이 약간씩 다르므로 주의해야 한다.
- read - 파일의 내용을 읽기
- write - 파일이나 디렉토리를 쓰거나 수정
- execute - 파일을 실행하거나 디렉토리의 컨텐츠를 보기
파일 권한
각각의 퍼미션은 Owner(소유자), Group(그룹), WWW(일반) 으로 나뉜다.
일반적인 예
OWNER GROUP -rw-r--r--. main.file 소유자는 파일을 쓰고 읽지만 일반인 및 그룹은 파일을 읽기만 한다.
OWNER GROUP drwxr-xr-x. myfolder 소유자는 디렉토리를 생성 변경 가능하고, 일반인은 디렉토리의 컨텐츠를 보거나 읽을 수 있다.
WWW WWW drwxr-xr-x. myfolder 일반인은 컨텐츠를 읽고 쓰고 디렉토리를 생성할 수 있다
For a file :
- r = 파일의 내용을 읽을 수 있다
- w = 컨텐츠의 내용을 변경할 수 있다.
- x = "./
<fileName>
" 처럼 사용하여 파일을 실행할 수 있다
For a directory :
- r = 디렉토리내의 파일(콘텐츠)의 리스트를 볼 수 있다.
- w = 디렉토리내에서 파일 및 콘텐츠를 생성할 수 있다.
- x = "cd
<dirName>
" 명령어를 이용해 디렉토리 내로 접근가능하다.
다음과 같이 하면 보안에 최대한 강한 퍼미션을 유지할 수 있다
일반 파일에는 x 권한은 되도록 삭제한다.(의심스러우면 모든 x 권한 삭제)
chmod 644 소유자가 파일을 생성할 경우
chmod 755 소유자가 디렉토리를 생성할 경우
아래처럼 확인하여 실행권한이 있는 파일을 찾아 필요없을 경우 해제한다.
find /dir -type f -executable
하위 디렉토리를 모두 755 퍼미션으로 변경
find /path/to/base/dir -type d -exec chmod 755 {} +
chmod 755 $(find /path/to/base/dir -type d)
find /path/to/base/dir -type d -print0 | xargs -0 chmod 755
find ./img -type d -print0 | xargs -0 chmod 755
하위 파일을 모두 644로 변경
find /path/to/base/dir -type f -exec chmod 644 {} +
chmod 644 $(find /path/to/base/dir -type f)
find /path/to/base/dir -type f -print0 | xargs -0 chmod 644"
# find ./ -type d -print0 | xargs -0 chmod 755
# find ./ -type d -print0 | xargs -0 chown www-data.www-data
특정 소유권을 다른 소유권으로 변경
chown --from=소유자.그룹 변경소유자.변경그룹 [Directory] -R
chown --from=ubuntu.ubuntu newowner.newgroup ./dir -R