실수로 "/etc/inittab"을 셸에 붙여넣어 뭔가를 엉망으로 만들었나요?

실수로 "/etc/inittab"을 셸에 붙여넣어 뭔가를 엉망으로 만들었나요?

도와주세요 유닉스 전문가님,

우리는 몇 가지 시스템 검사를 수행하고 있었고 (PuTTY를 사용하여) 셸에 들어갔습니다
# more /etc/inittab.
모든 것을 문서에 붙여 넣으려는 의도로 출력을 복사했습니다. 그런데 실수로 마우스 오른쪽 버튼을 클릭했습니다. 이는 퍼티에서 붙여넣기를 의미하므로 모든 것을 다시 셸에 붙여넣었습니다.

내가 정말 나쁜 일을 망쳤나요? 다음번에는 시스템이 시작되지 않을까 걱정되나요? 정말 미칠 것 같아요. 이게 생산 시스템이에요. 지금까지는 모든 것이 정상인 것 같습니다. 여전히 /etc/inittab똑같지만, 나중에 공개될 다른 내용을 제가 엉망으로 만든 것은 아닌지 걱정됩니다.

# more /etc/inittab
init:3:initdefault:
ioin::sysinit:/sbin/ioinitrc >/dev/console 2>&1
tape::sysinit:/sbin/mtinit > /dev/console 2>&1
muxi::sysinit:/sbin/dasetup   </dev/console >/dev/console 2>&1 # mux init
stty::sysinit:/sbin/stty 9600 clocal icanon echo opost onlcr ixon icrnl ignpar </dev/systty
brc1::bootwait:/sbin/bcheckrc </dev/console >/dev/console 2>&1 # fsck, etc.
link::wait:/sbin/sh -c "/sbin/rm -f /dev/syscon;                        /sbin/ln /dev/systty /dev/syscon" >/dev/console
2>&1
cprt::bootwait:/sbin/cat /etc/copyright >/dev/syscon           # legal req
sqnc::wait:/sbin/rc </dev/console >/dev/console 2>&1           # system init
#powf::powerwait:/sbin/powerfail >/dev/console 2>&1            # powerfail
cons:123456:respawn:/usr/sbin/getty console console            # system console
#ttp1:234:respawn:/usr/sbin/getty -h tty0p1 9600
#ttp2:234:respawn:/usr/sbin/getty -h tty0p2 9600
#ttp3:234:respawn:/usr/sbin/getty -h tty0p3 9600
#ttp4:234:respawn:/usr/sbin/getty -h tty0p4 9600
#ttp5:234:respawn:/usr/sbin/getty -h tty0p5 9600
ems1::bootwait:/sbin/rm -f /etc/opt/resmon/persistence/runlevel4_flag
ems2::bootwait:/sbin/cat </dev/null >/etc/opt/resmon/persistence/reboot_flag
ems3:3456:wait:/sbin/sh -c "/usr/bin/touch /etc/opt/resmon/persistence/runlevel4_flag; /usr/bin/chmod 644 /etc/opt/resmo
n/persistence/runlevel4_flag"
ems4:3456:respawn:/etc/opt/resmon/lbin/p_client
#ups::respawn:rtprio 0 /usr/lbin/ups_mond -f /etc/ups_conf
a0:3:off:/usr/sbin/getty -h ttyd2a1 1200
a1:3:off:/usr/sbin/getty -h ttyd2a2 1200
#



페이스트는 다음과 같습니다.

# # more /etc/inittab
init:3:initdefault:
# init:3:initdefault:
stty::sysinit:/sbin/stty 9600 clocal icanon echo opost onlcr ixon icrnl ignpar </dev/systty
brc1::bootwait:/sbin/bcheckrc </dev/console >/dev/console 2>&1 # fsck, etc.
link::wait:/sbin/sh -c "/sbin/rm -f /dev/syscon;                        /sbin/ln /dev/systty /dev/syscon" >/dev/console
2>&1
cprt::bootwait:/sbin/cat /etc/copyright >/dev/syscon           # legal req
sqnc::wait:/sbin/rc </dev/console >/dev/console 2>&1           # system init
#powf::powerwait:/sbin/powerfail >/dev/console 2>&1            # powerfail
cons:123456:respawn:/usr/sbin/getty console console            # system console
#ttp1:234:respawn:/usr/sbin/getty -h tty0p1 9600
#ttp2:234:respawn:/usr/sbin/getty -h tty0p2 9600
#ttp3:234:respawn:/usr/sbin/getty -h tty0p3 9600
#ttp4:234:respawn:/usr/sbin/getty -h tty0p4 9600
#ttp5:234:respawn:/usr/sbin/getty -h tty0p5 9600
ems1::bootwait:/sbin/rm -f /etc/opt/resmon/persistence/runlevel4_flag
ems2::bootwait:/sbin/cat </dev/null >/etc/opt/resmon/persistence/reboot_flag
ems3:3456:wait:/sbin/sh -c "/usr/bin/touch /etc/opt/resmon/persistence/runlevel4_flag; /usr/bin/chmod 644 /etc/opt/resmo
n/persistence/runlevel4_flag"
ems4:3456:respawn:/etc/opt/resmon/lbin/p_client
#ups::respawn:rtprio 0 /usr/lbin/ups_mond -f /etc/ups_conf
a0:3:off:/usr/sbin/getty -h ttyd2a1 1200
a1:3:off:/usr/sbin/getty -h ttyd2a2 1200
sh: init:3:initdefault::  not found.
# ioin::sysinit:/sbin/ioinitrc >/dev/console 2>&1
# tape::sysinit:/sbin/mtinit > /dev/console 2>&1
# muxi::sysinit:/sbin/dasetup   </dev/console >/dev/console 2>&1 # mux init
# stty::sysinit:/sbin/stty 9600 clocal icanon echo opost onlcr ixon icrnl ignpar </dev/systty
sh: stty::sysinit:/sbin/stty:  not found.
# brc1::bootwait:/sbin/bcheckrc </dev/console >/dev/console 2>&1 # fsck, etc.
#               /sbin/ln /dev/systty /dev/syscon" >/dev/console                                                      <
sh: link::wait:/sbin/sh:  not found.
# 2>&1
# cprt::bootwait:/sbin/cat /etc/copyright >/dev/syscon           # legal req
sh: cprt::bootwait:/sbin/cat:  not found.
# sqnc::wait:/sbin/rc </dev/console >/dev/console 2>&1           # system init
# #powf::powerwait:/sbin/powerfail >/dev/console 2>&1            # powerfail
# cons:123456:respawn:/usr/sbin/getty console console            # system console
sh: cons:123456:respawn:/usr/sbin/getty:  not found.
# #ttp1:234:respawn:/usr/sbin/getty -h tty0p1 9600
# #ttp2:234:respawn:/usr/sbin/getty -h tty0p2 9600
# #ttp3:234:respawn:/usr/sbin/getty -h tty0p3 9600
# #ttp4:234:respawn:/usr/sbin/getty -h tty0p4 9600
# #ttp5:234:respawn:/usr/sbin/getty -h tty0p5 9600
# ems1::bootwait:/sbin/rm -f /etc/opt/resmon/persistence/runlevel4_flag
sh: ems1::bootwait:/sbin/rm:  not found.
# ems2::bootwait:/sbin/cat </dev/null >/etc/opt/resmon/persistence/reboot_flag
sh: ems2::bootwait:/sbin/cat:  not found.
# /persistence/runlevel4_flag; /usr/bin/chmod 644 /etc/opt/resmo                                                     <
> n/persistence/runlevel4_flag"
sh: ems3:3456:wait:/sbin/sh:  not found.
# ems4:3456:respawn:/etc/opt/resmon/lbin/p_client
sh: ems4:3456:respawn:/etc/opt/resmon/lbin/p_client:  not found.
# #ups::respawn:rtprio 0 /usr/lbin/ups_mond -f /etc/ups_conf
# a0:3:off:/usr/sbin/getty -h ttyd2a1 1200
sh: a0:3:off:/usr/sbin/getty:  not found.
# a1:3:off:/usr/sbin/getty -h ttyd2a2 1200
sh: a1:3:off:/usr/sbin/getty:  not found.
#

답변1

내가 정말 나쁜 일을 망쳤나요? 다음번에는 시스템이 시작되지 않을까 걱정되나요?

아니요, 그렇습니다(즉, 시스템이 정상적으로 부팅되거나 적어도 문제가 발생하지 않습니다). 이제 현재 작업 디렉터리에 이상한 이름의 파일이 있을 수 있지만(지금 삭제할 수 있음) 대부분의 파일이 명령에 의해 "찾을 수 없음"으로 거부되는 것처럼 보입니다. inittab이는 실제로 쉘 스크립트가 아니므로 쉘에 적합한 모든 행은 순전히 우연입니다.

다음과 같은 사항이 있습니다.

ems2::bootwait:/sbin/cat </dev/null >/etc/opt/resmon/persistence/reboot_flag

당신은 그것을 찾았습니다. 나는 이것이 stdout으로 출력되지 않는 오류일 것이라고 추측하므로 파일이 0으로 잘립니다. 그러나 이는 올바르게 실행될 때 수행되는 작업이기도 합니다. 이는 분명히 플래그로 사용되는 파일 노드일 뿐입니다(즉, 존재하면 무언가를 나타내지만 내용이 없습니다).

ems3:3456:wait:/sbin/sh -c "/usr/bin/touch /etc/opt/resmon/persistence/runlevel4_flag; /usr/bin/chmod 644 /etc/opt/resmon/persistence/runlevel4_flag"

chmod그 끝에가능한인용되어 있기 때문에 실행되지 않을 수도 있지만 실행됩니다. 잘라내어 붙여넣기가 개행 문자가 있는 개행 문자를 도입하는 곳에서 나오는지 여부에 따라 달라집니다. 예를 들면 다음과 같습니다.

runlevel4_flag; /usr/bin/chmod 644 /etc/opt/resmon/persistence/runlevel4_flag"

콜론 뒤의 부분은 실제 명령이지만 runlevel4_flag"실제 파일은 아닙니다.

루트로 작업할 때는 주의하십시오. 필요한 경우에만 이 작업을 수행하십시오. 당신이 고급 사용자가 아니라면 이와 같은 것이 실제로 해를 끼치지는 않습니다.

관련 정보