익숙하지 않은 시스템에 대해 배우기위한 명령


19

익숙하지 않은 UNIX 또는 Linux 시스템 (루트로)에 로그인합니다. 자신에게 방향을 정하고 어떤 종류의 시스템을 사용하고 있는지 파악하기 위해 어떤 명령을 실행합니까? 사용중인 하드웨어 유형, 실행중인 운영 체제 유형 및 권한 및 보안과 관련하여 현재 상황이 무엇인지 어떻게 알 수 있습니까?

입력 한 첫 번째와 두 번째 명령은 무엇입니까?


3
내가 사용하는 것이 uname -a다음 apropos whatever 당신의 친구입니다.
fd0

1
nmap -A -T4 localhost또한 유용한 정보를 제공 할 수도 있습니다
seumasmac 1

@seumasmac netstat는 로컬 시스템을 nmapping하는 것보다 낫고 효율적입니다.
André Borie

@ AndréBorie nmap과 netstat는 매우 다른 결과를 생성합니다. 따라서 효율성 (어떤 종류의)과 관련하여 비교하는 것은별로 의미가 없습니다.
moooeeeep

@ AndréBorie 나는 원래 그 끝에 :)을 넣을 계획이었습니다. 나는 내 컴퓨터 중 하나에서 보안을 검사하고 있었고 nmap망치 를 잡고있는 동안 localhost갑자기 못처럼 보였다. 그러나 실제로 그것이 흥미로운 정보를 제공한다는 것을 깨달았습니다.
seumasmac

답변:


22

이중 사용 질문! 소프트웨어 고고학자 나 사악한 해커가이 질문에 대한 답을 사용할 수 있습니다! 자, 나는 무엇입니까?

난 항상 사용하는 데 사용되는 ps -efps -augxwwI가 무엇인지 알아. Linux 및 System V 박스는 "-ef"및 "-augxww"의 오류를 좋아하는 경향이 있으며, 그 반대의 경우 BSD 및 이전 SunOS 시스템의 경우도 마찬가지입니다. 의 결과는 ps당신에게 많은 것을 알려줄 수 있습니다.

루트로 로그인 할 수 있습니다, 그것은 리눅스 머신의 경우에, 당신은해야 lsusb하고 lspci- 그 하드웨어의 상황이 무엇인지 알고으로 당신에게 방법의 80 %를 얻을 것이다. dmesg | more현재의 모든 문제를 이해하는 데 도움이 될 수 있습니다.

단계적으로 폐지되기 시작했지만 ifconfig -a일반적으로 네트워크 인터페이스와 네트워킹에 대해 많은 것을 알 수 있습니다. 유선 이더넷처럼 보이는 출력에서 ​​보이는 인터페이스에서 실행 mii-tool및 / 또는 정보를 얻을 수 있습니다.ethtoolifconfig

박차 ip route또는 netstat -r어쩌면 사용중인 네트워크 인터페이스에 대해 뭔가 라우팅 인터넷 프로토콜에 대한 정보, 그리고 수 있습니다.

mount호출은 디스크 (들) 그들이 어떻게 장착하고에 대해 알 수 있습니다.

Running uptime을 누른 다음 last | more현재 유지 보수 상태에 대해 알려줄 수 있습니다. 가동 시간이 100 일 이상이면 은유 적으로 말하면 "오일과 유체를 교체 할 때입니다"라는 의미 일 것입니다. 달리기 who

보고 /etc/resolv.conf/etc/hosts해당 컴퓨터의 DNS 설정에 대해 알 수 있습니다. 아마 할 nslookup google.com또는 dig bing.comDNS가 대부분 작동하는지 확인합니다.

유닉스 나 리눅스 또는 BSD의 변형을 결정하기 위해 어떤 오류 ( "명령을 찾을 수 없음")와 어떤 변형 ( "ps -ef"대 "ps augxww")이 작동하는지 항상 주목할 가치가 있습니다.

C 컴파일러의 존재 여부는 중요합니다. 수행 which cc또는 더 나은, which -a cc그들을 찾을 수 있습니다.


나는 netstat -tulpanw더 많은 출력을 선호 하지만 실제로 맛의 문제입니다.
Ned64

또한이 lshw리눅스에서.
Shahbaz

mount지저분 findmnt하고 대신 매우 깨끗합니다.
edmz 2016 년

10

cat /etc/*release* 어떤 배포판이 실행되고 있는지에 대한 개요를 얻는 좋은 명령입니다.


9

http://bhami.com/rosetta.html 은 검토하기에 편리 할 수 ​​있습니다. 그렇지 않으면 일반적으로 /etc(계정, 초기화 항목, OS 맛에 대한 힌트 등) 아래 crontab -l를 둘러보고 ps배울 내용을 목록을 살펴 봅니다.

또한 "루트로"는 리눅스 관리자가 모든 Solaris 호스트 이름을로 설정 한 시스템을 수정해야했기 때문에 매우 무섭습니다 -f.

또한 df위험한 명령입니다. 오, 사람들이 I / O 차단에 매달린 좋은 방법입니다. 따라서 적어도 마운트를 조사하거나 다른 세션을 열 수 있다는 것을 알 때까지는 실행하지 마십시오.

(아주 간단한 명령을 사용하여 uname, cd /etc; ls, cat, $PAGER)는, 호스트가 무엇인지 알아낼 때까지 그것으로 당신이있는 거 익숙하지 않은 경우 로제타를 확인하거나 항상 명령에 어떤 명령이나 플래그를 가정하기 전에 매뉴얼 페이지를 읽기가에 무엇을합니까 더 인기있는 시스템.


저소득층 환경에 (일시적으로) 떨어지는 강력한 방법이 있습니까? 아니면 이것이 실현 가능하지 않거나 어떻게 든 좋은 아이디어가 아닌가?
Oliphaunt-

1
df위험한가요? 파일 시스템 사용을 보여주는 것 이외의 다른 시스템이 있습니까?
terdon

1
@terdon 커널 I / O 차단 (예 : 다운 된 하드 NFS 마운트); 기껏해야 새로운 세션이나 터미널이 어떻게 든 열리거나 (정전 중 시간이 낭비 됨) 최악의 경우 이전 Solaris 시스템에서 유일한 콘솔이었던 것입니다. 부끄러운 마운트 정보를 처음 보지 않았고 문제가있는 NFS 서버 라인이 인식되었습니다.
thrig

1
df중단 되면 CTRL-Z와 그만 kill -9합니다. 나는 또한 그 문제에 부딪 쳤고 그것은 항상 나를 위해 일했다. 또한 이상적으로는 마운트를 걸지 않아야합니다. 또한 많은 사람들이 프로그램이 "위험한"것으로 걸려 있다고 생각하지 않으므로 테돈이 혼란 스러웠습니다.
Bratchley

3
@Bratchley 아, 제어 문자를 보낼 수없는 콘솔 연결이 없었습니까? 음, 그 z 모뎀 매뉴얼은 어디에 있었습니까, 아니면 오, 어떻게 우리는 버그가있는 자바를 통해 물리적으로 접근 할 수있는 다른 버그가있는 물건으로 그것들을 보냈습니까?
thrig 2009 년

5

dmidecode그리고 lspci일반적으로 당신에게 시스템에서 실행되는 하드웨어가 무엇의 좋은 아이디어를 줄 것이다. 이것이 일반적으로 실행되는 서버 netstat -tlpn인 경우 서버의 목적을 제공합니다. df -hP시스템의 현재 저장소를 확인하기위한 좋은 명령입니다. lsb_release -a어떤 배포판인지 알려주세요.

[root@vle02 ~]# lsb_release -a
LSB Version:    :base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch
Distributor ID: RedHatEnterpriseServer
Description:    Red Hat Enterprise Linux Server release 6.7 (Santiago)
Release:        6.7
Codename:       Santiago

실행 last하면 누가 시스템을 사용하는지 알려야합니다. 이 서버에 합법적으로 액세스했다고 가정하면 종종 서버에 로그인 한 사람 중 한 명에게 서버에 대한 자세한 정보를 요청할 수 있습니다.

벤더 중립 보안 점검 : 종종 방화벽에 고유 한 구성 데이터가 있으므로 실행하는 iptables -nvL것이 유용합니다. 또한 로컬 사용자 만 사용하는지 또는 ldap / kerberos / winbind / sssd / whatever를 사용하도록 구성되어 있는지 확인하려면 배포판의 pam 구성 파일을 확인해야합니다.

에 나타나는 서비스 구성을 검사 할 수도 있습니다 netstat -tlpn. 예를 들어, 아파치가 표시되면 /etc/http/conf/httpd.conf(RHEL, /etc/apache2Ubuntu에서) 어떤 웹 사이트가 실행 중인지 확인하십시오. 또는 apachectl -S구성된 모든 가상 호스트 목록을 얻기 위해를 수행 할 수 있습니다. 내가 실제로 할 수있는 일은 아파치를 예제로 제공하고 데몬의 구성을 다른 것으로 확인하는 것입니다.

RHEL rpm -qa --last | head에서는 시스템 업데이트를 마지막으로 수행 한 시간 도 확인 했습니다. SELinux가 다음을 통해 활성화되어 있는지 확인합니다.getenforce


0

다른 아이디어들 :

  • /proc파일 시스템의 유무는 Mac , FreeBSD 또는 Linux 를 사용하고 있는지 여부를 나타낼 수 있습니다 .
  • 패키지 관리는 Linux 배포판과 배포판이 다릅니다. 데비안 기반의 것은 Deepin, Ubuntu, Mint; Red Hat과 Fedora는 어느 시점까지 m을 얻었지만 이제 Fedora에는 DNF가 있습니다 . 아치는 팩맨을 사용합니다. 그래서 우리는 다음과 같이 할 수 있습니다 :ls /usr/bin | grep 'apt\|yum\|pacman'
  • 특정 포트에 특정 서비스의 존재를 볼 때 netstat -tulpan. sshd웹 서버 일 수 있습니다 ftp.

시스템에 주어진 실행 파일이 있다고해서 실제로 아무 의미가있는 것은 아닙니다. 예를 들어 데비안에는 yum패키지가 있습니다. ssh 서버가 있으면 시스템을 어떻게 알 수 있습니까? AFAIK 당신은 sshd거의 모든 것을 찾을 수 있습니다 .
terdon

@terdon True. 나는 단지 새로운 sysadmin의 관점에서 이것에 접근하고있다. "우리는 약간의 리눅스 박스를 가지고있다. 그 시점에서 다음과 같은 질문을 할 수 있습니다. 원격 액세스가 있습니까? 원격 액세스가 강화 되었습니까? 익숙한 패키지 관리가 있거나 새로운 패키지 관리자를 배워야합니까? 목표는 반드시 결정되지 않은 어떤 OS가 당신이, 브루스 Ediger가 이미 덮여 얻을,하지만 난에 더 초점을 맞추고있어 조사 시스템 자체
세르지 Kolodyazhnyy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.