Sudo/ko

명령은 일반 사용자가 암호를 입력하지 않고도 가능하게 루트 권한으로 몇가지(또는 전부의)명령을 실행하는 등의 상황에서 권한 상승을 설정하는 간단하고 안전한 수단을 제공합니다.

일부 사용자에게 루트 권한을 전부 주지 않고도 시스템의 관리 과정을 수행하도록 하려면 sudo를 사용하는 것이 가장 탁월한 선택입니다. sudo를 통해서라면 누가 무엇을 할 수 있을지 통제할 수 있습니다. 이 안내서에서는 이 멋진 수단에 대한 간단한 소개를 드리고자 합니다.

이 글은 간단한 소개글을 의도합니다. 꾸러미는 여기서 언급한 내용보다 훨씬 더 강력한 기능을 보유하고 있습니다. 다른 사용자 처럼 파일을 편집하는 기능, 스크립트 내에서 실행하는(따라서 백그라운드에서 실행하거나 키보드 대신 표준 입력을 통해 암호 입력을 받을 수 있음), 등의 기능이 있습니다.

더 많은 내용은 sudo 와 sudoers 설명서 페이지를 읽어보십시오.

활동 기록
의 또 다른 장점은 프로그램을 실행하는 어떤 시도 과정(성공/실패)을 기록할 수 있다는 점입니다. 누가 10시간동안 삽질하도록 치명적인 실수를 했는지 추적할 때 유용합니다 :&#41;

권한 부여
시스템 관리자는 꾸러미로 사용자들이 보통 실행하지 말아야 할 하나 이상의 프로그램을 실행할 수 있도록 권한을 줄 수 있게 합니다. 사용할 때와는 달리 는 누가, 언제 각각의 명령을 실행할 수 있는지 세밀하게 관리할 수 있습니다.

로 누가 프로그램을 실행할 수 있는지 분명한 목록을 만들 수 있습니다. setuid 비트를 설정하면 어떤 사용자든(어떤 그룹의 사용자든, 권한 설정에 따라) 이 프로그램을 실행할 수 있습니다. 사용자가 프로그램을 실행하려 할 때 암호를 입력하라고 요구(할 수 있거나 해야)합니다.

설정은 파일에서 관리합니다. 이 파일은, 또는 사용하고자 하는 편집기로 편집해서는 안됩니다. 이 파일의 내용을 바꾸려면 를 사용하십시오.

이 도구는 설정 파일을 두 명의 시스템 관리자가 동시에 편집하고 있는지 확인하고 파일의 권한을 보존하며 파일에 치명적인 실수를 하지 않도록 문법을 확인하는 역할을 수행합니다.

기본 문법
를 다루는데 있어 상당히 어려운 부분은 문법입니다. 기본 문법은 다음과 같습니다:

이 문법은 에게 가 인증하였으며,   시스템에서 로그인한 사용자가 명시한  의 어떤 명령이든 루트 권한으로 실행할 수 있음을 말합니다. 좀더 실제적인 예제를 들면 확실히 이해할 수 있을지도 모르겠습니다. 다음 예제에서는 larry 사용자가 localhost에 로그인하면 를 실행할 수 있습니다:

사용자 이름은 그룹 이름으로 분류할 수 있습니다. 이 경우  기호로 시작하는 그룹 이름을 적어야합니다. 예를 들어 wheel 그룹의 임의의 사용자에게 실행을 허용하려면:

(각각의 명령에 대해 단일 항목을 넣는 대신)여러 명령을 한줄에 적어 실행을 허용하도록 할 수 있습니다. 예를 들면 동일한 사용자에게 뿐만 아니라 와  명령을 루트 권한으로 실행하도록 허용한다면:

도구 자체 뿐만 아니라 명령을 정확하게 지정할 수도 있습니다. 각 도구별로 명령 옵션 지정 셋을 제한할 때 유용합니다. 도구는 sudoers 파일에서 쉘 방식 와일드카드(메타 또는 글롭 문자)를 명령행 인자로 경로 이름에서와 같이 사용할 수 있게 합니다. 참고로 정규 표현식은 아닙니다.

시험을 위해 다음 명령을 입력해보겠습니다:

에서 요구하는 암호는 사용자 자신의 암호입니다. 여러분이 깜빡하고 열어둔 터미널로 인해 다른 사람이 악의 목적으로 오남용을 방지하도록 확인합니다.

는  변수값을 대체하지 않음을 알고 계셔야 합니다. 명령 다음에 적은 명령은 여러분의 환경을 기준으로 다룹니다. 에 있는 도구를 실행하려는 경우, 다음과 같이 전체 경로를 지정하여 에 알려야합니다:

LDAP 기본 문법
LDAP 기능을 지원하려면 및  USE 플래그가 필요합니다.

LDAP에 sudo를 사용하면 마찬가지로 LDAP 서버의 설정을 읽습니다. 따라서 다음 두개의 파일을 편집해야합니다.

또한 sudo 에 다음 LDAP 항목을 추가해야 합니다.

sudoer LDAP 설정은 다른 설정을 하는 파일과 비슷합니다. 아래 링크에 있는 sudo LDAP 글을 더 읽어보십시오.

alias (to make a good distinction between aliases and non-aliases it is recommended to use capital letters for aliases). As you might undoubtedly have guessed, the  alias is an alias to all possible settings.

A sample use of the  alias to allow any user to execute the shutdown command if he is logged on locally is:

Another example is to allow the user larry to execute the emerge command as root, regardless of where he is logged in from:

More interesting is to define a set of users who can run software administrative applications (such as emerge and ebuild) on the system and a group of administrators who can change the password of any user, except root!

비 루트 실행
It is also possible to have a user run an application as a different, non-root user. This can be very interesting if you run applications as a different user (for instance apache</tt> for the web server) and want to allow certain users to perform administrative steps as that user (like killing zombie processes).

에는 명령을 나열하기 전에  과   사이에 사용자를 나열하십시오:

larry</tt>가 apache</tt> 사용자 또는 gorg</tt> 사용자처럼 도구를 실행하도록 하려면:

이 설정으로 해당 사용자는 명령을 실행하여 프로그램을 실행하고자 하는 사용자를 선택할 수 있습니다:

You can set an alias for the user to run an application as using the  directive. Its use is identical to the other  directives we have seen before.

암호 및 기본 설정
By default, sudo</tt> asks the user to identify himself using his own password. Once a password is entered, sudo</tt> remembers it for 5 minutes, allowing the user to focus on his tasks and not repeatedly re-entering his password.

Of course, this behavior can be changed: you can set the  directive in  to change the default behavior for a user.

기본 5분값을 0(기억하지 않음)으로 바꾸려면:

A setting of  would remember the password indefinitely (until the system reboots).

A different setting would be to require the password of the user that the command should be run as and not the users' personal password. This is accomplished using. In the following example we also set the number of retries (how many times the user can re-enter a password before sudo</tt> fails) to  instead of the default 3:

Another interesting feature is to keep the  variable set so that you can execute graphical tools:

You can change dozens of default settings using the  directive. Fire up the sudoers</tt> manual page and search for.

If you however want to allow a user to run a certain set of commands without providing any password whatsoever, you need to start the commands with, like so:

배시 자동 완성
sudo에 bash 명령 완성 기능을 사용하려는 사용자는 다음 명령을 한번 실행하십시오.

Z쉘 명령 완성
sudo에 zsh 명령 완성 기능을 사용하려는 사용자는 와 에 각각 다음 내용을 설정할 수 있습니다

위 내용으로 바꾸면,, , 위치에 있는 값은 'sudo' 다음에 놓은 명령에 대한 명령 완성 기능을 쉘에서 사용할 수 있습니다.

권한 확인
자신의 권한을 알아보려면 를 실행하십시오:

에 암호를 입력할 필요가 없는 명령이 있다면, 항목에 있는 명령에 암호를 요구하지 않습니다. 그렇지 않아 항목에 없어 기억하지 않으면 암호를 물어봅니다.

암호 입력 제한 시간 미리 연장
기본적으로 사용자가 로 자신의 암호로 진입하면 5초간 기억합니다. 사용자가 이 기간보다 더 길게 세션을 유지하길 바란다면 에서 암호를 다시 묻기 전에 명령을 실행하여 타임 스탬프를 다시 설정하고, 5분을 다시 세도록 할 수 있습니다.

반대로, 명령으로 타임스탬프를 없앨 수 있습니다.