우수한 XKCD 웹 만화에서 위의 만화를 고려하십시오 . 의자에 앉은 게으른 사람은 친구가 샌드위치를 만들어 주기를 원하지만 만들어 줄 권한이 없습니다. 즉, 강력한 sudo 명령을 호출할 때까지입니다. 그 후 샌드위치는 어떤 식 으로든 만들어집니다.
실생활에서 사람에게 sudo를 시도하는 것은 그다지 효과적이지 않을 수 있지만 Linux 세계의 모든 장애물을 통과하는 마법의 명령입니다 . 스도가 뭔가요? 그것이 존재하는 이유는 무엇입니까? 대답은 Linux 가 권한을 처리하는 방법에 있습니다.
Linux 사용자 권한(Linux User Permissions) 이해
Linux 는 권한을 처리하는 방식으로 인해 안전한 운영 체제로 간주됩니다. macOS( Linux(Linux) 와 조상을 공유 ) 및 Windows 와 같은 운영 체제는 이 점에서 이제 Linux 와 비슷하지만 (Linux)오픈 소스(Open Source) 운영 체제는 여전히 다소 독특합니다.
Linux가 권한을 처리하는 방법을 이해하면 sudo 명령에 대해 훨씬 쉽게 이해할 수 있습니다. 모든 최신 운영 체제에는 "관리자" 또는 "루트" 사용자 권한 수준이 있습니다. 관리자 또는 루트 계정이 있는 경우 설정을 변경하고 데이터를 삭제하고 일반적으로 컴퓨터에서 원하는 모든 작업을 수행할 수 있습니다.
여기에는 데이터 손실이나 완전한 지우기 및 재설치가 필요할 수 있는 해서는 안 되는 일이 포함됩니다.
Linux 는 루트 사용자 수준 권한을 기본값으로 설정하지 않습니다. 대신, 귀하의 계정은 권한 수준을 높이지 않고 시스템의 정말 민감한 부분에 접근할 수 없습니다. 즉, 그래픽 인터페이스를 사용하여 평소와 다른 작업을 수행하려는 경우 시스템에서 관리자 암호를 입력하도록 요청합니다.
그러나 터미널(Terminal) 명령줄을 사용하여 작업을 수행하려는 경우 sudo가 가장 안전하고 효율적인 방법입니다.
수도와 터미널
Linux 에서 자신에게 높은 권한을 부여하는 방법에는 두 가지가 있습니다 . 하나는 루트 사용자로 영구적으로 로그인하는 것입니다. 이것의 문제는 컴퓨터에 액세스할 수 있는 다른 사람이 혼란을 일으킬 수 있고 심지어 실수로 할 수 있다는 것입니다. Sudo 는 뒤따르는 특정 명령을 실행하기 위해 짧은 시간 동안만 권한을 높입니다.
수도 구문
Sudo의 구문(명령 형식)은 간단합니다. 실행하려는 명령 다음에 "sudo"를 입력하기만 하면 됩니다 .(Simply)
예를 들어 "sudo apt-get update"는 관련 파일에 나열된 모든 앱 저장소를 업데이트합니다. sudo 없이 실행하려고 하면 권한이 없다는 오류 메시지가 표시됩니다. 덧붙여서, 이것은 일반적으로 즐겨 사용하는 Linux 배포판을 새로 설치한 후 실행하려는 첫 번째 sudo 명령입니다.
Sudo의 "수"
sudo의 "su"는 "superuser"의 줄임말이며 독립 실행형 명령입니다. "su" 명령을 사용하면 sudo로 승격되는 사용자의 권한을 변경할 수 있습니다.
sudo는 일시적으로 루트로 승격되지만 su는 적절한 권한을 가진 다른 사용자로 변경합니다. 중요하지 않은 구별처럼 보일 수 있지만 sudo가 사용자를 승격시키는 계정을 변경해야 할 충분한 이유가 있습니다.
우선(First) 계정을 변경한다는 것은 일반 사용자가 루트 비밀번호를 모른다는 것을 의미합니다. 둘째, 모든 sudo 명령에 대한 로그가 있습니다. 이는 시스템 관리자(루트)가 누가 su 명령을 실행했는지 조회할 수 있음을 의미합니다.
su의 구문은 본질적으로 sudo와 동일합니다.
Su 사용자 이름 -c 명령(Su USERNAME -c COMMAND)
USERNAME(Replace USERNAME) 을 명령을 실행하려는 사용자로 바꾸고 COMMAND(COMMAND) 를 실행하려는 Linux 명령으로 바꿉니다.
다른 사용자로 여러 명령을 실행하려면 다음을 사용하십시오.
수 사용자(Su USER)
(Replace USER)USER 를 원하는 사용자 계정 ID로 바꿉니다 .
su를 단독으로 사용하는 경우 Linux 는 "exit" 명령을 사용할 때까지 다른 사용자 계정으로 전환합니다. 이 사용자 또는 해당 세션의 터미널에 액세스하는 다음 사용자는 여전히 높은 권한을 갖게 된다는 점을 기억하는 것이 중요합니다. 이것이 일반적으로 su보다는 sudo를 사용하는 것이 더 나은 이유입니다.
Sudo 시간 제한
sudo 명령을 처음 사용하는 경우 암호를 입력해야 합니다. 그런 다음 해당 암호는 15분 동안 유효합니다. sudo visudo 명령을 실행하고 "timestamp_timeout="을 더 길거나 더 짧은 값으로 변경하여 이 기본값을 변경할 수 있습니다 . 그러나 sudo 암호가 유효한 기간을 연장하거나 단축해야 하는 합당한 이유가 없는 한 이 작업을 수행하지 않는 것이 좋습니다.
Sudo 옵션 스위치
sudo 구문은 간단하지만 몇 가지 스위치는 알아둘 가치가 있습니다. 다음 명령은 추가 정보를 열거나 sudo 세션을 제어하는 데 도움이 됩니다.
- -h 는 sudo에 대한 구문 및 명령 정보를 보여줍니다.
- -V 는 컴퓨터의 sudo에 대한 현재 버전을 표시합니다.
- -v sudo 시간 제한을 새로 고쳐 시계를 다시 시작합니다.
- -l 은 사용자 권한을 나열합니다.
- -k 는 현재 sudo 세션을 즉시 종료하여 상승된 권한을 제거합니다.
sudo에는 더 많은 옵션이 내장되어 있으며 위에 나열된 첫 번째 -h 스위치를 사용하여 모두 볼 수 있습니다.
위의 스크린샷은 도움말 옵션을 사용할 때의 결과입니다.
유용한 Sudo 명령
그렇다면 모든 Linux(Linux) 사용자가 알아야 할 sudo의 명령 은 무엇입니까? 우리는 이미 sudo apt-get update를 다루었지만 다음 사항에도 유의하십시오.
- Sudo apt-get upgrade 는 설치된 모든 패키지를 업그레이드합니다.
- Sudo apt-get install <package-name> 은 선택한 소프트웨어를 설치합니다. 패키지 이름을 설치하려는 이름으로 변경하기만 하면 됩니다.
- 패키지 이름을 모르는 경우 dpkg –list 를 사용하십시오 .
- 터미널에서 설치된 패키지를 제거하려면 sudo apt-get remove <package-name (다시 문제의 특정 패키지 이름으로 대체)을 사용하십시오.
이것들은 아마도 당신이 사용해야 할 첫 번째 sudo 명령일 것입니다. 그러나 위에서 배웠듯이 모든 명령이 sudo를 따를 수 있지만, 더 높은 권한이 필요한 명령만 사용해야 합니다.
What Is Sudo in Linux and How To Use It
Consider the аbove comic from the excellent XKCD webcоmic. The lazy fellow in the chair wants their friend to make them a sаndwich, but they lack the authority to make them do it. That is, until he іnvokeѕ the mіghty sudo command. After whіch, a sandwiсh will be made one way or another.
While trying sudo on a person in real life probably won’t be as effective, it’s the magic command that gets past every roadblock in the world of Linux. What is sudo? Why does it even exist? The answer lies in how Linux handles permissions.
Understanding Linux User Permissions
Linux is considered a secure operating system due to how it handles permissions. While operating systems such as macOS (which shared an ancestor with Linux) and Windows are now more like Linux in this regard, the Open Source operating system is still somewhat unique.
Understanding how Linux handles permissions makes it a lot easier to get your head around the sudo command. All modern operating systems have an “administrator” or “root” user permissions level. If you have an admin or root account, you can change any setting, delete any data and generally do whatever you like with the computer.
That includes things that you probably shouldn’t do that can lead to data loss or the need for a complete wipe and reinstallation.
Linux doesn’t make root user level permissions the default. Instead, your account can’t get at the really sensitive parts of the system without elevating your permission level. That means the system will ask you to enter the administrator password when you want to do something out of the ordinary using a graphical interface.
However, when you want to use the Terminal command line to get things done, sudo is the safest and most efficient way to go about it.
Sudo and the Terminal
There are two ways to give yourself elevated permissions in Linux. One is to log in as the root user permanently. The problem with this is that anyone else who may access the computer can wreak havoc, and even you can do it by accident. Sudo elevates your permissions only for a short time to execute the specific commands that follow it.
Sudo Syntax
Sudo’s syntax (the command’s format) is simple. Simply type “sudo” followed by the command you want to execute.
For example, “sudo apt-get update” will update all of the app repositories listed in the relevant file. If you tried to run it without sudo, you’d get an error message telling you that you don’t have permission. Incidentally, this is generally the first sudo command you’ll want to run after a fresh installation of your favorite Linux distro.
The “Su” in Sudo
The “su” in sudo is short for “superuser” and it is a standalone command. The “su” command lets you change which user’s privileges sudo elevates you to.
Although sudo elevates you to root temporarily, su changes you to another user with suitable privileges. That may seem like an unimportant distinction, but there are good reasons to change the account that sudo elevates a user to.
First of all, changing the account means that regular users don’t know the root password. Second, there’s a log of all sudo commands, which means that the system administrator (root) can look up who issued su commands.
The syntax for su is essentially the same as sudo:
Su USERNAME -c COMMAND
Replace USERNAME with the desired user to run the command and COMMAND with the Linux command you want to execute.
If you want to run multiple commands as another user, simply use:
Su USER
Replace USER with the desired user account identity.
If you use su by itself, Linux will switch to the other user account until you use the command “exit.” It’s important to remember this or the next user to access the terminal in that session will still have elevated permissions. This is why it’s generally better to use sudo rather than su.
The Sudo Time Limit
The first time that you use a sudo command, you’ll have to enter a password. Then, that password will remain valid for 15 minutes. You can change this default by running the command sudo visudo and changing “timestamp_timeout=” to a longer or shorter value. However, we don’t recommend you do this unless you have a good reason to extend or shorten how long a sudo password remains valid.
Sudo Option Switches
Although the sudo syntax is simple, several switches are worth knowing about. These commands open up additional information or help you control the sudo session:
- -h shows you syntax and command information for sudo.
- -V displays the current version for sudo on your machine.
- -v refreshes the sudo time limit, restarting the clock.
- -l lists user privileges.
- -k kills the current sudo session immediately, removing elevated privileges.
There are many more options built into sudo, and you can see them all using the first -h switch listed above.
The above screenshot is what results when you use the help option.
Useful Sudo Commands
So which commands empowered by sudo should every Linux user know? We’ve already covered sudo apt-get update, but take a note of these as well:
- Sudo apt-get upgrade will upgrade all installed packages.
- Sudo apt-get install <package-name> installs software of your choice; just change the package name to the one you want to install.
- If you don’t know the package name, use dpkg –list.
- If you want to remove an installed package from the terminal, use sudo apt-get remove <package-name (again substituting the specific package name in question).
These are likely the first sudo commands you’ll have to use, but as you’ve learned above any command can follow sudo, but you should only use ones that need higher privileges with it.