일반적인 구성에서는 명령이 관련이 없습니다. 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
¹ 거의이 스레드의 범위를 벗어납니다.