적용 할 때 sudo
실제로 필요가없는 명령에 sudo
,
-
때로는 암호를 묻지 않습니다. 내에서 예를 들어
$HOME
,sudo ls
. -
그러나 나는 어떤 명령을 잊어 버렸지 만 다른 명령에 대해서는 기억합니다.
그래서 sudo
실제로 필요하지 않은 명령이 주어지면 암호를 요청할지 여부를 결정 하는 방법이 궁금합니다 sudo
. /etc/sudoers
그것을 지정하는 규칙 이 있습니까?
내 진짜 문제는 내가 사용할 때 du
일부 디렉토리에 대해 “권한 거부”를 표시하고 때로는 일부 디렉토리에 대한 권한이 없기 때문에 그렇지 않다는 것입니다. 나는 관계없이 신청 sudo
하고 du
, 나는 자신의 디렉토리에 관계없이 암호를 요구받을 것이라고 생각했다.
답변
일반적인 구성에서는 명령이 관련이 없습니다. sudo를 처음 사용할 때 비밀번호를 입력해야하며 다음 15 분 동안 특정 쉘에서 비밀번호가 필요하지 않습니다.
컴퓨터의 관점에서 볼 때“sudo가 필요한 명령”과 같은 것은 없습니다. 모든 사용자는 모든 명령을 실행할 수 있습니다. 결과는 “Permission denied”또는 “No such file or directory”와 같은 오류 메시지 일 뿐이지 만 항상 명령을 실행할 수 있습니다.
예를 들어, du
액세스 권한이없는 내용이있는 디렉토리 트리에서 실행 하면 권한 오류가 발생합니다. 그것이 “권한이 거부되었다”는 의미입니다. 를 실행 sudo du
하면 sudo가 du
루트로 실행 되므로 권한 오류가 발생하지 않습니다 (루트 계정의 핵심 : root¹에는 항상 권한이 있음). 당신이 실행하면 sudo du
, du
루트로 실행하고, sudo
결국이에 관여하지 않습니다 du
시작했다. du에서 권한 오류가 발생하는지 여부는 sudo 작동 방식과 완전히 관련이 없습니다.
유용한 작업을 수행 하려면 sudo가 필요한 명령이 있습니다 . 유용성은 인간의 개념입니다. root로 실행할 때 명령이 유용한 기능을 수행하지만 계정에서는 실행할 수없는 경우 sudo (또는 명령을 루트로 실행하는 다른 방법)를 사용해야합니다.
sudo가 암호를 요구하는지 여부는 두 가지입니다.
- 구성에 따라 sudo는 인증 여부를 결정합니다. 기본적으로 sudo에는 비밀번호가 필요합니다. 이
authenticate
옵션 은 옵션을 false로 설정 하고NOPASSWD
태그에 적용 가능한 규칙을 포함하여 여러 가지 방법으로 끌 수 있습니다 . - sudo에 암호가 필요한 경우 캐시 된 값을 사용하는 내용 일 수 있습니다. sudo가 암호를 요구하는 이유는 암호를 호출하는 사람을 인증하는 것이 아니라 (사용자가 암호를 호출 한 것을 알고있는 sudo는) 키보드를 제어하는 사람이 아니라 여전히 명령에 있는지 확인하기 때문입니다. 기본적으로 sudo는 15 분 전에 비밀번호를 입력 한 경우 여전히 명령을 사용하고 있다고 믿습니다 (이
timeout
옵션 은 옵션 으로 변경 가능 ). 동일한 터미널에 비밀번호를 입력해야합니다. 한 터미널에 로그인 한 상태로 해당 터미널을 그대로두고 다른 터미널을 사용하면 다른 사람이 사용할 수 있습니다.tty_tickets
¹ 거의이 스레드의 범위를 벗어납니다.
답변
sudo
명령을 실행하라는 명령이 다른 사용자 (일반적으로 루트)로 실행되어야하는지 여부는 알 수 없으며 구성 만 알고 있습니다. sudo
어떤 사용자를 “대상”으로, 어떤 명령 을 실행할 수 있는지를 결정 합니다. 또한 암호가 필요한지 여부와 암호를 유지할지 여부를 결정합니다.
기본 데비안 구성을 사용하는 경우, 후자가 여기에 관련된 것일 가능성이 높습니다. sudo
지정된 터미널에서 처음 사용할 때 암호를 묻게되면 일정 시간 동안 인증 토큰이 유지됩니다. sudo
해당 기간 내에 동일한 터미널에서 재사용 하면 비밀번호를 묻는 메시지가 표시되지 않습니다.
답변
실제로 sudo가 필요없는 명령에
명령 이 sudo를 필요로 하거나 필요로하는 것은 아닙니다 . 달릴 때
sudo -u user command
시스템은 command
로 실행 됩니다 user
.
호출의 성공 여부와 비밀번호 요청 여부는 보안 정책 sudoers
(일반적으로에서 구성됨)에 따라 다릅니다 /etc/sudoers
.