답변:
예. 부팅하는 동안 시스템이 실패하면 루트 셸에 로그인 할 수 있습니다. 별도의 / usr이 있으면 일부 쉘이 성공적으로 시작되지 않을 수 있습니다.
toor
비표준 쉘로 계정 (uid 0, gid 0)을 만드는 동안 기본 쉘로 루트를 유지하는 것이 좋습니다.
zsh
어떻게 든 /usr
손상되면 문제가 있습니까? 하지만 내 시스템이 /bin/sh
가리키는 /bin/bash
하고 bash
, 왜 안 것 자체가 sh
영향을받을 수?
zsh
/usr/bin/
잘못 설치되어 있으면 안됩니다 . 모든 포탄은 안에 있어야합니다/bin
/bin
있지만 일부 파일 은에 보관합니다 /usr/share
. 또한 부팅 중에 로그인 하는 동안 문제가 발생했다고 분명히 말했습니다 (일부 서비스가 실패한 경우).
문제가되지 않아야합니다.
쉘 스크립트 파일은 실행되는 쉘을 명시 적으로 인코딩합니다. 첫 번째 줄로 인코딩되거나 다른 프로그램이나 스크립트가 특정 쉘을 실행하고 쉘 스크립트를 인수로 제공합니다.
내가 생각할 수있는 유일한 프로그램은 로그인 프로세스 외에도 사용자 계정 셸 정보를 사용하는 procmail입니다. 사용자가 메일 서버에서 shell / bin / false로 설정하면 정말 재미 있습니다 ... 그러나 일반적으로 procmail을 루트로 실행하지 않습니다.
다른 후보는 루트의 crontab에있는 줄입니다. 나는 crond의 정책이 어떤 쉘을 사용 해야하는지 모르겠다.
루트 쉘을 변경해도 문제가 발생하지 않는다고 생각합니다. 루트의 기본 쉘로 tcsh를 사용하는 일부 유니스 (일부 BSD 변형입니까?)를 기억하는 것 같습니다.
어쨌든 루트 로그인은 거의 없습니다. 일반적으로 자신의 계정에 로그인 한 다음 su 또는 sudo를 root로 로그인합니다.
중요한 것은 루트의 쉘이 가능한 한 적은 수의 종속성을 가져야 시스템 배상 컨텍스트에서 사용할 수 있다는 것입니다. 예를 들어, 정적으로 연결된 루트 쉘을 갖는 것이 좋습니다. 일부 배포판에는 정적으로 링크 된 bash 또는 zsh 또는 sash (많은 표준 유틸리티가 내장 된 쉘)가 제공됩니다. 그러나 복구 CD 또는 USB 드라이브에서 시스템을 쉽게 부팅 할 수있는 경우에는 그렇게 중요하지 않습니다.
사용자의 로그인 쉘은 부팅 프로세스에 영향을 미치지 않습니다. 이 쉘을 원하는대로 설정할 수 있습니다. 모든 시스템에 배쉬가있는 것은 아니며 제대로 작동합니다. 또한 /usr/bin/zsh
잘못 설치된 경우 모든 시스템 셸이에 있어야합니다 /bin
. 그러나 /bin/sh
많은 스크립트가 #!/bin/sh
일반적으로 bash를 가리키는 것처럼 많은 스크립트가 #!/bin/bash
bashism과 그렇지 않은 다른 행동을 사용하기 때문에 bash를 가리키는 것처럼 기본값 이외의 것을 가리 키도록 변경 해서는 안됩니다. zsh
또는에서 작업하십시오 dash
.
bash
와 zsh
에/bin
Solaris / illumos와 관련하여 Solaris Root Shell Mini-FAQ 언급
일부 시스템 관리자는 여전히
Solaris 시스템 에서 루트 쉘을 변경하지 않는 것이 좋습니다 . / usr / lib
에있는 동적
라이브러리에 의존하지 않는 루트에 정적으로 링크 된 쉘이 루트에 필요하다는 이유를 물어보십시오 . 이것은 과거에는 사실 이었지만
오늘날 반드시 그런 것은 아닙니다 . Solaris는 올바르게 구성된 경우 다른 버전의 Unix와 유사하며 루트 또는 다른 계정에 대해 정의한 모든 쉘을 지원할 수 있습니다.
따라서 Solaris 또는 illumos를 사용하는 경우 이외의 쉘을 사용하는 것이 좋습니다 sh
.
bash
. 나는 수정을 단일 사용자 모드로 부팅하지만 때문에 그것은 단지 일을/bin/sh
아직 연결되었다FBSD
의의 포크bourne
하지bash
.