실제로 "sudo"가 필요하지 않은 명령이 주어졌을 때 sudo는 비밀번호를 묻는지 여부를 어떻게 결정합니까?

실제로 "sudo"가 필요하지 않은 명령이 주어졌을 때 sudo는 비밀번호를 묻는지 여부를 어떻게 결정합니까?

sudo실제로 필요하지 않은 명령 에 적용할 경우 sudo,

  • 때로는 비밀번호를 묻지 않을 때도 있습니다. 예를 들어 내 $HOME, sudo ls.

  • 그러나 어떤 명령인지는 기억나지 않지만 다른 명령과도 작동한다는 것을 기억합니다.

sudo그렇다면 실제로 필요하지 않은 명령이 주어졌을 때 비밀번호를 묻는지 여부를 어떻게 결정하는지 궁금합니다 sudo. /etc/sudoers지정할 수 있는 규칙이 있나요 ?

내 진짜 문제는 내가 그것을 사용할 때 du때때로 특정 디렉토리에 대해 "권한 거부됨"이라고 표시되고 때로는 그렇지 않다는 것입니다. 아마도 특정 디렉토리에 대한 권한이 없기 때문일 수 있습니까? sudo어쨌든 신청했고 du어쨌든 비밀번호를 묻는 메시지를 받을 것이라고 생각했지만 실제로는 내 디렉토리에 없습니다.

답변1

sudo실행을 요청하는 명령을 다른 사용자(보통 루트)로 실행해야 하는지 여부는 알 수 없으며, 알고 있는 것은 구성뿐입니다. 이는 어떤 사용자가 실행할 수 있는지 sudo, 어떤 사용자가 "대상"인지, 어떤 명령이 실행되는지 결정합니다. 또한 비밀번호가 필요한지, 어떤 비밀번호가 필요한지, 인증 토큰이 유지되는지 여부도 결정합니다.

기본 데비안 구성을 사용하고 있다면 후자가 여기에 포함될 가능성이 가장 높습니다. sudo특정 터미널에서 처음 사용할 때 비밀번호를 묻는 메시지가 표시되고 특정 기간 동안 인증 토큰이 유지됩니다. 시간의 양. 해당 시간 내에 동일한 터미널에서 재사용하면 sudo비밀번호를 묻는 메시지가 표시되지 않습니다.

답변2

일반적인 구성에서는 이 명령이 관련이 없습니다. sudo를 처음 사용할 때 비밀번호가 필요하며 해당 특정 쉘에서 다음 15분 동안은 필요하지 않습니다.

컴퓨터의 관점에서 보면 "sudo가 필요한 명령"이라는 것은 없습니다. 모든 사용자는 모든 명령을 실행하려고 시도할 수 있습니다. 결과는 "권한이 거부되었습니다" 또는 "해당 파일이나 디렉터리가 없습니다"와 같은 오류 메시지일 수도 있지만 명령은 항상 실행할 수 있습니다.

예를 들어, du액세스 권한이 없는 콘텐츠가 포함된 디렉터리 트리에서 실행 중인 경우 권한 오류가 발생합니다. 이것이 "허가 거부"를 의미합니다. sudo dusudo를 실행하면 du루트로 실행되므로 권한 오류가 발생하지 않습니다(루트 계정의 요점: 루트에는 항상 권한이 있습니다). 을 실행할 때는 sudo du루트 du로 실행하고 sudo시작 후에는 전혀 참여하지 마십시오. dudu에서 권한 오류가 발생하는지 여부는 sudo 작동 방식과 전혀 관련이 없습니다.

일부 명령에는 sudo가 필요합니다.뭔가 유용한 일을 해라. 유용성은 인간의 개념입니다. 루트로 실행할 때 명령이 작동하지 않지만 자신의 계정에서는 작동하지 않는 경우 sudo(또는 루트로 명령을 실행하는 다른 방법)를 사용해야 합니다.

sudo가 비밀번호를 묻는지 여부는 두 가지에 따라 달라집니다.

  1. sudo는 구성에 따라 인증이 필요한지 여부를 결정합니다. 기본적으로 sudo에는 비밀번호가 필요합니다. 이 기능은 authenticate옵션을 false로 설정하고 라벨에 적용 가능한 규칙을 설정하는 등 여러 가지 방법으로 끌 수 있습니다 NOPASSWD.
  2. sudo에서 비밀번호를 요구하는 경우 캐시된 값을 사용하면 만족할 수 있습니다. 괜찮습니다. sudo에 비밀번호가 필요한 이유는 누가 전화했는지 확인하기 위한 것이 아니라(sudo는 어떤 사용자가 전화했는지 알고 있기 때문입니다) 키보드를 제어하는 ​​사람이 아니라 명령을 실행하는 사람이 여전히 본인인지 확인하기 위한 것입니다. 기본적으로 15분 이내에 비밀번호를 입력하면( timeout이 옵션을 사용하여 변경할 수 있음) sudo는 사용자가 아직 명령을 실행하고 있다고 믿고 싶어합니다. 동일한 터미널에 비밀번호를 입력해야 합니다(따라서 한 터미널에 로그인 상태를 유지한 후 해당 터미널을 방치한 다음 다른 터미널을 사용하면 다른 사람이 이를 악용하여 다른 터미널에서 sudo를 사용할 수 없습니다. 하지만 이는 매우 약한 이점이며 이 옵션을 false 로 설정하여 끌 수 있습니다 tty_tickets.

거의 있지만 이는 이 스레드의 범위를 벗어납니다.

답변3

실제로 sudo가 필요하지 않은 명령에

이건 명령이 아니야필요또는불필요한스도. 당신이 달릴 때

sudo -u user command

시스템은 command다음과 같이 실행됩니다 user.

호출 성공 여부와 비밀번호 필요 여부는 보안 정책 sudoers(일반적으로 에서 구성 /etc/sudoers)에 따라 다릅니다.

관련 정보