태그 보관물: privileges

privileges

루트 액세스가 필요한 Linux 명령은 무엇입니까? 특권 apt-get을 요구

루트 액세스가 필요한 Linux 명령은 무엇입니까? 나는 특권 apt-get을 요구 하는 것이 바람직한 이유를 이해한다 root. 그러나 이러한 명령을 나머지 명령과 구별하는 것은 무엇입니까? 실행 파일의 소유권과 실행 권한의 문제입니까?



답변

리눅스에서 루트의 권한은 한 시점에서 “기능”으로 나뉘어져 있으므로 해당 문서를 살펴보면 루트의 특수 권한에 대한 전체 목록을 얻을 수 있습니다 man 7 capabilities.

귀하의 질문에 대답하기 위해 명령은 이러한 권한 중 하나가 필요할 때 루트로 실행해야하며 스크립트가 아닌 실행 파일은 파일 메타 데이터에 관련 기능이 설정되어 있지 않습니다 (예 : Python 스크립트에 기능이 필요한 경우 기능 shebang 행에 지정된 Python 인터프리터에 있어야합니다.

루트 액세스가 필요한 일부 명령에는 다음과 같은 것이 필요하지 않습니다. sudo 실행 파일에 SUID 비트가 설정되어 있기 때문에 . 이 비트는 실행 권한을 가진 사람이 실행할 때 실행 파일이 소유자 (일반적으로 루트)로 실행되도록합니다. 예를 들어 sudo사용자를 변경하는 것이 수행해야하는 권한있는 작업이므로 그 자체 가 그 예입니다 .

편집 : 귀하의 질문에서 명령을 실행하기 전에 루트 액세스가 필요한지 여부를 결정할 수 있다는 생각이 들었습니다. 그렇지 않습니다. 프로그램은 때때로 루트 권한을 요구할 수도 있고 그렇지 않을 수도 있습니다. 이것은 런타임 동안 제공되는 데이터로 인해 프로그램이 내린 결정일 수 있습니다. 예를 들어 전화vim 인수없이 한 다음 일련의 키 누르기 및 붙여 넣기를 통해 파일에 무언가를 쓰도록 권한을 부여하지 않거나 루트 권한이 필요한 다른 명령을 실행하도록 지시합니다. 실행 전에 명령에 대해 아무것도 루트 액세스가 필요하다는 것을 나타낼 수 없습니다. 그것은 그것을 필요로하는 무언가를 시도하는 시점에서만 결정될 수있는 것입니다.

어쨌든, 다음은 root 권한에 대한 참조 맨 페이지의 예입니다.

  • 프로세스 UID의 임의 조작 (setuid (2), setreuid (2), setresuid (2), setfsuid (2));
  • 파일 읽기, 쓰기 및 실행 권한 검사를 무시합니다. (DAC는 “임의 액세스 제어”의 약어입니다.)
  • 신호 전송에 대한 권한 검사를 무시합니다 (kill (2) 참조). 여기에는 ioctl (2) KDSIGACCEPT 조작 사용이 포함됩니다.
  • 다양한 네트워크 관련 작업을 수행하십시오.
    • 인터페이스 구성;
    • IP 방화벽 관리, 가장 무도회 및 회계;
    • 라우팅 테이블을 수정;
  • 인터넷 도메인 특권 포트 (1024보다 작은 포트 번호)에 소켓을 바인드하십시오.
  • 커널 모듈을로드 및 언로드합니다 (init_module (2) 및 delete_module (2) 참조).
  • 시스템 시계 설정 (settimeofday (2), stime (2), adjtimex (2)); 실시간 (하드웨어) 시계를 설정합니다.
  • quotactl (2), mount (2), umount (2), swapon (2), swapoff (2), sethostname (2) 및 setdomainname (2)을 포함하여 다양한 시스템 관리 작업을 수행합니다.
  • reboot (2) 및 kexec_load (2)를 사용하십시오.
  • chroot (2)를 사용하십시오.
  • 프로세스 nice 값 (nice (2), setpriority (2))을 높이고 임의 프로세스의 nice 값을 변경하십시오.

답변

그것은 주로 도구 나 프로그램이 무엇인지의 문제 않습니다 . 수퍼 유저가 아닌 사용자는 자신이 소유하거나 액세스 할 수있는 파일 만 만질 수 있다는 점을 명심하십시오. 손가락으로 모든 것을 처리 할 수있는 도구는 수행하는 작업을 수행하기 위해 수퍼 유저 액세스가 필요합니다. 수퍼 유저 액세스가 필요할 수있는 간단한 샘플은 다음과 같습니다.

  • 1024 미만의 포트에서 수신 TCP 소켓 열기
  • 시스템 구성 변경 (예 :의 모든 항목 /etc)
  • 새로운 전역 액세스 가능 라이브러리 ( /lib/usr/lib) 또는 이진 ( /bin, /usr/bin) 추가
  • 충분히 허용되는 모드가없는 애처를하고있는 사용자가 소유하지 않은 파일을 대
  • 다른 사용자의 파일 소유권 변경
  • Escelating 프로세스 우선 순위 (예 renice)
  • 대부분의 서비스 시작 또는 중지
  • 커널 구성 (예 : 교환 율 조정)
  • 파일 시스템 할당량 조정
  • “전체”디스크에 쓰기 (대부분의 파일 시스템은 루트 사용자를위한 공간을 예약합니다)
  • 다른 사용자로 작업 수행

답변

권한을 나누는 순서가 아니라 권한을 확인하는 것이 사용자의 신원에 따른 것이라고 생각합니다. 파일과 사용자는 특권을 가지며 명령을 나눌 수 없습니다.


답변