본문 바로가기



리눅스에서 자신의 계정에 대한 권한 제대로 확인하고 변경하기



리눅스에서 자신의 계정이 어떤 그룹에 속해있고 어떤디렉터리나 파일에 어떤권한을 가지고 있는지 확인해 봅시다.

Linux에서 특정 유저가 어떤 그룹에 속해 있는지 확인하려면 groups 명령어를 사용하면 됩니다. 예를 들어, yourusername이라는 유저가 어떤 그룹에 속해 있는지 확인하려면 터미널에서 다음과 같이 입력합니다:

groups yourusername

 

이 명령어를 실행하면 yourusername이 속한 그룹의 목록이 출력됩니다. 

만약 내가 구축한 웹서버에 권한을 { www-data, apache, nginx }이 권한그룹들에게 부여했다면 {www-data, apache, nginx} 중 어느 그룹에도 속하지 않았다면, 이 유저를 해당 그룹에 추가해야 합니다.

유저를 특정 그룹에 추가하려면 usermod 명령어를 사용합니다. 예를 들어, yourusername을 www-data 그룹에 추가하려면 다음과 같이 입력합니다:

sudo usermod -a -G www-data yourusername

 

이 명령어는 yourusername을 www-data 그룹에 추가합니다. -a 옵션은 유저를 그룹에 추가하고, -G 옵션은 그룹 이름을 지정합니다.

apache 또는 nginx 그룹에 유저를 추가하려면 위 명령어에서 www-data를 apache 또는 nginx로 바꿔 입력하면 됩니다.

명령어를 실행한 후에는 변경사항이 적용되도록 시스템을 재부팅하는 것이 좋습니다.

주의: 이 명령어들은 관리자 권한이 필요하므로 sudo를 사용해야 합니다. 또한, 실수로 중요한 시스템 설정을 변경하는 것을 방지하기 위해 항상 명령어를 신중하게 사용해야 합니다.

 

파일 및 디렉토리 권한 설정에 관련된 몇 가지 주요 명령어를 정리해보겠습니다.

1. chown: 파일 또는 디렉토리의 소유권 변경

  • 예: sudo chown -R username:groupname /path/to/directory
    • -R 옵션은 재귀적으로 모든 하위 파일 및 디렉토리의 소유권을 변경합니다.

2. chmod: 파일 또는 디렉토리의 권한 변경

  • chmod: 파일 또는 디렉토리의 권한 변경
    • 예: sudo chmod 755 /path/to/file

3. find: 특정 조건에 맞는 파일 또는 디렉토리 찾기

  • 예: sudo find /path/to/directory -type f -exec chmod 644 {} \;
    • -type f 옵션은 파일만 찾으라는 의미이며, -exec 옵션은 찾은 파일에 대해 특정 명령어를 실행하라는 의미입니다. 여기서는 모든 파일에 대해 644 권한을 설정하라는 의미입니다.
  • 파일을 이름으로 찾으려면 find 명령을 사용하면 됩니다. 이 명령은 지정된 디렉토리에서 파일을 찾아주는 강력한 도구입니다.
    • 예를 들어, 'my_file.txt'라는 이름의 파일을 현재 디렉토리에서 찾으려면 다음과 같이 입력하면 됩니다. 
      • find . -name my_file.txt 이 명령에서 .은 현재 디렉토리를 의미하며, -name 옵션은 찾을 파일의 이름을 지정합니다.
        만약 전체 파일 시스템에서 특정 파일을 찾으려면, 디렉토리 위치를 /로 변경하면 됩니다.
      • find / -name my_file.txt 위 명령은 파일 시스템의 모든 디렉토리를 검색하므로 시간이 오래 걸릴 수 있습니다. 또한, 특정 디렉토리에 대한 권한이 없다면 에러 메시지가 출력될 수 있습니다.
        또한, 파일 이름에 와일드카드(*)를 사용하여 패턴을 지정할 수도 있습니다. 예를 들어, .txt 확장자를 가진 모든 파일을 찾으려면 다음과 같이 입력하면 됩니다.
      • find . -name "*.txt" 이 명령은 현재 디렉토리 및 하위 디렉토리에서 .txt 확장자를 가진 모든 파일을 찾아줍니다.

4. setfacl: ACL(Access Control Lists) 설정. 특정 사용자 또는 그룹에게 파일 또는 디렉토리에 대한 접근 권한을 부여할 때 사용

  • 예: setfacl -m u:username:rwx /path/to/file
    • 여기서 'u:username:rwx'는 'username' 사용자에게 읽기/쓰기/실행 권한을 부여하라는 의미입니다.

5. getfacl: 파일 또는 디렉토리의 현재 ACL 확인

  • 예: getfacl /path/to/file

이 외에도 파일 및 디렉토리 권한을 관리하는 데 필요한 다양한 명령어와 옵션이 있으며, 각 시스템의 요구 사항에 따라 적절히 사용해야 합니다.