나는 지난 몇 달 동안 Linux 에 대한 과정을 수강 했으며 항상 나를 혼란스럽게 만든 Linux 의 한 측면은 권한이 작동하는 방식이었습니다. (Linux)예를 들어, 내 웹 서버에 파일을 한 번 업로드하고 오류가 발생하면 웹 호스트에서 파일 권한을 755로 변경하라는 지시를 받았습니다.
권한을 변경하여 문제가 해결되었음에도 불구하고 그것이 무엇을 의미하는지 전혀 알 수 없었습니다. 이제 Linux 권한이 그렇게 복잡하지 않다는 것을 깨달았습니다. 시스템만 이해하면 됩니다. 이 기사에서는 높은 수준의 Linux(Linux) 권한에 대해 이야기 하고 chmod 명령을 사용하여 파일 및 폴더에 대한 권한을 변경하는 방법을 보여줍니다.
Linux 권한 및 수준
Linux 에는 기본적으로 일반적으로 걱정해야 하는 세 가지 권한이 있습니다: 읽기, 쓰기 및 실행. 이 세 가지 모두 매우 자명합니다. 이제 이러한 권한이 파일에 적용되면 레벨에 적용됩니다.
Linux 에는 소유자, 그룹 및 기타 의 세 가지 권한 수준이 있습니다 . 소유자는 파일/폴더를 소유한 사용자이고, 그룹은 파일 그룹의 다른 사용자를 포함하고 other는 소유자 또는 그룹이 아닌 다른 모든 사용자를 나타냅니다.
읽기(Read) , 쓰기 및 실행은 기호 문자 또는 8진수로 표시됩니다. 예를 들어, 일부 파일이 있는 디렉토리에서 ls -l을 수행하면 권한의 기호 문자 표현을 볼 수 있습니다.
권한은 다음과 같이 작성됩니다. 첫 번째 비트는 대시 또는 문자 d입니다. 대시(Dash) 는 파일을 의미하고 d 는 디렉토리를 의미합니다. 파일 이름이 링크인 경우 첫 번째 비트도 l 이 될 수 있습니다. (l)다음으로 3비트의 3개 그룹이 있습니다. 각 그룹의 첫 번째 비트는 읽기, 두 번째 비트는 쓰기, 세 번째 비트는 실행입니다. 처음 3비트는 소유자용, 두 번째 3비트는 그룹용, 세 번째 3비트는 기타용입니다. 여기에 더 시각적인 설명이 있습니다.
문자 대신 대시가 표시되면 소유자, 그룹 또는 다른 모든 사용자에게 해당 권한이 없음을 의미합니다. 위의 예에서 소유자, 그룹 및 기타 모든 사람은 읽기 쓰기 및 실행 권한을 가집니다.
ls -l 명령의 출력을 보면 내 연습용 텍스트 파일에 다음 권한이 있음을 알 수 있습니다.
-rw-rw-rw-
이것은 모든 사람이 파일에 대한 읽기/쓰기 권한만 가지고 있음을 의미합니다. 다음은 또 다른 예입니다.
drwxr--r--
첫 번째 비트를 보면 권한이 디렉토리에 대한 것임을 알 수 있습니다. 소유자는 읽기/쓰기/실행 권한이 있지만 그룹 및 기타 사용자는 읽기 권한만 있습니다.
8진수 표현
이것이 기호를 사용하여 Linux(Linux) 에서 권한이 표시되는 방식 입니다. 동일한 권한을 나타내는 두 번째 방법은 8진수를 사용하는 것입니다. 나중에 chmod 명령을 사용하면 기호나 8진수를 사용하여 권한을 변경할 수 있음을 알 수 있습니다.
그렇다면 Linux 는 8진수를 사용하여 읽기, 쓰기 및 실행을 어떻게 표현합니까? 기본적으로 아래와 같이 각 권한에 번호를 부여하면 됩니다.
읽기 권한은 4로, 쓰기는 2로, 실행은 1로 표시됩니다. 8진수 권한을 얻기 위해 이들을 더하기만 하면 됩니다. 예를 들어, 모든 사람에게 모든 권한이 있는 위의 예를 살펴보겠습니다.
-rwxrwxrwx
소유자는 rwx를 가지고 있으므로 4 + 2 + 1을 추가하여 값 7을 얻습니다. 그룹에 대해서도 동일한 작업을 수행하고 다른 그룹에 대해서도 동일한 작업을 수행합니다. 최종 8진수 값은 777입니다. 읽기/쓰기 권한만 부여한 예를 살펴보겠습니다.
-rw-rw-rw-
읽기 및 쓰기를 추가하기 때문에 첫 번째 8진수는 4 + 2가 됩니다. 두 번째는 세 번째 8진수와 동일합니다. 여기에서 최종 8진수 값은 666입니다.
이제 다른 방법으로 시도해 보겠습니다. 755 가 어떤 권한을 나타내는 지 알고 싶다고 가정해 봅시다 . 글쎄, 당신이 그것을 개별 숫자로 나누면 알아내는 것은 꽤 쉽습니다. 첫 번째 숫자는 7이며 4 + 2 + 1을 추가해야만 얻을 수 있습니다. 이는 소유자에게 읽기/쓰기/실행 권한이 있음을 의미합니다. 5는 4 + 1을 추가해야만 얻을 수 있습니다. 이는 그룹과 다른 사용자에게 읽기 및 실행 권한이 있음을 의미합니다.
바라건대(Hopefully) , 이것이 8진수를 사용하여 Linux 에서 권한을 나타내는 방법에 대한 좋은 설명입니다 . 전체적으로 상당히 직관적입니다.
chmod를 사용하여 권한 수정
이제 권한을 읽는 방법을 이해했으므로 권한을 변경하는 방법에 대해 이야기해 보겠습니다. 이 목적으로 사용하는 가장 쉬운 유틸리티는 chmod 명령입니다. 작동 방식은 다음과 같습니다. 명령을 설명하는 가장 좋은 방법은 예제를 살펴보는 것입니다.
위에서 이야기한 권한, 즉 다음부터 시작하겠습니다.
-rw-rw-rw-
소유자, 그룹 및 기타에 대한 실행 권한을 추가하려는 경우 두 가지 방법으로 진행할 수 있습니다. 기호 방법이나 8진수 방법을 사용할 수 있습니다. 기호 메서드의 경우 아래와 같이 다음을 수행합니다.
정확한 명령어는
chmod a+x filename
구문은 다음과 같습니다. 소유자( u(u) ), 그룹( g ), 기타( o ) 또는 모두 를 나타내는 문자 ( a ) 다음에 권한 추가를 위한 +- 다음에 대한 문자 권한( 읽기는 r , 쓰기 는 w , 실행은 (w)x ).
위의 예에서는 모든 사용자에 대한 실행 권한을 추가했습니다. 위 스크린샷에서 볼 수 있듯이 결과는 소유자, 그룹 및 기타에 대한 x 입니다. (x)이제 그룹 및 다른 사용자에 대해서만 쓰기 및 실행 권한을 제거하고 싶다고 가정해 보겠습니다.
여기에서 볼 수 있듯이 저는 다음 명령을 사용하여 이 작업을 수행했습니다.
chmod go-wx filename
그룹 및 기타의 권한을 변경하고 싶기 때문에 문자 g 와 문자 o 를 사용 합니다. 권한을 제거하고 싶으므로 – 기호를 사용합니다. 마지막으로 쓰기 및 실행 권한을 제거하고 싶으므로 w 와 x 를 사용 합니다. 다음은 기호 사용에 대한 편리한 작은 테이블입니다.
이것이 symbol 메소드를 사용하는 것의 전부입니다. 이제 내가 좀 더 쉬운 8진법에 대해 이야기해 보겠습니다. Octal 은 한 번에 모든 권한을 추가하거나 제거할 수 있기 때문에 좋습니다.
파일에 대해 다음 권한으로 시작하는 경우 8진법을 사용하여 권한을 변경하는 방법을 살펴보겠습니다.
-rw-rw-rw-
위에서(Above) 다음 명령을 사용한 것을 볼 수 있습니다.
chmod 744 filename
이것은 기본적으로 소유자가 읽기/쓰기/실행 권한을 갖고 그룹 및 기타는 읽기 권한만 얻는다는 것을 의미합니다. 보시다시피 하나의 간단한 명령으로 권한을 쉽게 추가하거나 제거할 수 있습니다. 계속해서 권한을 다시 변경하고 싶습니다.
이제 다시 매우 간단한 다음 명령을 사용했습니다.
chmod 640 filename
여기서는 소유자에게 읽기/쓰기 권한을 부여하고 그룹에는 읽기 권한만 부여하고 다른 그룹에는 권한을 부여하지 않습니다. 권한이 없음을 나타내려면 0을 사용합니다. 아주 간단하죠?
결론적으로 이것은 Linux 권한에 대한 매우 간단한 개요이며 이보다 훨씬 더 복잡해질 수 있지만 초보자에게는 시작하기에 좋은 곳입니다. 앞으로 더 고급 권한에 대한 기사를 더 많이 게시하겠습니다. 질문이 있으시면 언제든지 댓글을 남겨주세요. 즐기다!
Understanding Linux Permissions and chmod Usage
I’ve been taking a course on Linux for the last few months and оne аspect of Linux that always confuѕed me was how permissions worked. For example, when uploading a filе to my wеb server onсe and getting an error, I was told by my web host to change the file permissions to 755.
I had no clue what that meant, even though changing the permissions fixed the problem. I’ve now realized Linux permissions aren’t all that complicated, you just have to understand the system. In this article, I’ll talk about Linux permissions on a high-level and show you how to use the chmod command to change permissions for files and folders.
Linux Permissions & Levels
In Linux, there are basically three permissions that you will normally have to worry about: read, write and execute. All three of these are pretty self-explanatory. Now when these permissions are applied to a file, they are applied in levels.
There are three levels of permissions in Linux: owner, group and other. The owner is the user who owns the file/folder, the group includes other users in the file’s group and other just represents all other users who are not the owner or in the group.
Read, write and execute are represented as either symbolic characters or as octal numbers. For example, if you do a ls -l in a directory with some files, you’ll see the symbolic character representation of the permissions.
The permissions are written as follows: the first bit is either a dash or the letter d. Dash means it’s a file and d stands for directory. Note that the first bit can also be an l if the file name is a link. Next, there are three groups of three bits. The first bit in each group is for read, the second bit is for write and the third bit is for execute. The first three bits are for the owner, the second three bits are for the group and the third three bits are for other. Here’s a more visual explanation.
If you see a dash in place of a letter, it means that the owner, group or all other users do not have that permission. In the example above, the owner, group and everyone else has read write and execute permissions.
If you look at the output from the ls -l command, you’ll notice that my practice text file has the following permissions:
-rw-rw-rw-
This means that everyone only has read/write permissions for the file. Here’s another example:
drwxr--r--
Looking at the first bit, we can see that the permissions are for a directory. The owner has read/write/execute permissions, but the group and other users only have read permission.
Octal Number Representation
So that’s how permissions are displayed in Linux using symbols. The second way to represent the same permissions is by using octal numbers. When we use the chmod command later on, you’ll see that you can change the permissions using either symbols or octal numbers.
So how does Linux represent read, write and execute using octal numbers? Basically, it just assigns a number to each permission as shown below.
The read permission is represented by 4, write by 2 and execute by 1. All you have to do is add them up to get the octal permission. For example, let’s take the example above where everyone has all permissions:
-rwxrwxrwx
The owner has rwx, so we will add 4 + 2 + 1 to get a value of 7. We do the same thing for group and the same thing for other. The final octal value is 777. Let’s take a look at the example where we only gave read/write permissions:
-rw-rw-rw-
The first octal number will be 4 + 2 since we are adding read and write. The second one will be the same as will the third octal number. Here we have a final octal value of 666.
So now let’s try it the other way. Say we want to know what permissions 755 represents? Well, it’s pretty easy to figure out if you break it down by individual numbers. The first number is 7, which we can only get by adding 4 + 2 + 1, meaning the owner has read/write/execute permission. Five can only be gotten by adding 4 + 1, meaning the group and other users have read and execute permissions.
Hopefully, that’s a good explanation for how to represent permissions in Linux using octal numbers. It’s pretty straight-forward overall.
Using chmod to Modify Permissions
Now that we understand how to read permissions, let’s talk about how we can change them. The easiest utility to use for this purpose is the chmod command. Here’s how it works. The best way to explain the command is to go through an example.
Let’s start with the permissions we talked about above, namely:
-rw-rw-rw-
If we wanted to add the execute permission for owner, group and other, we could go about it in two ways. We could use the symbol method or the octal method. For the symbol method, we would do the following, as shown below:
The exact command is
chmod a+x filename
The syntax is as follows: the letter or letters representing the owner (u), group (g), other (o) or all (a) followed by a + for adding permissions or a – for taking away permissions and then the letter for the permission (r for read, w for write and x for execute).
In the above example, I added the execute permission for all users. The result as you can see in the screenshot above is an x for owner, group and other. Now let’s say I wanted to remove the write and execute permissions for only the group and other users.
As you can see here, I used to the following command to accomplish this:
chmod go-wx filename
Since I want to change the permissions for group and other, I use the letter g and the letter o. I want to remove permissions, so I use the – sign. Finally, I want to remove the write and execute permissions, so I use w and x. Here’s a handy little table for symbol usage:
So that’s all there is to using the symbol method. Now let’s talk about the octal method, which I find to be a bit easier. Octal is nice because you can add or remove permissions all in one go.
If we start with the following permissions on a file, let’s see how we can change them using the octal method:
-rw-rw-rw-
Above, you can see I used the following command:
chmod 744 filename
This basically says the owner gets read/write/execute permission and the group and other gets read permission only. As you can see, it’s easy to add or remove permissions in one simple command. Let’s keep going and say I want to change permissions again.
Now I used the following command, again a very simple one:
chmod 640 filename
Here we have given the owner read/write permissions, the group read permission only and the other group no permissions. You use a zero to denote no permissions. Pretty simple, eh?
In conclusion, this is a very simple overview of Linux permissions and it can get a lot more complicated than this, but for beginners, it’s a good place to start. I’ll be posting more articles on more advanced permissions in the future. If you have any questions, feel free to comment. Enjoy!