관리자 권한으로 명령을 실행해야 합니다. 누군가 루트로 명령을 실행해야 한다고 말했습니다. 어떻게 해야 하나요?
답변1
주요 두 가지 명령줄 가능성은 다음과 같습니다.
- 사용
su
그리고 메시지가 나타나면 루트 비밀번호를 입력하세요. - 놓다
sudo
명령 앞에 암호를 입력하라는 메시지가 나타나면 암호를 입력합니다.
루트로 쉘 명령 실행
sudo(그래픽 디스플레이를 실행하지 않을 때 선호됨)
이는 Ubuntu, Linux Mint, (아마도) Debian 등을 포함한 대부분의 시스템에서 선호되는 방법입니다. 개별 루트 비밀번호를 모르는 경우 이 방법을 사용하십시오.
Sudo에서는 비밀번호를 입력해야 합니다. (목적은 키보드를 방치하고 잠금을 해제할 때 발생하는 손상을 제한하고 사용자가진짜sudo
일반적으로 여러 명령을 연속해서 실행할 수 있도록 몇 분 동안 다시 묻지 않도록 구성됩니다 .
예:
sudo service apache restart
루트로 여러 명령을 실행해야 하는 경우 각 명령에 접두사를 추가하세요 sudo
. 때로는 루트로 대화형 셸을 실행하는 것이 더 편리합니다. 다음을 위해 사용할 수 있습니다 sudo -i
:
$ sudo -i
# command 1
# command 2
...
# exit
대신 을 sudo -i
사용할 수 있습니다 sudo -s
. 차이점은-i
나환경을 일반 기본값으로 초기화하고 -s
구성 파일을 더 좋게 또는 더 나쁘게 사용하십시오.
자세한 내용은 다음을 참조하세요.sudo 웹사이트또는 다음을 입력하세요.man sudo
귀하의 시스템에서. Sudo는 매우 구성 가능합니다. 예를 들어 사용자가 루트로 특정 명령만 실행할 수 있도록 구성할 수 있습니다. 읽다sudoers
매뉴얼 페이지sudo visudo
sudoers 파일 편집 에 대해 자세히 알아보세요 .
수
이 su
명령은 대부분의 UNIX 계열 시스템에 존재합니다. 해당 사용자의 비밀번호를 알고 있다면 다른 사용자로서 명령을 실행할 수 있습니다. 사용자를 지정하지 않고 실행하면 su
기본적으로 루트 계정이 사용됩니다.
예:
su -c 'service apache restart'
실행할 명령은 -c
옵션을 사용하여 전달되어야 합니다. 명령이 셸에서 구문 분석되지 않고 su
실행 중인 루트 셸에 그대로 전달되도록 하려면 따옴표가 필요합니다.
여러 명령을 루트로 실행하려면 대화형 셸을 시작하는 것이 더 편리합니다.
$ su
# command 1
# command 2
...
# exit
wheel
일부 시스템에서는 이를 사용하려면 그룹 번호 0( 라고 함)에 속해야 합니다 su
. (루트 비밀번호가 실수로 누군가에게 유출될 경우 피해를 제한하는 것이 포인트입니다.)
루트로 로그인
루트 비밀번호가 설정되어 있고 해당 비밀번호가 있는 경우 root
로그인 프롬프트에 루트 비밀번호를 입력하고 입력하기만 하면 됩니다. 의도하지 않은 작업을 수행할 수 있으므로 주의하고 복잡한 응용 프로그램을 루트로 실행하지 마십시오. 루트로 직접 로그인하는 것은 디스크 오류나 계정 잠금과 같은 긴급 상황에서 주로 유용합니다.
단일 사용자 모드
단일 사용자 모드 또는 런레벨 1은 루트 권한도 제공합니다. 이는 다중 사용자 실행 수준으로 부팅할 수 없는 긴급 유지 관리 상황에 주로 사용됩니다. 커널 명령줄에 또는 를 전달하여 single
단일 사용자 모드로 부팅 할 수 있습니다. emergency
단일 사용자 모드로 부팅하는 것은 시스템을 정상적으로 부팅하고 루트로 로그인하는 것과 다릅니다. 대신 시스템은 런레벨 1에 정의된 서비스만 시작합니다. 일반적으로 이는 사용 가능한 시스템을 갖추는 데 필요한 최소 서비스 수입니다.
telinit 명령을 사용하여 단일 사용자 모드로 들어갈 수도 있습니다 telinit 1
. 그러나 이 명령을 실행하려면 다른 방법을 통해 루트 권한을 얻어야 합니다.
많은 시스템에서 단일 사용자 모드로 부팅하면 사용자는 암호를 입력하지 않고도 루트 셸에 액세스할 수 있습니다. systemd
이런 방식으로 부팅하면 시스템에서 루트 비밀번호를 묻는 메시지가 표시된다는 점에 유의할 가치가 있습니다 .
기타 프로그램
캘리포니아 생활
캘리포니아 생활권한이 부여된 경우 자신의 비밀번호를 입력하여 다른 사용자로 명령을 실행할 수 있습니다. 이는 더 널리 사용되는 sudo와 유사합니다(위 참조). Calife는 sudo보다 가볍지만 구성 가능성도 적습니다.
OP
OP루트를 포함하여 다른 사용자로 명령을 실행할 수 있습니다. 이것은 임의의 명령을 실행 op
하기 위한 완전한 도구가 아닙니다.연상기호특정 명령을 실행하도록 시스템 관리자가 구성합니다.
훌륭한
Super를 사용하면 루트를 포함한 다른 사용자로 명령을 실행할 수 있습니다. 이 명령은 시스템 관리자의 승인을 받아야 합니다.
루트로 그래픽 명령 실행
당신은 또한 볼 수 있습니다위키피디아.
PolicyKit(GNOME 사용 시 권장)
원하는 명령 앞에 명령을 추가하면 됩니다 pkexec
. 이는 대부분의 경우 작동하지만 보편적으로 작동하지는 않습니다.
자세한 내용은 을 참조하세요 man pkexec
.
KdeSu, KdeSudo(KDE를 사용할 때 선호됨)
kdesu
그리고kdesudo
su
각각 및 의 그래픽 프런트엔드입니다 sudo
. X Window 프로그램을 루트로 쉽게 실행할 수 있습니다. 그들은케이드. 유형
kdesu -c 'command --option argument'
루트 비밀번호를 입력하거나 다음을 입력하세요.
kdesudo -c 'command --option argument'
비밀번호를 입력하세요(실행 권한이 있는 경우 sudo
). KdeSu에서 "비밀번호 유지" 옵션을 선택하면 로그인 세션당 한 번만 루트 비밀번호를 입력하면 됩니다.
기타 프로그램
XusXus("Make su easy, dumb")은 su의 그래픽 버전입니다.
비수비수Red Hat 기반 운영 체제에서 Gksu를 대체하는 su 명령의 그래픽 프런트 엔드입니다. 주로 RHEL 및 Fedora용으로 개발되었습니다.
오래된 방법
gksu
그리고gksudo
gksu
및 는 각각 및 에 대한 gksudo
그래픽 프런트엔드 입니다. X Window 프로그램을 루트로 쉽게 실행할 수 있습니다. 그들은su
sudo
난쟁이. 유형
gksu command --option argument
루트 비밀번호를 입력하거나 다음을 입력하세요.
gksudo command --option argument
비밀번호를 입력하세요(실행 권한이 있는 경우 sudo
).
gksu
그리고 gksudo
그것은 구식입니다. 이는 GNOME의 PolicyKit으로 대체되었으며 많은 배포판(예: Ubuntu)에서는 더 이상 기본적으로 이를 설치하지 않습니다. 이러한 기능이 사용 가능하거나 제대로 작동한다고 의존해서는 안 됩니다.
쉘 기반 방법을 통해 수동으로
"루트로 쉘 명령 실행" 섹션의 방법 중 하나를 사용하십시오. 루트로 전환하는 동안 DISPLAY
환경 변수나 환경이 재설정되지 않도록 해야 합니다. XAUTHORITY
이 질문의 범위를 벗어나는 이러한 방법의 추가 구성이 필요할 수 있습니다.
전반적으로 이것은 나쁜 생각입니다. 주로 그래픽 응용 프로그램이 루트로 구성 파일을 읽고 쓰기 때문에 일반 사용자로 다시 사용하려고 하면 이러한 응용 프로그램에 읽기 권한이 없기 때문입니다. 자신의 구성을 가져옵니다.
루트로 파일 편집
답변2
사용 su
:
$ su -c command
또는
$ su
# command
# exit
두 경우 모두 비밀번호를 묻는 메시지가 표시됩니다 root
. 자세한 내용은 다음을 참조하세요.매뉴얼 페이지.
답변3
질문은 Linux에만 국한되지 않으므로 Solaris 9+(또는 Trusted Solaris 8)에서 동일한 목표를 달성하는 방법은 다음과 같습니다.
버전 9부터 Solaris에는 RBAC(역할 기반 액세스 제어)라는 애칭으로 알려진 도구 세트가 포함되었습니다.
RBAC의 요점은 사용자 및/또는 역할에 권한 부여 및 권한을 부여하거나 사용자에게 역할을 부여함으로써 누가 어떤 권한으로 무엇을 실행할 수 있는지에 대한 매우 세분화된 모델을 만들 수 있다는 것입니다.
기본적으로 /etc/security/auth_attr에서 인증을 식별한 다음 /etc/user_attr에서 사용자나 역할에 부여합니다.
/etc/security/prof_attr에서 프로필을 정의합니다. 그런 다음 명령을 /etc/security/exec_attr의 이러한 프로필과 연결하고 /etc/user_attr 파일의 사용자에게 이러한 프로필을 할당합니다.
이러한 작업을 수행한 후에는 pfexec <command>
부여한 권한이나 권한을 사용하여 실제로 명령을 실행할 수 있습니다.저것사용자는저것주문하다.
RBAC의 이점은 명령 자체나 사용자에게 추가 권한이 부여되지 않고 사용자+명령 조합에만 부여된다는 것입니다. 따라서 사용자가 거의 모든 작업을 수행할 수 있도록 바이너리 +를 생성하거나 sudo를 사용하는 것보다 더 안전합니다. (나는 당신이 sudo를 잠글 수 있다는 것을 알고 있지만 내 경험상 대부분의 사람들은 그렇지 않습니다)
RBAC의 또 다른 장점은 루트를 역할 계정으로 설정하고 "su" 명령과 루트 비밀번호를 사용하여 루트가 될 수 있는 사용자에게 해당 역할을 할당할 수 있다는 것입니다. 루트 사용자는 단일 사용자 모드로 로그인할 수도 있는데, 이는 루트 암호를 비활성화하거나 passwd -d root
루트 계정을 잠글 수 있는 Linux 모드보다 (제 생각에는) 더 좋습니다 passwd -l root
. 두 가지 모두 루트로 로그인하기가 더 쉽습니다. 아주 간단합니다. 뭔가 잘못되면 어렵습니다.
Ben Rockwood는 다음에서 읽을 수 있는 RBAC에 대한 훌륭한 블로그 게시물을 보유하고 있습니다.(개방형) Solaris에서 RBAC 사용.
답변4
아니면 일부 명령에 초능력을 부여할 수도 있습니다. 나는 소유자의 허가를 받아 명령이 실행되는 특별한 허가에 대해 이야기하고 있습니다.
명령에 대한 경로를 가져오고 #which <command>
경로에 대한 SUID 또는 SGID를 설정합니다.
추신 - SUID 및 SGID 비트는 주의해서 제공해야 합니다. 시스템을 안전하지 않게 만들 수 있습니다.