Linux에서 특정 명령에 대한 루트 요구 사항을 제거하는 방법이 있습니까? 그렇다면 어떻게 그렇습니까?

Linux에서 특정 명령에 대한 루트 요구 사항을 제거하는 방법이 있습니까? 그렇다면 어떻게 그렇습니까?

Ubuntu 12.04 LTS를 사용하고 있는데, 특정 명령어가 실행되도록 하려고 합니다.

dhclient

루트 권한이 필요하지 않습니다. 나는 루트가 필요하지 않은 "su" 사용자의 잠금을 해제할 수 있다고 믿게 만드는 몇 가지 연구를 수행했지만 그런 식으로 문제가 생길까 두렵습니다.

아마도 나는 두 가지 별도의 질문을 하고 있는 것 같습니다.

  1. 루트 권한이 필요하지 않은 모든 명령은 내 OS의 어디에 있습니까?

  2. 이 명령을 그곳으로 옮길 수 있나요?

제 경우에는 어떤 방식이든 작동할 것입니다. 솔직히 말해서 이것이 일반 사용자의 명령이 나머지 명령과 구별되는 방식인지조차 확신할 수 없습니다.

답변1

이를 수행하는 가장 좋은 방법은 sudo를 사용하는 것입니다. 이는 어떤 사용자가 어떤 명령을 실행할 수 있는지에 관해 매우 구성 가능합니다. visudo편집에 사용합니다 /etc/sudoers(이 파일을 직접 편집하지 마십시오. 실수를 하면 완전히 잠기게 됩니다). 다음 항목을 사용하면 사용자가 암호를 요구하지 않고 bob실행할 수 있습니다.dhclient

bob ALL = (root) NOPASSWD: /sbin/dhclient

sudo dhclientBob은 그것을 실행하기 위해 언제 실행될 것입니다 .

답변2

특정 사용자가 프로그램(바이너리 또는 스크립트)을 성공적으로 실행할 수 있는지 여부는 다음 두 가지 사항에 따라 달라집니다.

  • 사용자에게 파일에 대한 실행 권한이 필요합니다.

    이는 문제가 되지 않습니다. ls -l모든 사용자가 실행할 수 있음을 나타냅니다 /sbin/dhclient.

  • 사용자에게는 프로그램이 액세스하는 파일에 대한 읽기, 쓰기 및/또는 실행 권한이 필요합니다.

    이 부분은 많은 파일의 권한 변경을 포함할 수 있으므로 훨씬 더 까다롭고 위험합니다.

자세한 내용은 다음을 참조하세요.Chmod-위키피디아.

루트 권한으로 명령을 실행하는 일반적인 방법은 입니다 sudo. 로부터맨페이지:

sudo허용된 사용자가 다음을 실행할 수 있도록 허용합니다.명령슈퍼유저 또는 다른 사용자로sudoers파일. 실제 유효 uid 및 gid는 passwd 파일에 지정된 대로 대상 사용자의 것과 일치하도록 설정되고 그룹 벡터는 그룹 파일을 기반으로 초기화됩니다(-피옵션이 지정되었습니다). 호출하는 사용자가 루트이거나 대상 사용자가 호출하는 사용자와 동일한 경우 비밀번호가 필요하지 않습니다. 그렇지 않으면,sudo사용자는 기본적으로 비밀번호로 자신을 인증해야 합니다(참고: 기본 구성에서는 루트 비밀번호가 아닌 사용자 비밀번호입니다). 사용자가 인증되면 타임스탬프가 업데이트되고 사용자는 짧은 시간 동안(재정의되지 않는 한 5분) 동안 비밀번호 없이 sudo를 사용할 수 있습니다.sudoers).

특정 경우의 기본 구문은 다음과 같습니다.

sudo dhclient

다른 질문에 관해서:

1.​ 내 OS에서 루트 권한이 필요하지 않은 모든 명령은 어디에 있습니까?

모든 사용자를 위한 대부분의 바이너리는 및 내부 에 있습니다 /bin./usr/bin/usr/local/bin

대부분의 시스템 바이너리(루트 권한 필요)는 /sbin.

이것은 단지 경험의 법칙일 뿐입니다. 원하는 곳에 바이너리를 배치할 수 있습니다.

또한보십시오:파일 시스템 계층 표준

2.​ 이 명령을 그곳으로 옮길 수 있나요?

잠재적으로 무언가를 깨뜨리는 것 외에는 전혀 효과가 없습니다.

관련 정보