Centos7 root 패스워드 분실 변경시 궁금한점...

skydeux의 이미지

안녕하세요.

RHCSA 준비중인 학생입니다.

다름아니라 시험 리스트중에.. 싱글모드 접속하여, root 패스워드 변경하는 과정에서

궁금한 점 있어 도움받고자 글 올립니다.

구글링 통하여 따라하는건 일단 문제는 없습니다만...

의미를 모르겠습니다.

싱글모드 접속하여, rw, init=/bin/bash 수정하는 것 까지는 이해가 됩니다.

그 이후에 root 패스워드를 변경하고,

touch /.autorelabel
exec /sbin/init

이 두가지 명령어를 실행하라고 하는데,
이 두가지 명령어가 무엇을 의미하는지, 궁금합니다...

touch 명령어는 일반파일 만들때 쓰는 명령어로 알고있고,
exec 명령어는 찾아봐도 잘 모르겠네요,

도움 요청 드립니다~

김정균의 이미지

흠.. 패스워드 변경하고, 그냥 exit 해서 rebooting 하는게 더 깔끔 할텐데..
init 를 하라고 나오나 보네요.

일단.. 설명을 하자면

/.autolabel 은 SELinux 를 위한 file system labeling 입니다. 보통 booting 을 할 때 마다 새로 생성이 됩니다.

이 경우는 복구 모드로 부팅한 상태에서 reboot 이 아니라 바로 systemd 를 실행하는 상황이기 때문에 현재의 label 과 systemd 가 떠 있을 때의 label 이 달라져야 하기 때문에 삭제를 하라고 하는 것 일 겁니다. (저도 추측..)

exec 는 bash 의 interanl command 이고, /sbin/init 를 실행하라는 의미입니다.

exec [-cl] [-a name] [command [arguments]]
If command is specified, it replaces the shell. No new process is created. The arguments become the arguments to command. If the -l option is supplied, the shell places a dash at the beginning of the zeroth argument passed to com‐ mand. This is what login(1) does. The -c option causes com‐ mand to be executed with an empty environment. If -a is sup‐ plied, the shell passes name as the zeroth argument to the executed command. If command cannot be executed for some reason, a non-interactive shell exits, unless the shell option execfail is enabled, in which case it returns failure. An interactive shell returns failure if the file cannot be executed. If command is not specified, any redirections take effect in the current shell, and the return status is 0. If there is a redirection error, the return status is 1.