새로운 Linux 사용자(new Linux user) 라면 초기에 Chmod 명령을 접했을 것 입니다. 누군가가 파일을 특정 폴더로 이동하기 위해 "chmod 777"을 지시했고 작동했습니다! 그렇다면 chmod 명령은 무엇을 하고 숫자는 무엇을 의미합니까?
이 기사에서는 Linux(Linux) 파일 권한 에 대해 알아야 할 모든 것을 설명합니다 . chmod 명령과 특정 액세스 수준에 해당하는 숫자를 이해하려면 이것을 아는 것이 중요합니다. Ubuntu , Fedora 또는 좀 더 이국적인 Linux 배포판(Linux distro) 을 사용하는지 여부 에 관계없이 CHMOD 명령 을 사용하여 권한을 777로 설정해도 되는 경우와 다른 설정을 사용해야 하는 경우를 이해해야 합니다.
Linux 파일 권한 작동 방식
Linux 에서 운영 체제는 파일 권한, 소유권 및 속성을 기반으로 특정 파일에 액세스할 수 있는 사람을 결정합니다. 시스템을 통해 소유자 또는 관리자는 다양한 파일 및 디렉토리에 대한 액세스 제한을 활성화할 수 있습니다. 신뢰하는 사용자와 프로그램에만 액세스 권한을 부여하여 시스템 보안을 향상시킬 수 있습니다.
사용자 클래스 이해(Understanding User Classes)
특정 사용자와 그룹은 모든 단일 파일과 디렉토리를 소유합니다. 즉 , 특정 수준의 액세스를 할당할 수 있는 세 가지 범주의 사용자 가 있습니다. (three categories of users)이러한 사용자는 다음과 같이 분류됩니다.
디렉토리를 마우스 오른쪽 버튼으로 클릭하고 속성 을 선택한 다음 (Properties)권한(Permissions) 탭 으로 이동 하여 Ubuntu 에서 이러한 그룹을 시각적으로 볼 수 있습니다 .
소유자(Owner) 는 모든 권한을 가진 사람입니다. 일반적으로 모든 파일과 디렉토리에 대한 전체 액세스 권한이 있으며 다른 사용자의 파일 권한도 변경할 수 있습니다.
그룹(Group) 은 소유자(Owner) 가 제공한 파일 또는 디렉토리에 대해 특정 수준의 액세스 권한을 가진 다수의 사용자로 구성됩니다 . 예를 들어, 사용자 그룹은 해당 파일을 볼 수 있는 액세스 권한이 부여되는 동안 파일 수정에서 제외될 수 있습니다.
Others 클래스 는 단순히 다른 두 범주에 속하지 않는 게스트 사용자를 나타냅니다. 기본적으로 액세스 수준은 일반적으로 제한됩니다. 게스트 사용자가 할 수 있는 것과 할 수 없는 것을 결정하는 것은 소유자 에게 달려 있습니다.(Owner)
파일 권한 수준 이해(Understanding File Permission Levels)
소유자(Owner) 는 파일 및 디렉토리에 대한 세 가지 액세스 수준을 지정할 수 있습니다.
- 읽기(Read) : 파일 또는 디렉토리에 대한 제한된 액세스를 제공합니다. 할 수 있는 일은 파일을 읽거나 디렉토리의 내용을 보는 것뿐입니다. 파일을 편집할 수 없으며 디렉터리에 새 파일을 제거하거나 추가할 수 없습니다.
- 쓰기(Write) : 파일을 읽고 편집할 수 있습니다. 디렉터리에 이 수준의 액세스를 할당하면 파일을 제거하거나 추가할 수도 있습니다.
- Execute : 파일을 실행하거나 실행할 때만 중요합니다. 예를 들어 Execute(Execute) 권한 없이 스크립트나 프로그램을 실행할 수 없습니다 .
클래스와 권한을 결합하여 특정 사용자가 파일이나 디렉토리에 얼마나 접근할 수 있는지 제어할 수 있습니다.
권한 기호(Symbols) 및 숫자(Numbers) 설명
파일 권한은 숫자 또는 기호로 표시됩니다. 기호와 숫자를 모두 사용하여 파일 및 디렉토리 권한을 변경할 수 있습니다. 가장 쉬운 방법은 숫자를 사용하는 것이지만 기호도 이해해야 합니다. 따라서 먼저 파일 권한 뒤에 있는 기호를 살펴보겠습니다.
파일 권한 기호(File Permission Symbols)
터미널에 다음 명령을 입력하면 특정 디렉터리의 모든 콘텐츠에 대한 권한을 볼 수 있습니다.
ls -l
cd 명령 을 사용하여 모든 디렉토리로 이동할 수 있습니다 . 완전한 초보자라면 기본 Linux 명령(basic Linux commands) 에 대한 기사를 확인하십시오 .
이 예에서 디렉토리에는 두 개의 다른 디렉토리와 하나의 파일이 있습니다. 사용 권한은 (1+) 9개의 기호를 사용하여 작성되었으며 이해를 돕기 위해 3개로 나눌 수 있습니다. Books 디렉터리 에 대한 첫 번째 권한 집합을 살펴보겠습니다 .
drwxrwxr-x
가독성을 위해 분할해 보겠습니다.
d rwx rwx rx
첫 번째 기호는 d이며(d,) 디렉토리를 나타냅니다. Outline.docx 파일 에 대한 세 번째 권한 집합에서 볼 수 있듯이 파일인 경우 대시 기호가 될 수도 있습니다 .
다음으로 세 가지 기호 그룹이 있습니다. 첫 번째 그룹은 소유자의 권한 수준, 두 번째 그룹은 그룹(Group) 클래스, 세 번째 그룹은 기타를 나타냅니다.
각 3개의 기호 집합은 읽기, 쓰기, 실행을 의미합니다. 따라서 소유자 는 (Owner)Test 디렉터리 에 있는 모든 파일과 디렉터리를 읽고, 쓰고, 실행할 수 있는 권한이 있습니다 . 다음은 시각적 표현입니다.
r, w 또는 x 대신 대시 기호가 표시되면 권한이 존재하지 않는다는 의미입니다.
파일 권한 번호(File Permission Numbers)
파일 권한의 숫자 형식은 간단합니다. 본질적으로 파일 권한 코드는 세 자리 숫자로 되어 있습니다.
- 첫 번째는 파일 소유자를 위한 것입니다.
- 두 번째 것은 파일의 그룹을 나타냅니다.
- 마지막 숫자는 다른 모든 사람을 위한 것입니다.
숫자 범위는 0에서 7 사이입니다.
- 4 = 읽기.
- 2 = 쓰기.
- 1 = 실행합니다.
- 0 = 권한이 없습니다.
각 클래스의 권한 숫자는 권한 값을 합산하여 결정됩니다. 즉, 각 클래스의 각 숫자는 4, 2, 1, 0의 합이 될 수 있습니다. 다음은 전체 권한 목록입니다.
- 0 (0 + 0 + 0) = 사용자 클래스에 권한이 없습니다.
- 1(0 + 0 + 1) = 실행(Execute) 권한만.
- 2(0 + 2 + 0) = 쓰기(Write) 권한만.
- 3 (0 + 2 + 1) = 쓰기(Write) 및 실행 권한.
- 4 (4 + 0 + 0) = 읽기(Read) 권한만.
- 5 (4 + 0 + 1) = 읽기(Read) 및 실행 권한.
- 6(4 + 2 + 0) = 읽기(Read) 및 쓰기 권한.
- 7(4 + 2 + 1) = 모든 권한.
예를 들어, 644 권한은 파일 소유자에게 읽기 및 쓰기 권한이 있는 반면 다른 두 클래스는 읽기 권한만 있음을 의미합니다. 숫자 형식을 사용하여 권한을 설정하려면 기본 수학만 필요합니다.
허가 777
이미 짐작하셨겠지만 777 권한은 세 가지 사용자 클래스 모두에 읽기, 쓰기 및 실행 권한을 부여합니다. 즉, 시스템에 액세스할 수 있는 모든 사람이 파일을 읽고, 수정하고, 실행할 수 있습니다. 모든 사용자를 신뢰하고 보안 침해에 대해 걱정할 필요가 없는 경우에만 사용하십시오.
권한 777은 편리하기 때문에 자주 사용되지만 아껴서 사용해야 합니다. 실제로 보안 위험이 너무 크기 때문에 사용하지 않는 것이 좋습니다. 승인되지 않은 사용자가 시스템을 손상시키거나 예를 들어 웹사이트를 변경하여 맬웨어를 배포할 수 있습니다.
대신 권한 755를 부여해야 합니다. 그렇게 하면 파일 소유자인 귀하는 특정 파일 또는 디렉토리에 대한 전체 액세스 권한을 가지며 다른 모든 사람은 읽고 실행할 수 있지만 귀하의 승인 없이는 수정할 수 없습니다.
Chmod 로 (Chmod)파일(File) 권한 수정 하기
chmod 명령을 사용하여 파일 권한을 변경할 수 있습니다. 다른 변수 없이 이 명령을 사용하는 가장 기본적인 방법은 다음과 같습니다.
chmod 777 파일 이름(chmod 777 filename)
(Replace “)" filename"을 파일 이름과 경로로 바꿉니다 .
파일 권한을 변경할 수 있는 권한이 있는 사용자는 루트 액세스 권한이 있는 사용자, 파일 소유자 및 sudo 권한이 있는 모든 사용자뿐입니다.
Linux File Permissions – What Is Chmod 777 and How to Use It
If you’re a new Linux user, you probably encountered the Chmod command at some point early on. Perhaps someone told you to “chmod 777” to move a file to a certain folder, and it worked! So what does the chmod command do and what do the numbers mean?
This article will discuss everything you need to know about Linux file permissions. It’s important to know this to understand the chmod command and the numbers that correspond to certain access levels. Whether you use Ubuntu, Fedora, or a more exotic Linux distro you should understand when it’s okay to set permissions to 777 using the CHMOD command and when you should use a different setting.
How Linux File Permissions Work
In Linux, the operating system determines who can access a certain file based on file permission, ownership, and attributes. The system allows you, the owner or admin, to enable access restrictions to various files and directories. You can improve the security of your system by giving access only to users and programs you trust.
Understanding User Classes
A specific user and a group own every single file and directory. This means there are three categories of users to which you can assign a certain level of access. These users are classified as follows:
You can see these groups visually in Ubuntu by right-clicking on any directory, selecting Properties, and going to the Permissions tab.
The Owner is the person with all the power. Usually, they have full access to every file and directory and can change the file permissions of other users as well.
The Group consists of a number of users that have a certain level of access to a file or directory given by the Owner. For example, a group of users can be excluded from modifying a file while being granted access to view that file.
The Others class simply represents guest users that don’t fall into the other two categories. By default, their level of access is usually restricted. It’s up to the Owner to determine what guests users can or can’t do.
Understanding File Permission Levels
As the Owner you can assign three levels of access to your files and directories:
- Read: It gives you limited access to a file or directory. All you can do is read the file or view the directory’s contents. You can’t edit files, and you can’t remove or add any new files to the directory.
- Write: It lets you read and edit files. If you assign this level of access to a directory, you can also remove or add files.
- Execute: It’s only important when running or executing files. For example, you can’t run a script or a program without permission to Execute.
By combining Classes and Permissions, you can control how much access a specific user has to a file or directory.
Permission Symbols and Numbers Explained
File permissions are represented numerically or symbolically. You can use both symbols and numbers to change file and directory permissions. The easiest method is with numbers, but you should also understand the symbols. So let’s take a look at the symbols behind file permissions first.
File Permission Symbols
You can view your permissions for all content in a certain directory if you type the following command in the terminal:
ls -l
You can navigate to any directory by using the cd command. If you’re a complete beginner, check out our article on basic Linux commands.
In our example, the directory contains two other directories and one file. The permissions are written using (1+) 9 symbols that can be split into triplets for an easier understanding. Let’s examine the first set of permissions for the Books directory:
drwxrwxr-x
Let’s split it for readability:
d rwx rwx r-x
The first symbol is d, and it stands for directory. It can also be a dash symbol if it’s a file, as you can see in the third set of permissions for the Outline.docx file.
Next, we have three groups of symbols. The first group represents the Owner’s permission levels, the second group is for the Group class, and the third represents Others.
Each set of 3 symbols means read, write, execute – in that order. So the Owner has permission to read, write, and execute all files and directories found inside the Test directory. Here’s a visual representation:
When you see a dash symbol instead of r, w, or x, it means that permission doesn’t exist.
File Permission Numbers
The numeric format for file permissions is simple. In essence, the file permission codes have three digits:
- The first one is for the file owner.
- The second one represents the file’s group.
- The last digit is for everyone else.
The digits range from 0 to 7 where:
- 4 = read.
- 2 = write.
- 1 = execute.
- 0 = no permission.
The permission digit of each class is determined by summing up the values of the permissions. In other words, each digit for each class can be the sum of 4, 2, 1, and 0. Here’s a full list of permissions:
- 0 (0 + 0 + 0) = The user class doesn’t have any permissions.
- 1 (0 + 0 + 1) = Execute permission only.
- 2 (0 + 2 + 0) = Write permission only.
- 3 (0 + 2 + 1) = Write and execute permissions.
- 4 (4 + 0 + 0) = Read permission only.
- 5 (4 + 0 + 1) = Read and execute permissions.
- 6 (4 + 2 + 0) = Read and write permissions.
- 7 (4 + 2 + 1) = All permissions.
For example, a 644 permission means that the file owner has read and write permissions, while the other two classes have only read permission. Setting permissions by using the number format requires only basic math.
Permission 777
As you’ve probably already guessed, a 777 permission gives read, write, and execute permissions to all three user classes. In other words, anyone who has access to your system can read, modify, and execute files. Use it only when you trust all your users and don’t need to worry about security breaches.
Permission 777 is used often because it’s convenient, but you should use it sparingly. In fact, we recommend never using it because the security risks are too great. An unauthorized user could compromise your system or, for example, change your website to distribute malware.
You should give permission 755 instead. That way, you as the file owner have full access to a certain file or directory, while everyone else can read and execute, but not make any modifications without your approval.
Modifying File Permissions with Chmod
You can change file permission with the help of the chmod command. The most basic way of using this command without any other variables is as follows:
chmod 777 filename
Replace “filename” with the name of the file and its path.
Keep in mind that the only users with the power to change file permissions are those with root access, the file owners, and anyone else with sudo powers.