Ky3bMu4
12.02.2008, 15:35
Навеено темой - "23 способа получить в регистре единицу" (https://forum.antichat.ru/thread50413.html) А вот 12 способов узнать что за *nix система стоит на машине. Сильно не пинайте =) .
1)uname -a
2)cat /etc/issue(linux)
3)cat /proc/version
5)Тип ФС - fdisk [-l] //freebsd or not freebsd(может конечно быть и solaris=)) - ufs или ext3 ;Или - /dev/hda , /dev/hdb - linux , /dev/ad0s3e(нечто в этом роде) - freebsd
6)Посмотреть логи - /var/log/daemon.log,/var/bootstrap.log(linux) , /boot/loader.rc(freebsd) ,заглянуть в /boot/grub/menu.lst
7)Содержимое /usr/src/[kernel sources](если они конечно есть=)) , а точнее README.[OS](linux) or README(freebsd)
8)echo 'int main(void){return 0;}' > os.c && gcc os.c -o os && strings os
Если стоит freebsd, то увидете нечто вроде
$FreeBSD: src/lib/csu/i386-elf/crti.S,v 1.7 2005/05/19 07:31:06 dfr Exp $
9)По типу установки пакетов.
Присутствие директорий
/usr/ports - freebsd
/etc/apt - debian\ubuntu
/usr/portage - gentoo
откликается на rpm - redhat based , на deb или apt-get - debian\ubuntu , на emerge - gentoo , pacman - arch linux , slapt-get, swaret , slackpkg - slackware
10)Специфические файлы - /etc/rc.conf - freebsd\gentoo для остальных linux`ов rc.local,также можно посмотреть содержимое данного файла(к примеру, настройка маршрутиризации в debian`е и freebsd отличается по синтаксисиу ip) ; /etc/master.shadow - freebsd ,/etc/redhat-release - redhat or fedora , /etc/debconf.conf or /etc/debian_version - debian\ubuntu , /etc/freebsd-update.conf - freebsd , /COPYRIGHT(freebsd), позаглядывать в файлы /etc многие из них могут начинаться на
# $FreeBSD: ...
В /usr/share/doc тоже можно много интересного найти - /handbook(freebsd) или /ubuntu-doc
11)Если стоит web-сервак, то можно посмотреть какой message выводит сервер(но способ крайне ненадёжный) telnet localhost 80 ; GET /123123123123123123.html - <address>Apache/2.0.55 (Ubuntu) PHP/5.1.6 Server at 127.0.1.1 Port 80</address>
12)Если же ниодин из вышеперечисленных способов не помог(в чём я очень сильно сомневаюсь=)), то можно хотябы узнать версию ядра -
#include <stdio.h>
#include <sys/utsname.h>
int main(void)
{
struct utsname u;
uname(&u);
printf("%s release %s(version %s) on %s\r\n",u.sysname,u.release,u.version,u.machine);
return 0;
}
Я не думаю что кто-то из сисадминов будет перехватывать вызов uname() =).
1)uname -a
2)cat /etc/issue(linux)
3)cat /proc/version
5)Тип ФС - fdisk [-l] //freebsd or not freebsd(может конечно быть и solaris=)) - ufs или ext3 ;Или - /dev/hda , /dev/hdb - linux , /dev/ad0s3e(нечто в этом роде) - freebsd
6)Посмотреть логи - /var/log/daemon.log,/var/bootstrap.log(linux) , /boot/loader.rc(freebsd) ,заглянуть в /boot/grub/menu.lst
7)Содержимое /usr/src/[kernel sources](если они конечно есть=)) , а точнее README.[OS](linux) or README(freebsd)
8)echo 'int main(void){return 0;}' > os.c && gcc os.c -o os && strings os
Если стоит freebsd, то увидете нечто вроде
$FreeBSD: src/lib/csu/i386-elf/crti.S,v 1.7 2005/05/19 07:31:06 dfr Exp $
9)По типу установки пакетов.
Присутствие директорий
/usr/ports - freebsd
/etc/apt - debian\ubuntu
/usr/portage - gentoo
откликается на rpm - redhat based , на deb или apt-get - debian\ubuntu , на emerge - gentoo , pacman - arch linux , slapt-get, swaret , slackpkg - slackware
10)Специфические файлы - /etc/rc.conf - freebsd\gentoo для остальных linux`ов rc.local,также можно посмотреть содержимое данного файла(к примеру, настройка маршрутиризации в debian`е и freebsd отличается по синтаксисиу ip) ; /etc/master.shadow - freebsd ,/etc/redhat-release - redhat or fedora , /etc/debconf.conf or /etc/debian_version - debian\ubuntu , /etc/freebsd-update.conf - freebsd , /COPYRIGHT(freebsd), позаглядывать в файлы /etc многие из них могут начинаться на
# $FreeBSD: ...
В /usr/share/doc тоже можно много интересного найти - /handbook(freebsd) или /ubuntu-doc
11)Если стоит web-сервак, то можно посмотреть какой message выводит сервер(но способ крайне ненадёжный) telnet localhost 80 ; GET /123123123123123123.html - <address>Apache/2.0.55 (Ubuntu) PHP/5.1.6 Server at 127.0.1.1 Port 80</address>
12)Если же ниодин из вышеперечисленных способов не помог(в чём я очень сильно сомневаюсь=)), то можно хотябы узнать версию ядра -
#include <stdio.h>
#include <sys/utsname.h>
int main(void)
{
struct utsname u;
uname(&u);
printf("%s release %s(version %s) on %s\r\n",u.sysname,u.release,u.version,u.machine);
return 0;
}
Я не думаю что кто-то из сисадминов будет перехватывать вызов uname() =).