Tag Archive for linux

Csoportos átnevezés prefix / suffix-el

Bájos kis script a jó öreg mv használatával:

for f in * ; do mv "$f" PREFIX_"$f" ; done

 

iptables tartalom kiiratas

iptables szabalyainak kiratasa:

$sudo iptables -t nat -L -vn

Ha Gentoo széthullik update-kor

Ha meghal a gentoo és se einfo, se rc-service

emerge -ave system 
emerge -ave world 
revdep-rebuild

VNC beállítások(k)

#!/bin/sh

# Uncomment the following two lines for normal desktop:
#unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc

[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
x-terminal-emulator -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &
#x-window-manager &
xfce4-session &

Xorg.conf tesztelése xserver indítása nélkül

sudo xinit -- :2

Gentoo install

A következő leírásban bemutatom röviden, hogyan tudunk egy alap Gentoo rendszert feldobni gépünkre, vagy egy virtuális gépre.

 

Töltsük le a Gentoo minimal LiveCD-t. Az install-PLATFORM-minimal-DÁTUM.iso fájlt töltsük le.

  • 64 bites rendszer: http://gentoo.inf.elte.hu/releases/amd64/current-iso/
  • 32 bites rendszer: http://gentoo.inf.elte.hu/releases/x86/current-iso/

Bootoljuk be a számítógépünket erről a LiveCD-ről.

Következő lépésként állítsuk be a hálózatot. Amennyiben csak egy hálókártya van a gépben, akkor az esetek nagy részében az eth0 lesz a jó hálókártya név:

net-setup eth0

Állítsunk be egy root jelszót:

passwd

Majd indítsuk el az SSH szervert, hogy távolról, kényelmesen tudjunk telepíteni (ha akarunk persze…)

/etc/init.d/sshd start

Következő lépésben particionáljuk meg a merevlemezt (ha esetleg már korábban nem tettük volna). Én a cfdisk nevű programot szoktam erre használni, de persze használhatsz fdisk-et is ha az jobban tetszik. Két partíciót hozok létre, egy kb. 1 gigabájtosat swapnak, a maradék helyet pedig a /-nak. Ehhez a cfdisk nevá segédprogramot használom, ennek bemutatását külön nem írnám le, elég egyszerű a program.

cfdisk

Formázzuk meg a létrehozott partíciókat, a swapot aktiváljuk, a / partíciót pedig mountoljuk is fel. Jelen esetbe ext4-nek formázom a / partíciót.

mkfs.ext4 /dev/sda1
mkswap /dev/sda2 && swapon /dev/sda2
mount /dev/sda1 /mnt/gentoo

Töltsük le a stage3-at, majd csomagoljuk ki. A legfrissebb stage3-at itt találjuk: ftp://gentoo.inf.elte.hu/releases/amd64/current-stage3/

cd /mnt/gentoo
wget ftp://gentoo.inf.elte.hu/releases/amd64/current-stage3/stage3-amd64-DATUM.tar.bz2
tar xjpf stage3*
rm -f /mnt/gentoo/stage3*.tar.bz2

Ha a stage3 megvan, akkor a portage treet is töltsük le és csomagoljuk ki a helyére:

cd /mnt/gentoo/usr
wget ftp://gentoo.inf.elte.hu/snapshots/portage-latest.tar.bz2
tar xjf portage-lat*
rm -f /mnt/gentoo/usr/portage-lat*.tar.bz2

Montuljuk fel a chroothoz szükséges dolgokat, majd chrootoljunk be az új Gentoo telepítésünkbe:

mount -t proc proc /mnt/gentoo/proc
mount -o bind /dev /mnt/gentoo/dev
cp -L /etc/resolv.conf /mnt/gentoo/etc/
chroot /mnt/gentoo /bin/bash
env-update && source /etc/profile

Állítsuk be jól az időzónánkat:

cp /usr/share/zoneinfo/Europe/Budapest /etc/localtime
date

Következő lépésben állítsuk be gépünk nevét. A gepneve szöveg helyére írjunk egy saját nevet

echo "127.0.0.1 gepneve localhost" > /etc/hosts
sed -i -e 's/HOSTNAME.*/HOSTNAME="gepneve"/' /etc/conf.d/hostname
hostname gepneve
hostname -f

A gépnév beállítása után állítsuk be az fstabot, amivel megmondjuk a rendszernek, hogy mely partíciót hova mountolja. Én az UUID alapú megoldást preferálom, ezért derítsük ki mi a partíciók egyedi azonosítója:

ls -l /dev/disk/by-uuid/
lrwxrwxrwx 1 root root 10 Jun 13 09:26 b492c700-719e-4fed-b6cd-b43fdc29b41e -> ../../sda2
lrwxrwxrwx 1 root root 10 Jun 13 09:27 f91b51e8-6945-49f0-8023-45fb7f462da9 -> ../../sda1

Ha megvannak az UUID-ok, akkor nyissuk meg szerkesztésre az /etc/fstab fájlt:

nano /etc/fstab

Nálam (két partícióval) így fog kinézni a fájl:

UUID=f91b51e8-6945-49f0-8023-45fb7f462da9       /               ext4            noatime         0 1
UUID=b492c700-719e-4fed-b6cd-b43fdc29b41e       none            swap            sw              0 0
/dev/cdrom              /mnt/cdrom      auto            noauto,ro       0 0
shm                     /dev/shm        tmpfs           nodev,nosuid,noexec     0 0

Az első oszlopba kerül a lemez azonosítója (/dev/akármi, vagy jelen esetben UUID=azon), a második oszlop, hogy hova mountolja, a harmadikban a fájlrendszer típusa van, a negyedik ötödik pedig különböző paraméterek.

Következzék a hálózat beállítása. A 192.168.1.200 jelen esetben a gép IP címe, az 192.168.1.1 az átjáró (router) címe. Ha DHCP szervertől kapjuk az IP címet, akkor ezt hagyjuk ki.

echo 'config_eth0=( "192.168.1.200/24" )' >> /etc/conf.d/net
echo 'routes_eth0=( "default via 192.168.1.1" )' >> /etc/conf.d/net

Ha DHCP szervert szeretnénk használni, akkor még a dhcpd csomagot telepíteni kell:

emerge dhcpcd

Állítsuk be, hogy az eth0 interfész automatikusan elinduljon, valamint az SSH szerver is induljon el a rendszer indításakor:

rc-update add net.eth0 default
rc-update add sshd default

Állítsunk be egy root jelszót:

passwd

Majd állítsuk be az időzónánkat:

nano /etc/conf.d/clock
TIMEZONE="Europe/Budapest"

Állítsuk be a billentyűzet kiosztásunkat, amennyiben az nem angol. Ehhez nyissuk meg szerkesztésre a /etc/conf.d/keymaps fájl, majd a KEYMAP opcióban írjuk át a en szöveget hu szövegre.

nano /etc/conf.d/keymaps
KEYMAP="hu"

Forgassuk le a syslog-ng-t és a vixie-cron csomagot (syslog és cron), majd állítsuk be, hogy ezek automatikusan induljanak is el.

emerge syslog-ng vixie-cron
rc-update add syslog-ng default
rc-update add vixie-cron default

Töltsük le a kernel forrást, majd állítsuk be a nekünk szükséges dolgokat. A Linux kernel forgatásáról most nem írok, ha esetleg nem akarsz saját kernelt forgatni, akkor ugord át ezt a részt.

emerge gentoo-sources
cd /usr/src/linux
make menuconfig

Ha beállítottuk, forgassuk le: (a -j2 opciónál a szám helyett annyit írjunk ahány processzor magunk van plusz egy)

make -j2
make modules_install
make install

Ha nem akarunk saját kernelt forgatni, akkor a Genkernel csomagra lesz szükségünk. Ez fogja elintézni a kernel leforgatását.

emerge genkernel

Majd forgattassuk le a kernelt:

genkernel all

Legvégén telepítsük a Grub-ot, amivel betöltjük a kernelt

emerge grub

Szerkesszük a GRUB konfigurációs fájlját

nano /boot/grub/grub.conf

A tartalma ilyesmi legye (ahol sda1 az a partíció, aho la /boot van)

default 0
timeout 5

title Gentoo Linux 2.6.32-r7
root (hd0,0)
kernel /boot/vmlinuz-2.6.32-gentoo-r7 root=/dev/sda1

Majd telepítsük a grubot a bootszektorba

grub
root (hd0,0)
setup (hd0)
quit

Kész is vagyunk a telepítéssel. Lépjünk ki a chrootból, umountoljuk a partíciókat, majd indítsuk újra a számítógépet

exit
umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo
reboot
from: http://hogyan.org/gentoo-telepitese

Xbox IrDA Ubuntu 10.04 alá

Haven’t found any consistant instructions on how to do this so here it is. This is not my work it’s the combination of other threads I’ve come across that seemed to work for me.

  1. Blacklist xpad
    Code:
    sudo nano /etc/modprobe.d/blacklist.conf

    add:

    Code:
    blacklist xpad
  2. Install lirc – config menu will pop up. select none.
    Code:
    sudo apt-get install lirc
  3. Install lirc source modules
    Code:
    sudo apt-get install lirc-modules-source
  4. Configure hardware.conf
    Code:
    sudo nano /etc/lirc/hardware.conf

    replace all and add:

    Code:
    # /etc/lirc/hardware.conf
    #
    #Chosen Remote Control
    REMOTE="None"
    REMOTE_MODULES="lirc_atiusb lirc_dev"
    REMOTE_DRIVER=""
    REMOTE_DEVICE="/dev/lirc0"
    REMOTE_SOCKET=""
    REMOTE_LIRCD_CONF=""
    REMOTE_LIRCD_ARGS="-r"
    
    #Chosen IR Transmitter
    TRANSMITTER="None"
    TRANSMITTER_MODULES=""
    TRANSMITTER_DRIVER=""
    TRANSMITTER_DEVICE=""
    TRANSMITTER_SOCKET=""
    TRANSMITTER_LIRCD_CONF=""
    TRANSMITTER_LIRCD_ARGS=""
    
    #Enable lircd
    START_LIRCD="true"
    
    #Don't start lircmd even if there seems to be a good config file
    #START_LIRCMD="false"
    
    #Try to load appropriate kernel modules
    LOAD_MODULES="true"
    
    # Default configuration files for your hardware if any
    LIRCMD_CONF="lircd.conf"
    
    #Forcing noninteractive reconfiguration
    #If lirc is to be reconfigured by an external application
    #that doesn't have a debconf frontend available, the noninteractive
    #frontend can be invoked and set to parse REMOTE and TRANSMITTER
    #It will then populate all other variables without any user input
    #If you would like to configure lirc via standard methods, be sure
    #to leave this set to "false"
    FORCE_NONINTERACTIVE_RECONFIGURATION="true"
    START_LIRCMD=""
  5. configure lircd.conf
    Code:
    sudo nano /etc/lirc/lircd.conf

    replace and add:

    Code:
    # LIRCD configuration file for Xbox DVD Kit
    #
    # Marko Friedemann <mfr@bmx-chemnitz.de>
    #
    #
    # brand:             Microsoft
    # model:             Xbox DVD Remote
    # supported devices: Xbox DVD Remote via xpad-ir driver
    #
    # comment:           EXPERIMENTAL
    #
    begin remote
    
        name  XboxDVDDongle
        bits           8
    
        begin codes
    
            SELECT          0x0b
            UP              0xa6
            DOWN            0xa7
            RIGHT           0xa8
            LEFT            0xa9
            INFO            0xc3
    
            9               0xc6
            8               0xc7
            7               0xc8
            6               0xc9
            5               0xca
            4               0xcb
            3               0xcc
            2               0xcd
            1               0xce
            0               0xcf
    
            DISPLAY         0xd5
            BACK            0xd8
            SKIP+           0xdd
            SKIP-           0xdf
            STOP            0xe0
            REVERSE         0xe2
            FORWARD         0xe3
            TITLE           0xe5
            PAUSE           0xe6
            PLAY            0xea
            MENU            0xf7
    
          end codes
    
    end remote
  6. configure modules to load at startup
    Code:
    sudo nano /etc/modules

    add:

    Code:
    lirc_dev
    lirc_atiusb
  7. edit lirc_dev.h
    Code:
    sudo nano /usr/src/lirc-0.8.7/drivers/lirc_dev/lirc_dev.h

    change the line “#define LIRC_HAVE_KFIFO” to “#undef LIRC_HAVE_KFIFO”

  8. reconfigure lirc source modules
    Code:
    sudo dpkg-reconfigure lirc-modules-source
  9. reboot
  10. test
    Code:
    irw

    press a button on the remote.should see something like this:

    Code:
    00000000000000a7 00 DOWN XboxDVDDongle
    00000000000000a7 01 DOWN XboxDVDDongle
    00000000000000a7 00 DOWN_UP XboxDVDDongle
    00000000000000a7 00 DOWN XboxDVDDongle
    00000000000000a7 00 DOWN_UP XboxDVDDongle
    00000000000000a7 00 DOWN XboxDVDDongle
    00000000000000a7 00 DOWN_UP XboxDVDDongle
    00000000000000a9 00 LEFT XboxDVDDongle
    00000000000000a9 00 LEFT_UP XboxDVDDongle

    That it!

umask leírás

Akkor lássuk a medvét: az umask után egy 3-jegyű szám adható meg (hasonlóan ahhoz amikor chmod-nál 3 számjegyet adunk meg), és ezzel azt definiáljuk, melyek azok a jogok melyeket az ezután létrehozott file vagy könyvtár NE KAPJON MEG ! Vagyis azokat a jogokat ahol 1-es bitet írtunk elő az umask-ban. Például egy umask 672 azt jelenti hogy a létrejövő file/könyvtár esetén a usernél nincs r,w jog (6=4+2), group-nál nincs r,w,x jog (7=4+2+1), továbbá other-nél nincs w jog (2).
Az hogy a többi joggal mi lesz azt NEM TUDJUK, hiszen ez már nem az umask-tól függ hanem attól hogy a létrehozó program milyen jogokat szán a file/könyvtár-nak. Fenti példa alapján így tehát lehetséges hogy other-nél van x-jog, de az is lehet hogy nincs !
Álljon itt egy olyan példa amit egy unix-os gépen csináltam:

$ umask
022
$ mkdir teszt1
$ ls -ld teszt1
drwxr-sr-x 2 oracle dba 512 Jan 21 12:44 teszt1
$ umask 777
$ mkdir teszt2
$ ls -ld teszt2
d-----S--- 2 oracle dba 512 Jan 21 12:45 teszt2
$ umask 000
$ mkdir teszt3
$ ls -ld teszt3
drwxrwsrwx 2 oracle dba 512 Jan 21 12:46 teszt3

Az is belátható hogy az umask nincs kihatással a setuid,setgid,sticky bitekre hiszen ha ezekre is tudna hatni akkor nem 3, hanem 4 számjegyet lehetne umask-nál megadni. Gyengébbek kedvéért: teszt1 esetén a group-nál van x-jog, csak mivel a setgid bit 1-re van állítva, “takarásban van az x”. teszt2 esetén viszont hiányzik az x-jog, így nagy “S” betű áll azon a helyen. Hozzáteszem hogyha valaki a példámat kipróbálja egy másik gépen nem biztos hogy ugyanezeket a jogokat fogja tapasztalni. Ez azért van mert az umask-kal csak azt tudjuk elérni, milyen jogok NE LEGYENEK az új objektumnál, ezeken kívül a többi jogra nincs az umask hatással.

Wifi AP készítése

Procedure

apt-get install dhcp3-server hostapd

Modify /etc/hostapd/hostapd.conf and put the following

interface=wlan0
driver=nl80211
ssid=ronhks
hw_mode=g
channel=11
wpa=3
wpa_passphrase=<PASSWORD>
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP CCMP
wpa_ptk_rekey=600

 

The dhcpd.conf section in /etc/dhcp3/dhcpd.conf would have something like the following

subnet 10.10.0.0 netmask 255.255.255.0 {
        range 10.10.0.25 10.10.0.50;
        option domain-name-servers 8.8.4.4, 208.67.222.222;
        option routers 10.10.0.1;
}

Modify /etc/default/dhcp3-server

INTERFACES="wlan0"

Check what name your adapter got via iwconfig. You can change the name also and make it persistent via /etc/udev/rules.d/70-persistent-net.rules so that it always gets a single type of name. In our example we’re assuming wlan0, but it could be changed. Make necessary changes in your configuration too.

Configure the new interface

ifconfig wlan0 10.10.0.1

The above could also be done in a better way via the /etc/network/interfaces file, but didn’t try it out. In any case if you shutdown hostapd, the network interface (wlan0) loses its address, so need to put a script which assigns it again before hostapd is started. An example could be

iface wlan0 inet static
 address 10.10.0.1
 netmask 255.255.255.0

Restart the dhcp3-server. It should now be ready to serve addresses and is also bound to the network interface too.

Allow ip masquerading

echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Now start hostapd and see the messages that it shows

hostapd -dd /etc/hostapd/hostapd.conf

Wait for a few seconds, it should show some probes being done by other wifi devices. If it shows, then probably you’re in good luck.

Now try to connect via your device to this access point. It should work.

To make this work on boot, can put the relevant config in /etc/default/hostapd

RUN_DAEMON="yes"
DAEMON_CONF="/etc/hostapd/hostapd.conf"
DAEMON_OPTS="-dd"

and also put the firewall rules in /etc/rc.local (make sure its executable).

Remember – if you shutdown your hostapd, the network card would lose its address. So you have to assign that again before starting hostapd. The usual practice would be

  • Stop hostapd
  • Stop dhcp server
  • Restart network (or rather ifup wlan0 / ifconfig wlan0 10.10.0.1 would do)
  • Restart dhcp server
  • Start hostapd

Miscellaneous

  1. You can check the wifi interfaces via
    iwconfig
  2. To set a wifi adapter into master mode, try the following. If it doesn’t work and shows an error that it’s not possible or something, fret not – use hostapd as that’ll do that in any case.
    iwconfig wlan0 mode Master
  3. Network Manager could create issues, though in my test environment – instead of using an ethernet interface, I used two wlan interfaces, one being controlled by Network Manager for internet access, and other for making it an access point.
  4. modprobe -r ath5k / modprobe -r rt2800usb etc. is to be used for unloading the modules.
  5. If you wish to proceed without using authentication so that you can test it easy, then put the following in /etc/hostapd/hostapd.conf
    interface=wlan0
    driver=nl80211
    ssid=MyAP
    hw_mode=g
    channel=11