답변:
chmod 000 /
작동 하는지 궁금합니다 .
완벽하게. 몇 분 후 나는 구출 CD를 찾고 있었다.
내가 다니고있는 대학의 사용자 컨설턴트로 처음 일을 시작했을 때 sudo
비밀번호를 잊어 버린 학생들을 도울 수있는 제한적인 권리 가 주어졌습니다 . sudo passwd <username>
나의 새로운 친구였다. 오리엔테이션이 끝나고 한 시간 후에 호기심이 나아졌고 sudo passwd
새로운 암호를 입력하라는 메시지가 표시되면서 공포를 쳐다 보았습니다 . 나는 비트가 무서워했다 ^C
그것의 내 방식대로, 생각 나는 암호를 입력하고 즉시의 신성한 2 층 도메인에 위층을 걸어 그래서, 과도 상태에서 문제의 계정을 떠날 수도 (erroniously, 그것은 밝혀) 캠퍼스 수퍼 유저이며 주 시스템의 루트 암호를 알고 싶은지 물었습니다.
passwd
루트로 실행할 때 우스운 행동. 예를 들어, 오타 확인에 실패하면 다시 묻습니다.
아직 아무도 이것을 언급하지 않았습니다.
rm -rf .*
(모든 숨김 파일 및 하위 디렉토리를 제거하는 동안 완전히이에 재귀 잊고 .
과 ..
)
rm
그렇게하지 않습니다. 나는 다윈을 시도하고 오류가 발생했습니다 rm: "." and ".." may not be removed
.
.
와 ..
사용을 .[^.]*
. (이것은 실제로로 시작하는 모든 파일을 그리워 ..
하지만 일반적으로 하나만 있습니다.)
.??*
입력하기가 쉽다는 것입니다. 이 파일은와 같은 두 글자로 된 도트 파일과 일치하지 .a
않지만 드문 경우입니다. grep -r .??*
예를 들어 홈 디렉토리에서 구성 파일을 검색합니다 .
메이크 파일 :
clean:
@rm -f * .o
물론 make clean
객체 파일 대신 소스 코드를 지우는 것은 물론 입니다.
레슨 : 버전 관리를 사용하십시오.
*
와.o
:() { :|:&}; :
콘솔 액세스 권한이없는 원격 서버에서 친구가 실행 했습니다. 완전히 고정 된 프로덕션 서버로 재부팅 할 수 없습니다 .
좀 더 읽기 쉽도록 (요청에 따라) 분류했습니다.
:() # Define ':' as a function. Every time we say ':' execute the following code block
{ # Start of code block
: # Call ':' again.
| # Pipe output to...
: # Another ':'
& # Disown process.
# All on one line this would read :|:&,
} # End of code block
; # End definition of ':' as a function
: # Call ':'
그것을 보는 것이 더 쉬울 수도 있습니다.
bomb() { bomb|bomb& }; bomb
:
아무것도하지 않습니다. 그리고 메모리를 전혀 사용하지 않고 포크를 많이 사용합니다. [예, 시도했습니다 :)]. 사용자 당 프로세스 수에 대한 할당량으로 효과를 차단할 수 있습니다.
나는 잘했다, 나는 정말로했다. chmod
디렉토리 를 재귀 적으로 시도하고 와 교환 ./
했습니다 /
.
물론 근본으로는 근본으로 만 진정한 고통 (따라서 깨달음)을 얻을 수 있기 때문입니다.
다른 드라이브에서 작업 중이라고 생각하면서 실수로 메인 드라이브의 파티션 테이블을 닦았습니다.
스크롤 백,, df
메모리 및 행운을 조심스럽게 사용 하여 정확하게 다시 작성하고 다시 작성하고 재부팅하고 희망을 가질 수있었습니다 ... 그리고 그것은 효과가있었습니다.
dd
파이프 된 모든 실린더의 첫 4k 블록을 읽었습니다 file -
. 이것은 라이브 CD에 있었고 우리가해야 할 모든 작업 (패키지 설치 또는 2 개 설치 포함)을 수행하기에 충분한 RAM이 없었기 때문에 다른 컴퓨터의 ssh에서 실행되는 프로세스로 파이프했습니다.
sfdisk -O
파티션 테이블을 백업 하는 데 항상 사용 합니다. 참고 : cgsecurity.org/wiki/TestDisk 는 @Neil Mayhew의 작업을 자동화 할 수 있습니다.
testdisk
내 상자를 구했다
gpart
파일 시스템과 유사한 것들을 찾고 그로부터 파티션 테이블을 구성하는을 가지고 있습니다.
제 순간은 아니지만 다른 사람의 순간입니다.
원자력 과학 연구 시설에서 일할 때 우리는 여러 SunOS, Ultrix 및 Linux 컴퓨터를 운영하는 데 사용했으며 연구원들은 해당 컴퓨터에서 CPU를 공유해야했습니다. 개별 연구 그룹은 자체 연구 보조금을 받으면서 자신의 컴퓨터, 주로 SparcStation을 구입하고 시스템 관리를 직접 수행했습니다.
SunOS는 OpenView 데스크탑 및 멋진 파일 관리자와 함께 제공되었는데 다음과 같습니다.
대부분의 연구자들은 루트로 실행 중이며 누군가 루트 디렉토리를 정리하고 / bin, / etc, / tmp 및 뷰를 어지럽히는 다른 모든 요소를 이동하기로 결정했기 때문에 운영 체제를 다시 설치해야했습니다. 휴지통 또는 일부 하위 폴더.
다른 사용자는 / bin 디렉토리를 정리하고 알지 못한 명령을 제거하기로 결정했습니다.
운이 좋은 사람은 백업을 받았고 대부분 테이프 드라이브를 구입했지만 백업 자체를 실행하는 전통은 없었습니다.
90 년대 중반에서 후반에 친구와 나는 rm -rf *
리눅스 박스 의 어리 석음과 언젠가는 리눅스 박스가 무너질 것이라고 이야기했다. 우리는 정적으로 링크 된 라이브러리와 동적으로 링크 된 라이브러리에 들어 갔으며 시스템이 없이도 잘 작동 할 수 있다고 생각한 /lib
다음 내 워크 스테이션에서 이름을 계속 바꿨습니다. 나쁜 일이 일어 났지만 피해를 입히고 고칠 수있는 열린 콘솔 창이 여러 개 남았습니다 (종료가 더 이상 옵션이 아니 었습니다). 편집자가 실행되지 않습니다. echo
명령에 대해 찾을 수있는 난해한 사용법이 놀랍습니다 .
vi
및 Caps-Lock대/etc/passwd
su -
vi /etc/passwd
. 는 없으며 vipw
"어쨌든 약간의 수정 작업 만합니다".나는 이것을 한 번했다. 놀랍게도이 시스템은 몇 달 동안 기능을 유지했습니다. Cronjobs가 제대로 실행되었으며 로그 파일에 오류가 없었습니다.
몇 달 후 시스템을 재부팅하고 콘솔에 로그인 할 수 없을 때까지이 문제를 알지 못했습니다. ps
사용자 'root'가 아닌 UID '0'이 (가) 소유 한 많은 작업을 표시했습니다.
루트로 로그인하거나 실행할 수 없으며 su
또는 이 상자 su -
에 없습니다 sudo
. 플로피 드라이브가없고, CD-ROM이 버스트되었고 USB 포트가 없습니다 (따라서 외부 CD-ROM이 없음). root의 비밀번호를 입력해야하므로 단일 사용자 모드가 작동하지 않았습니다 /etc/passwd
.
rm -f * ~
과
rm -rf ${DIR}/
때 DIR
설정되지 않은!
${DIR}
합니까? 때문에이 $(DIR)
DIR 명령을 실행하려고합니다.
halt
몇 초 후에 로컬 셸에 있지 않고 프로덕션 서버의 전원을 다시 켤 수 없다는 간단한 인식.
교훈? 기계의 프롬프트는 이제 다음과 같습니다
[ --> root <-- @kompost:/home/echox] #
좋은 빨간 마크 업 ;-)
molly-guard
원격으로 로그인했는지 여부를 확인하고 실제로 원하는지 묻는 도구가 있습니다 .
내가 좋아하는 순간은 emacs 사용자 인 동료가 중요한 파일을 편집하고 싶을 때였습니다.
때문에 emacs
너무 많이 그는 대한 설정을 별칭을 가지고 입력합니다 emacs
:
alias em=emacs
충분하지 않거나 너무 많은 커피의 영향으로 그는 물론 잘못 입력했습니다 em
...
글쎄, 이것은 또 다른 이유입니다 vi
... ...)
alias e=emacs
입니다.
또는 또 다른 경험, 개별적으로 어리석은 것처럼 보이지 않는 몇 가지 간단한 단계에서 실제로 어리석게 느끼는 방법.
1 단계 : Linux 상자를 사용하려는 경우 아이를위한 계정을 설정하십시오. 결국 이것은 가정용 시스템이며 인터넷에 노출되지 않으므로 사소한 암호를 지정하십시오.
2 단계 : 시간이 경과하므로 1 단계는 기억 나지 않습니다.
3 단계 : 방화벽에서 SSH 포트를 열어 (실제로는 라우터의 NAT) ssh에 들어가십시오. 결국, 내 계정에는 꽤 좋은 암호가 있으며 엄청난 가치가있는 것은 아닙니다.
4 단계 : ISP로부터 스웨덴 사이트로가는 DOS 활동이 있다는 알림을받습니다. 아마도 Windows 상자라고 가정하고 검사하고 강화하십시오.
5 단계 : ISP에서 계속 진행 중이라는 알림을받습니다. 세부 정보를 요청하고, 스웨덴 사이트의 IP 주소를 얻고, Wireshark를 실행하고, 공격이 어떤 상자에서 나오는지 찾으십시오.
6 단계 : 바보 같은 느낌으로 Linux 상자를 정리하십시오. 로그인은 루마니아어 주소에서 온 것입니다. 암호가없는 계정을 제거하십시오.
한때 유닉스 용 장치 드라이버를 개발하고있었습니다. 포인터 문제가 있었고 테스트 중에 커널 메모리의 배열 끝을 쓰기 시작했습니다. 나는 이것을 발견하는 데 느리고 리셋 버튼을 즉시 누르지 않았다. 드라이버는 디스크 버퍼 캐시 전체를 낙서했으며 재설정을하기 전에 디스크로 플러시했습니다. 많은 블록이 inode와 디렉토리였으며, 결국 완전히 파일 시스템이 손상되었습니다. lost+found
포기하고 다시 설치하기 전에 6000 개의 고아 파일을 넣은 것 같습니다 . 다행스럽게도 이것은 모든 파일이 들어있는 워크 스테이션이 아닌 테스트 시스템 일뿐입니다.
나는 / 삭제 등 후 복구 . 수업을 배운 것 같지 않습니다 ... 삭제 된 부분 /bin
도 복구해야했습니다 . 내가 작업 할 때 발생하는 것 같습니다 chroot
.
컴퓨터 과학을 공부하는 2 학년 때 우리는 C로 프로그램을 작성하여 여러 개의 서브 프로세스를 생성 fork
하고 "원"으로 파이프와 통신하고 어떤 것이 "리더"가되어야하는지 알아내는 숙제를 배정 받았다. ".
당시에도 여전히 멍청한 놈이었고 대부분의 peple에는 Linux 시스템이 없었기 때문에 교수진의 메인 서버 (공식 사이트 및 직원 계정 및 사이트도 호스팅하고 있음)에서 계정을 작업했습니다. 대부분의 사람들은 숙제를 시도하는 어떤 단계에서 포크 폭탄을 썼습니다. 내 그룹의 절반 이상이 abusers
파일 을 가져 왔습니다. 그것은 긴 시간에 그 서버에서 가장 높은 부하였습니다 :)
저는 Linux 수업을위한 실험실 조교였습니다. 학생 중 한 명이 더 이상 su -
그녀를 받고 있었기 때문에 나를 불렀습니다 permission denied
. 그녀는 암호를 잘못 기억했거나 잘못 입력했습니다. 단일 사용자 모드로 재부팅하고 재설정하십시오. 뭐?! su
여전히 작동하지 않습니까?! 내 의지에 절해야한다! 그래서 나는 그녀가 한 일을 찾기 위해 단일 사용자 모드로 재부팅합니다. 나는 그녀가 달렸다는 것을 깨달았다chmod -R 777 /var/www/html/drupal-6.19 /
디렉토리 이름과 마지막 슬래시 사이의 공백에 유의하십시오.
"정말로 그녀를 다시 설치하고 싶지 않기 때문에이 작업과 방법은 무엇입니까?"이후 / bin / su에 파일 권한이 있음을 알 수있었습니다 777
. 또한 파일 권한으로 읽을 수 있으며 0777
이로 인해 setuid 비트가 제거됩니다 /bin/su
. 빨리 chmod u+s /bin/su
나는 영웅이었다.
그렇게 고통스럽지 않지만 ... 재미있는 작은 순간 :
나는 sysadmin이 그러한 경우를 위해 무언가를 설치 한 것으로 잘못 입력 ls
했습니다 .sl
내가 일하던 회사는 SCO에서 제품을 운영하고있었습니다. 데모 서버에서 응용 프로그램이 매우 느려지는 것에 대한 디버깅을 수행했으며 동시에 새로운 기능에 대한 데모 / 강의를받는 많은 고객이있었습니다.
그래서 나는 붙어있는 응용 프로그램을 실행하고 근본 원인을 확인하기 위해 내 물건을 만들었지 만 여전히 "고착"되었으므로 죽이려고했습니다.
pkill -9 mytestapplication
내가 배운 것은 pkill이 linux =)에서와 같이 SCO에서 정확히 동일하지 않다는 것입니다.
... 기본적으로 사용자가 액세스 할 수있는 모든 것을 죽이고 루트는 ... 모든 것입니다.)
데비안에서 우분투로의 전환은 일부 파일과 디렉토리를 삭제하려고 시도한 날에 시작되었습니다.
rm -r /var/tmp/*
불행히도 "/ var / tmp /"와 "*"사이에 공백을 삽입했으며 파일 시스템의 루트에있었습니다.
root@workstation:/# rm -r /var/tmp/ *
집에서 시도하지 마십시오!
한 지점에 두 개의 드라이브가 설치되어 있고 두 번째 드라이브의 루트 파일 시스템이 안에있는 디렉토리에 마운트되었습니다 /mnt
. 나는 그 디렉토리에 있었고 삭제하려고했지만 대신 var
타이핑을 끝냈습니다 rm -rf /var
. 일부 본능 말했다에 걷어차 듯 var
합니다 슬래시로 와야!
내가 한 일을 깨달았을 때 나는 즉시 Ctrl-C쳤지 만 너무 늦었다. 내 rpm
데이터베이스는 오랫동안 건물을 떠났습니다. 나는 모든 것을 정상으로 되 돌리는 데 오랜 시간을 보냈다.
이제 고통스러운 부분.
나는 그 디렉토리로 돌아가서 /mnt
내가하고있는 일을 재개합니다. 무엇을 입력합니까? 자, 본능이 다시 시작되었다고 가정 해 봅시다.
적어도 두 번째로 시스템을 훨씬 빨리 복원 할 수있었습니다.)
rm
명령 과 관련되어 있는지 재미 있습니다 . 아니면 슬프다.