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

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

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



답변

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

난 항상 사용하는 데 사용되는 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그들을 찾을 수 있습니다.


답변

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


답변

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

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

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

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


답변

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


답변

다른 아이디어들 :

  • /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.

답변