1. chmod command
chmod 명령은 Unix 기반 운영 체제에서 파일 및 디렉토리의 권한을 변경하는 데 사용됩니다. "chmod"라는 단어는 "모드 변경"을 의미합니다. 권한은 파일이나 디렉토리를 읽고, 쓰고, 실행할 수 있는 사람을 결정합니다.
chmod 명령은 두 가지 인수를 사용합니다. 첫 번째는 설정하려는 권한이고 두 번째는 변경하려는 파일 또는 디렉토리입니다. 권한은 8진수 또는 기호 표현의 두 가지 방법으로 지정할 수 있습니다.
다음은 chmod 명령을 사용하여 file.txt라는 파일의 권한을 변경하는 예입니다.
$ ls -l file.txt
-rw-rw-r-- 1 user user 0 Feb 10 11:00 file.txt
$ chmod 755 file.txt
$ ls -l file.txt
-rwxr-xr-x 1 user user 0 Feb 10 11:00 file.txt
첫 번째 ls 명령에서 file.txt 파일에 rw-rw-r-- 권한이 있음을 알 수 있습니다. 즉, 파일 소유자가 파일을 읽고 쓸 수 있고 소유자 그룹의 구성원이 읽고 쓸 수 있음을 의미합니다. 다른 사람은 파일을 읽을 수만 있습니다.
chmod 명령에서 인수 755는 파일에 대한 새 권한을 지정합니다. 첫 번째 숫자인 7은 소유자의 권한을 rwx로 설정하며, 이는 소유자가 파일을 읽고 쓰고 실행할 수 있음을 의미합니다. 다음 세 자리 755는 그룹 및 기타 사용자의 권한을 r-x로 설정합니다. 즉, 파일을 읽고 실행할 수만 있고 쓸 수는 없습니다.
마지막으로 두 번째 ls 명령은 파일의 권한이 rwxr-xr-x로 성공적으로 변경되었음을 보여줍니다.
2. chmod command option
chmod 명령에는 숫자(8진수) 및 기호의 두 가지 권한 지정 방법이 있습니다.
숫자(8진수) 표현 : 이 표현에서 권한은 설정하려는 권한 값을 더하여 구성되는 8진수로 지정됩니다.
다음 표에는 각 권한의 숫자 값이 나열되어 있습니다.
7 = rwx (read, write, and execute)
6 = rw- (read and write)
5 = r-x (read and execute)
4 = r-- (read only)
3 = -wx (write and execute)
2 = -w- (write only)
1 = --x (execute only)
0 = --- (no permission)
예를 들어 파일 소유자에게 모든 권한(읽기, 쓰기 및 실행)을 부여하고 그룹 구성원 및 다른 사용자가 파일을 읽고 실행할 수 있도록 하려면 8진수 744를 사용합니다.
chmod 744 file.txt
상징적 표현 : 이 표현에서는 문자를 사용하여 설정하려는 권한을 지정합니다. 기호 표현의 형식은 [ugoa...][+-=][rwxXstugo...]입니다.
● u(사용자)는 파일의 소유자를 나타냅니다.
● g(그룹)은 소유자 그룹의 구성원을 나타냅니다.
● o (기타)는 다른 모든 사용자를 나타냅니다.
● a(모두)는 세 가지(사용자, 그룹 및 기타)를 모두 나타냅니다.
● + 지정된 권한을 추가합니다.
● - 지정된 권한을 제거합니다.
● = 지정된 권한을 설정하고 다른 권한은 제거합니다.
● r(읽기)은 읽기 권한을 나타냅니다.
● w(쓰기)는 쓰기 권한을 나타냅니다.
● x(실행)는 실행 권한을 나타냅니다.
● X는 파일이 디렉토리이거나 파일에 이미 실행 권한 세트가 있는 경우에만 실행 권한을 추가합니다.
● s(사용자 또는 그룹 ID 설정)는 실행 시 set-user-ID 또는 set-group-ID를 설정합니다.
● t(스티키)는 스티키 비트를 설정합니다.
3. chmod command option
(1) u 옵션
각 사용자가 자신의 블로그 파일을 저장할 고유한 디렉토리가 있는 블로그 시스템이 있다고 가정해 보겠습니다. 기본적으로 디렉토리는 rwxrw-rw-(8진수 표현으로 766) 권한으로 생성됩니다. 즉, 소유자와 소유자 그룹의 구성원은 파일을 읽고 쓰고 실행할 수 있지만 다른 사용자는 파일을 읽고 쓸 수만 있습니다.
이제 john이라는 사용자가 있고 그 사람만 파일을 읽고 쓸 수 있고 다른 사람은 파일에 전혀 액세스할 수 없도록 그의 블로그 디렉토리에 대한 권한을 변경하려고 한다고 가정해 보겠습니다.
$ ls -l /var/www/john
drwxrw-rw- 2 john john 4096 Feb 10 11:00 john
$ chmod 700 /var/www/john
$ ls -l /var/www/john
drwx------ 2 john john 4096 Feb 10 11:00 john
첫 번째 ls 명령에서 john 디렉토리에 rwxrw-rw- 권한이 있음을 알 수 있습니다.
chmod 명령에서 숫자 700은 사용자(u)에 대한 권한을 rwx로 설정합니다. 즉, john은 디렉토리에 대한 읽기, 쓰기 및 실행 권한이 있지만 그룹 및 기타 사용자에게는 권한이 전혀 없습니다.
(2) g 옵션
각 사용자가 자신의 블로그 파일을 저장할 고유한 디렉토리가 있는 블로그 시스템이 있다고 가정해 보겠습니다. 기본적으로 디렉토리는 rwxrw-rw-(8진수 표현으로 766) 권한으로 생성됩니다. 즉, 소유자와 소유자 그룹의 구성원은 파일을 읽고 쓰고 실행할 수 있지만 다른 사용자는 파일을 읽고 쓸 수만 있습니다.
이제 john이라는 사용자가 있고 그의 그룹 구성원이 파일을 읽고 실행할 수 있지만 쓸 수 없도록 그의 블로그 디렉토리에 대한 권한을 변경하려고 한다고 가정해 보겠습니다.
$ ls -l /var/www/john
drwxrw-rw- 2 john john 4096 Feb 10 11:00 john
$ chmod 551 /var/www/john
$ ls -l /var/www/john
drwxr-x--x 2 john john 4096 Feb 10 11:00 john
첫 번째 ls 명령에서 john 디렉토리에 rwxrw-rw- 권한이 있음을 알 수 있습니다.
chmod 명령에서 숫자 551은 그룹(g)에 대한 권한을 r-x로 설정합니다. 즉, john의 그룹 구성원은 디렉토리에 대한 읽기 및 실행 권한이 있지만 쓸 수는 없습니다. 소유자인 john은 여전히 전체 권한(rwx)을 가지고 있으며 다른 사용자는 권한이 전혀 없습니다.
(3) o 옵션
각 사용자가 자신의 블로그 파일을 저장할 고유한 디렉토리가 있는 블로그 시스템이 있다고 가정해 보겠습니다. 기본적으로 디렉토리는 rwxrw-rw-(8진수 표현으로 766) 권한으로 생성됩니다. 즉, 소유자와 소유자 그룹의 구성원은 파일을 읽고 쓰고 실행할 수 있지만 다른 사용자는 파일을 읽고 쓸 수만 있습니다.
이제 john이라는 사용자가 있고 다른 사람이 파일을 읽을 수는 있지만 파일을 쓰거나 실행할 수 없도록 그의 블로그 디렉토리에 대한 권한을 변경하려고 한다고 가정해 보겠습니다.
$ ls -l /var/www/john
drwxrw-rw- 2 john john 4096 Feb 10 11:00 john
$ chmod 744 /var/www/john
$ ls -l /var/www/john
drwxr--r-- 2 john john 4096 Feb 10 11:00 john
첫 번째 ls 명령에서 john 디렉토리에 rwxrw-rw- 권한이 있음을 알 수 있습니다.
chmod 명령에서 숫자 744는 다른 사람(o)에 대한 권한을 r--로 설정합니다. 즉, 다른 사람은 해당 디렉토리에 대한 읽기 권한만 있지만 쓰거나 실행할 수는 없습니다. 소유자인 john과 그의 그룹 구성원은 여전히 전체 권한(rwx)을 가집니다.
(4) a 옵션
각 사용자가 자신의 블로그 파일을 저장할 고유한 디렉토리가 있는 블로그 시스템이 있다고 가정해 보겠습니다. 기본적으로 디렉토리는 rwxrw-rw-(8진수 표현으로 766) 권한으로 생성됩니다. 즉, 소유자와 소유자 그룹의 구성원은 파일을 읽고 쓰고 실행할 수 있지만 다른 사용자는 파일을 읽고 쓸 수만 있습니다.
이제 john이라는 사용자가 있고 모든 사람(소유자, 그룹 구성원 및 기타 사용자)이 파일을 읽을 수만 있도록 그의 블로그 디렉토리에 대한 권한을 변경하려고 한다고 가정해 보겠습니다.
$ ls -l /var/www/john
drwxrw-rw- 2 john john 4096 Feb 10 11:00 john
$ chmod 555 /var/www/john
$ ls -l /var/www/john
dr-xr-xr-x 2 john john 4096 Feb 10 11:00 john
첫 번째 ls 명령에서 john 디렉토리에 rwxrw-rw- 권한이 있음을 알 수 있습니다.
chmod 명령에서 숫자 555는 모든 사람(a)의 권한을 r-x로 설정합니다. 즉, 소유자, 해당 그룹의 구성원 및 기타 사용자는 디렉토리에 대한 읽기 권한만 가지며 디렉토리에 쓰거나 실행할 수 없습니다.
(5) + 옵션
각 사용자가 자신의 블로그 파일을 저장할 고유한 디렉토리가 있는 블로그 시스템이 있다고 가정해 보겠습니다. 기본적으로 디렉토리는 rwxrw-rw-(8진수 표현으로 766) 권한으로 생성됩니다. 즉, 소유자와 소유자 그룹의 구성원은 파일을 읽고 쓰고 실행할 수 있지만 다른 사용자는 파일을 읽고 쓸 수만 있습니다.
이제 john이라는 사용자가 있고 다른 사람이 파일을 실행할 수 있도록 그의 블로그 디렉토리에 대한 권한을 변경하려고 한다고 가정해 보겠습니다.
$ ls -l /var/www/john
drwxrw-rw- 2 john john 4096 Feb 10 11:00 john
$ chmod o+x /var/www/john
$ ls -l /var/www/john
drwxrw-rwx 2 john john 4096 Feb 10 11:00 john
첫 번째 ls 명령에서 john 디렉토리에 rwxrw-rw- 권한이 있음을 알 수 있습니다.
chmod 명령에서 옵션 o+x는 실행 권한(x)을 다른 사람(o)에 추가(+)합니다. 이제 다른 사용자가 파일을 읽고 실행할 수 있지만 쓸 수는 없습니다. 소유자와 소유자 그룹의 구성원은 여전히 전체 권한(rwx)을 가집니다.
(6) - 옵션
각 사용자가 자신의 블로그 파일을 저장할 고유한 디렉토리가 있는 블로그 시스템이 있다고 가정해 보겠습니다. 기본적으로 디렉토리는 rwxrw-rw-(8진수 표현으로 766) 권한으로 생성됩니다. 즉, 소유자와 소유자 그룹의 구성원은 파일을 읽고 쓰고 실행할 수 있지만 다른 사용자는 파일을 읽고 쓸 수만 있습니다.
이제 john이라는 사용자가 있고 다른 사람이 파일을 실행할 수 없도록 그의 블로그 디렉토리에 대한 권한을 변경하려고 한다고 가정해 보겠습니다.
$ ls -l /var/www/john
drwxrw-rw- 2 john john 4096 Feb 10 11:00 john
$ chmod o-x /var/www/john
$ ls -l /var/www/john
drwxrw-rw- 2 john john 4096 Feb 10 11:00 john
첫 번째 ls 명령에서 john 디렉토리에 rwxrw-rw- 권한이 있음을 알 수 있습니다.
chmod 명령에서 옵션 o-x는 다른 사람(o)의 실행 권한(x)을 제거(-)합니다. 이제 다른 사용자는 파일을 읽고 쓸 수만 있고 실행할 수는 없습니다. 소유자와 소유자 그룹의 구성원은 여전히 전체 권한(rwx)을 가집니다.
(7) = 옵션
chmod 명령의 = 연산자는 파일 또는 디렉토리에 대한 권한을 정확한 값 세트로 설정하는 데 사용됩니다. = 연산자를 사용하면 권한을 추가하거나 제거하는 대신 설정하려는 권한을 지정할 수 있습니다. 권한은 사용자, 그룹 및 기타 사용자에 대한 읽기, 쓰기 및 실행 권한을 나타내는 기호의 조합으로 설정됩니다.
예를 들어, blogger라는 파일이 있고 권한을 rw-rw-r--로 설정하려는 경우 다음 명령을 사용합니다.
chmod =rw-rw-r-- blogger
이것은 블로거 파일의 권한을 rw-rw-r--로 설정하여 소유자와 그룹에게 읽기 및 쓰기 권한을 부여하고 다른 사용자에게는 읽기 권한만 부여합니다.
= 연산자는 파일이나 디렉터리에 대한 기존 권한을 완전히 대체하므로 이 연산자를 사용할 때 세 가지 권한 집합(사용자, 그룹 및 기타)을 모두 지정해야 합니다.
(8) r 옵션
chmod 명령의 r 옵션은 파일이나 디렉토리에 "읽기" 권한을 추가하는 데 사용됩니다. r 옵션은 "읽기"를 나타내며 chmod와 함께 사용하면 사용자가 파일이나 디렉토리의 내용을 읽을 수 있습니다.
예를 들어, blogger라는 파일이 있고 소유자에 대한 읽기 권한을 추가하려는 경우 다음 명령을 사용합니다.
chmod +r blogger
이렇게 하면 블로거 파일의 소유자에게 읽기 권한이 추가되어 rwxr--r--(여기서 r은 읽기, w는 쓰기, x는 실행을 나타냄)와 같은 권한이 생성됩니다.
그룹 및 다른 사용자에 대한 읽기 권한을 추가하려면 다음 명령을 사용합니다.
chmod +r blogger
chmod g+r blogger
chmod o+r blogger
이렇게 하면 그룹 및 기타 사용자에 대한 읽기 권한이 추가되어 rwxrw-rw-(여기서 g는 그룹을 나타내고 o는 기타를 나타냄)와 같은 권한이 생성됩니다.
(9) w 옵션
chmod 명령의 w 옵션은 파일이나 디렉토리에 "쓰기" 권한을 추가하는 데 사용됩니다. w 옵션은 "쓰기"를 나타내며 chmod와 함께 사용하면 사용자가 파일이나 디렉토리의 내용을 수정할 수 있습니다.
예를 들어, blogger라는 파일이 있고 소유자에 대한 쓰기 권한을 추가하려는 경우 다음 명령을 사용합니다.
chmod +w blogger
이렇게 하면 블로거 파일의 소유자에게 쓰기 권한이 추가되어 rwxrw-r--(여기서 r은 읽기, w는 쓰기, x는 실행을 나타냄)와 같은 권한이 생성됩니다.
그룹 및 다른 사용자에 대한 쓰기 권한을 추가하려면 다음 명령을 사용합니다.
chmod g+w blogger
chmod o+w blogger
이렇게 하면 그룹 및 기타 사용자에 대한 쓰기 권한이 추가되어 rwxrwxrw-(여기서 g는 그룹을 나타내고 o는 기타를 나타냄)와 같은 권한이 생성됩니다.
다른 사용자에게 쓰기 권한을 부여하면 파일이나 디렉토리의 내용을 수정할 수 있으므로 보안상 위험할 수 있다는 점에 유의해야 합니다. 일반적으로 신뢰할 수 있는 사용자 및 그룹에만 쓰기 권한을 부여하는 것이 좋습니다.
(10) x 옵션
"chmod" 명령은 Linux 및 Unix 계열 시스템에서 파일 및 디렉토리의 권한을 변경하는 데 사용됩니다. "x" 옵션은 파일이 프로그램으로 실행될 수 있는지 스크립트로 실행될 수 있는지를 결정하는 실행 권한을 나타냅니다.
다음은 chmod 명령과 함께 사용할 수 있는 다양한 x 옵션입니다.
1) +x : 파일에 실행 권한을 추가합니다.
chmod +x blog.sh
2) -x : 파일에서 실행 권한을 제거합니다.
chmod -x blog.sh
3) u+x : 파일 소유자에게 실행 권한을 추가합니다.
chmod u+x blog.sh
4) u-x : 파일 소유자의 실행 권한을 제거합니다.
chmod u-x blog.sh
5) g+x : 파일의 그룹 소유자에 대한 실행 권한을 추가합니다.
chmod g+x blog.sh
6) g-x: 파일의 그룹 소유자에 대한 실행 권한을 제거합니다.
chmod g-x blog.sh
7) o+x: 다른 모든 사용자에 대한 실행 권한을 추가합니다.
chmod o+x blog.sh
8) o-x: 다른 모든 사용자의 실행 권한을 제거합니다.
chmod o-x blog.sh
참고: 위의 예에서 "blog.sh"는 실행 권한이 수정되는 파일입니다. 이러한 명령의 실제 출력은 특정 시스템의 특정 파일 시스템 및 권한 설정에 따라 달라집니다.
(11) X 옵션
"chmod" 명령은 Linux 및 Unix 계열 시스템에서 파일 및 디렉토리의 권한을 변경하는 데 사용됩니다. "X" 옵션은 실행 가능한 것으로 표시된 디렉토리 및/또는 파일에 대한 실행 권한을 나타냅니다.
1) +X: 이미 실행 가능한 것으로 표시된 디렉토리 또는 파일에 대한 실행 권한을 추가합니다.
chmod +X blog/
2) -X: 이미 실행 가능한 것으로 표시된 디렉토리 또는 파일에서 실행 권한을 제거합니다.
chmod -X blog/
3) u+X: 이미 실행 가능한 것으로 표시된 디렉토리 또는 파일의 소유자에 대한 실행 권한을 추가합니다.
chmod u+X blog/
4) u-X: 이미 실행 가능한 것으로 표시된 디렉토리 또는 파일의 소유자에 대한 실행 권한을 제거합니다.
chmod u-X blog/
5) g+X: 이미 실행 가능한 것으로 표시된 디렉터리 또는 파일의 그룹 소유자에 대한 실행 권한을 추가합니다.
chmod g+X blog/
6) g-X: 이미 실행 가능한 것으로 표시된 디렉터리 또는 파일의 그룹 소유자에 대한 실행 권한을 제거합니다.
chmod g-X blog/
7) o+X: 이미 실행 가능한 것으로 표시된 디렉터리 또는 파일에 다른 모든 사용자의 실행 권한을 추가합니다.
chmod o+X blog/
8) o-X: 이미 실행 가능한 것으로 표시된 디렉토리 또는 파일에서 다른 모든 사용자의 실행 권한을 제거합니다.
chmod o-X blog/
참고: 위의 예에서 "blog/"는 실행 권한이 수정되는 디렉토리입니다. 이러한 명령의 실제 출력은 특정 시스템의 특정 파일 시스템 및 권한 설정에 따라 달라집니다. "X" 옵션은 이미 실행 가능한 것으로 표시된 디렉토리와 파일만 영향을 받도록 하는 데 사용됩니다.
(12) s 옵션
"chmod" 명령은 Linux 및 Unix 계열 시스템에서 파일 및 디렉토리의 권한을 변경하는 데 사용됩니다. "s" 옵션("setuid" 또는 "setgid" 비트라고도 함)을 사용하면 파일을 실행하는 사용자 대신 소유자 또는 그룹의 권한으로 파일을 실행할 수 있습니다. 이는 사용자가 상승된 권한으로 프로그램을 실행하도록 허용하는 데 유용할 수 있습니다.
1) +s: 파일에 setuid 비트를 추가하여 소유자의 권한으로 실행할 수 있도록 합니다.
chmod +s blog.sh
2) -s: 파일에서 setuid 비트를 제거합니다.
chmod -s blog.sh
3) +S: 파일에 setgid 비트를 추가하여 해당 그룹의 권한으로 실행할 수 있도록 합니다.
chmod +S blog.sh
4) -S: 파일에서 setgid 비트를 제거합니다.
chmod -S blog.sh
참고: setuid 및 setgid 비트는 "u+rwx" 또는 "g+rwx"와 같은 다른 권한 플래그와 함께 추가하거나 제거할 수 있습니다. 그러나 부적절하게 사용하면 보안 위험이 발생할 수 있으므로 setuid 및 setgid 비트를 사용할 때 주의해야 합니다. 신뢰할 수 있는 특정 프로그램에 대해서만 이러한 옵션을 사용하고 파일 소유자 및 그룹에 적절한 권한을 설정하는 것이 좋습니다. 이러한 명령의 실제 출력은 특정 시스템의 특정 파일 시스템 및 권한 설정에 따라 달라집니다.
(13) t 옵션
"chmod" 명령은 Linux 및 Unix 계열 시스템에서 파일 및 디렉토리의 권한을 변경하는 데 사용됩니다. "t" 옵션("스티키 비트"라고도 함)은 디렉터리에 적용할 수 있는 특수 권한 플래그입니다. 디렉토리에 고정 비트가 설정되어 있으면 디렉토리 내의 파일 소유자 또는 디렉토리 자체의 소유자만 파일을 삭제하거나 이름을 바꿀 수 있습니다.
1) +t: 고정 비트를 디렉터리에 추가합니다.
chmod +t blog/
2) -t: 디렉토리에서 고정 비트를 제거합니다.
chmod -t blog/
참고: 고정 비트는 일반적으로 사용되지 않지만 사용자가 파일을 생성할 수 있어야 하지만 서로의 파일을 삭제하거나 수정할 수 없는 공유 디렉터리와 같은 특정 시나리오에서 유용할 수 있습니다. 이러한 명령의 실제 출력은 특정 시스템의 특정 파일 시스템 및 권한 설정에 따라 달라집니다.
댓글