![Linux에서 특정 명령에 대한 루트 요구 사항을 제거하는 방법이 있습니까? 그렇다면 어떻게 그렇습니까?](https://rvso.com/image/1316781/Linux%EC%97%90%EC%84%9C%20%ED%8A%B9%EC%A0%95%20%EB%AA%85%EB%A0%B9%EC%97%90%20%EB%8C%80%ED%95%9C%20%EB%A3%A8%ED%8A%B8%20%EC%9A%94%EA%B5%AC%20%EC%82%AC%ED%95%AD%EC%9D%84%20%EC%A0%9C%EA%B1%B0%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95%EC%9D%B4%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%EA%B7%B8%EB%A0%87%EB%8B%A4%EB%A9%B4%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EA%B7%B8%EB%A0%87%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
Ubuntu 12.04 LTS를 사용하고 있는데, 특정 명령어가 실행되도록 하려고 합니다.
dhclient
루트 권한이 필요하지 않습니다. 나는 루트가 필요하지 않은 "su" 사용자의 잠금을 해제할 수 있다고 믿게 만드는 몇 가지 연구를 수행했지만 그런 식으로 문제가 생길까 두렵습니다.
아마도 나는 두 가지 별도의 질문을 하고 있는 것 같습니다.
루트 권한이 필요하지 않은 모든 명령은 내 OS의 어디에 있습니까?
이 명령을 그곳으로 옮길 수 있나요?
제 경우에는 어떤 방식이든 작동할 것입니다. 솔직히 말해서 이것이 일반 사용자의 명령이 나머지 명령과 구별되는 방식인지조차 확신할 수 없습니다.
답변1
이를 수행하는 가장 좋은 방법은 sudo를 사용하는 것입니다. 이는 어떤 사용자가 어떤 명령을 실행할 수 있는지에 관해 매우 구성 가능합니다. visudo
편집에 사용합니다 /etc/sudoers
(이 파일을 직접 편집하지 마십시오. 실수를 하면 완전히 잠기게 됩니다). 다음 항목을 사용하면 사용자가 암호를 요구하지 않고 bob
실행할 수 있습니다.dhclient
bob ALL = (root) NOPASSWD: /sbin/dhclient
sudo dhclient
Bob은 그것을 실행하기 위해 언제 실행될 것입니다 .
답변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. 이 명령을 그곳으로 옮길 수 있나요?
잠재적으로 무언가를 깨뜨리는 것 외에는 전혀 효과가 없습니다.