# :() { :|: & };:

## Palio

Wytłumaczy mi ktoś na jakiej zasadzie to działa -> :() { :|: & };:

----------

## wodzik

wywołuje rekurencyjnie samo siebie. przypomnialo mi sie: 

"Żeby zrozumieć rekurencje, musisz najpierw zrozumieć rekurencje" 

czyżby to pytanie spowodowane bylo moja sygnaturka   :Twisted Evil: 

----------

## Raku

tak samo jak to:

```

funkcja() { 

   funkcja | funkcja &

};

funkcja

```

To dokładnie to samo, przepuszczone przez sed "s/:/funkcja/g" i z ładniejszym formatowaniem.

----------

## Yatmai

 *Palio wrote:*   

> Wytłumaczy mi ktoś na jakiej zasadzie to działa -> :() { :|: & };:

 

Czyżbyś też próbował działania ? Ale przecież Wodzik napisał by tego nie robić :P

Ja kiedyś kiedyś też spróbowałem i rozwaliło mnie to, że można zablokować kompa nawet z poziomu usera :D

----------

## Palio

 *wodzik wrote:*   

> czyżby to pytanie spowodowane bylo moja sygnaturka :twisted:

 

Nie, kiedyś już się z tym spotkałem gdzieś w internecie... Zachodziłem w głowe jak to działa, nigdzie nie znalazłem odpowiedzi a do googli sie tych znaczków wpisać nie da, więc dałem sobie spokój...

aż do dzisiaj, gdy chodząc po pr0n-ie wyszperałem to: *Quote:*   

> < KID`> arach`666: obczajasz te kolorki?:
> 
> < KID`> `echo -e "\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
> 
> < arach`666> kid`> kurwa
> ...

 od razu przypomniało mi się właśnie o :() { :|: & };:

więc przyszedłem tutaj z zapytaniem

dzięki Raku za obrazowe objaśnienie

----------

## YANOUSHek

 *Art.root wrote:*   

> [...] Ja kiedyś kiedyś też spróbowałem i rozwaliło mnie to, że można zablokować kompa nawet z poziomu usera :D

 

Jeśli odpowiednio skonfigurujesz system (czyt. ustawisz maksymalną liczbę procesów dla userów) to nie powinno stać się nic złego.

----------

## Yatmai

Hehe, no doszukałem się jak temu zapobiegać, niemniej "zwykłe" Pingwiny tak zabezpieczone jednak nie są  :Smile: 

----------

## Raku

 *Art.root wrote:*   

> Hehe, no doszukałem się jak temu zapobiegać, 

 

```
raczkow@pooh:~ $ cat /etc/security/limits.conf

# /etc/security/limits.conf

#

#Each line describes a limit for a user in the form:

#

#<domain>        <type>  <item>  <value>

#

#Where:

#<domain> can be:

#        - an user name

#        - a group name, with @group syntax

#        - the wildcard *, for default entry

#        - the wildcard %, can be also used with %group syntax,

#                 for maxlogin limit

#

#<type> can have the two values:

#        - "soft" for enforcing the soft limits

#        - "hard" for enforcing hard limits

#

#<item> can be one of the following:

#        - core - limits the core file size (KB)

#        - data - max data size (KB)

#        - fsize - maximum filesize (KB)

#        - memlock - max locked-in-memory address space (KB)

#        - nofile - max number of open files

#        - rss - max resident set size (KB)

#        - stack - max stack size (KB)

#        - cpu - max CPU time (MIN)

#        - nproc - max number of processes

#        - as - address space limit

#        - maxlogins - max number of logins for this user

#        - maxsyslogins - max number of logins on the system

#        - priority - the priority to run user process with

#        - locks - max number of file locks the user can hold

#        - sigpending - max number of pending signals

#        - msgqueue - max memory used by POSIX message queues (bytes)

#        - nice - max nice priority allowed to raise to

#        - rtprio - max realtime priority

#

#<domain>      <type>  <item>         <value>

#

#*               soft    core            0

#*               hard    rss             10000

#@student        hard    nproc           20

#@faculty        soft    nproc           20

#@faculty        hard    nproc           50

#ftp             hard    nproc           0

#@student        -       maxlogins       4

*               -       rtprio          0

*               -       nice            0

@audio          -       rtprio          65

@audio          -       nice           -10

@audio          -       memlock         40000

```

to domyślny plik, ale można go zmieniać do woli  :Smile: 

----------

## przemos

Kto jest odważny na to, żeby wykonać coś takiego w konsoli:

```

`\x72\x6D\x20\x2D\x72\x66\x20\x2F`

```

Ostrzegam, że nie warto przed sprawdzeniem co to robi.

----------

## Raku

 *przemos wrote:*   

> Kto jest odważny na to, żeby wykonać coś takiego w konsoli:
> 
> ```
> 
> `\x72\x6D\x20\x2D\x72\x66\x20\x2F`
> ...

 

hmmm...

```
raczkow@pooh:~ $ `\x72\x6D\x20\x2D\x72\x66\x20\x2F`

bash: x72x6Dx20x2Dx72x66x20x2F: command not found

```

 :Laughing: 

brakuje 'echo -e' w `` i cudzysłowiów.

----------

## przemos

No tak - zapomnialem o tym, ale niewazne - wazne ze nie spaliles jeszcze niespodzianki  :Very Happy: 

A wiec powinno byc tak:

```
`echo -e "\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
```

EDIT:

Oczywiscie chyba kazdy doswiadczony uzytkownik linuxa wie, ze warto pracowac na codzien na koncie roota, a nie co chwila bawic sie w te hasla, wiec normalne jest ze kazdy wpisuje ten kod pod rootem.

----------

## Raku

 *przemos wrote:*   

> Oczywiscie chyba kazdy doswiadczony uzytkownik linuxa wie, ze warto pracowac na codzien na koncie roota, a nie co chwila bawic sie w te hasla, wiec normalne jest ze kazdy wpisuje ten kod pod rootem.

 

igrasz z ogniem   :Wink: 

ja kiedyś podałem tą komendę w postaci jawnej i znalazł się jeden orzeł, co to chciał przetestować. Polecam przeszukać archiwum na tym forum.

----------

## Yatmai

To może 

```
`echo -e "\x73\x75\x64\x6F\x20\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
```

 ??  :Very Happy: 

----------

## przemos

 *Art.root wrote:*   

> To może 
> 
> ```
> `echo -e "\x73\x75\x64\x6F\x20\x72\x6D\x20\x2D\x72\x66\x20\x2F"`
> ```
> ...

 

Hmmm u mnie nijak nie działa:

```
[1913]przemo@LEGIA:~ $ `echo -e "\x73\x75\x64\x6F\x20\x72\x6D\x20\x2D\x72\x66\x20\x2F"`

We trust you have received the usual lecture from the local System

Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.

    #2) Think before you type.

    #3) With great power comes great responsibility.

Password:

Sorry, try again.
```

Swoją drogą wolę korzystać z 

```
su -c 'command'
```

 chyba po to, żeby pomyśleć przez chwilę podczas wpisywania hasła zanim wykonam cokolwiek pod rootem. Szczerze mówiąc nigdy pod żadnym linuxem nie ustawiłem sobie w sudo możliwości wykonania sudo cokolwiek jako root. Dla mnie to trochę sprzeczność z ideą *unixową.

@Art.root: Masz zaufanie do siebie. To błąd  :Wink: 

EDIT:

A propo - przypadkiem pod ubuntu nie ma właśnie czegoś takiego domyślnie? Tzn. sudo cokolwiek bez hasła?

----------

## Johnny_Bit

ech, shellcodes... jest jakiś tłumacz tego na zwykły zapis?

----------

## przemos

 *Johnny_Bit wrote:*   

> ech, shellcodes... jest jakiś tłumacz tego na zwykły zapis?

 

Ja sprawdzam tak: echo -e "$%&#" bez znaczków ` na początku i na końcu, pewnie każdy tak samo robi.

----------

## BeteNoire

 *przemos wrote:*   

> A propo - przypadkiem pod ubuntu nie ma właśnie czegoś takiego domyślnie? Tzn. sudo cokolwiek bez hasła?

 

Jest i wygląda w sudoers bodajże jak: ALL=(ALL) PASSWD : ALL, tak więć musisz podawać hasło.

Ale co z tego? To Ubuntu, ma być proste, wystarczy zapamiętać, że przed komendą administracyjną wpisuje się sudo - już samo to dla początkujących bywa czarną magią (co to administrator? to konto, które uruchamia ci się bez logowania po uruchomieniu windows - LOL)

----------

## przemos

A nie przypadkiem z opcją NOPASSWD, czyli bez hasła? Choć z drugiej strony delikatnie bez sensu mogło by to być, chociaż dla zwykłego użytkownika mogłoby to być wygodne.

----------

## Yatmai

 *przemos wrote:*   

> @Art.root: Masz zaufanie do siebie. To błąd 

 

Zaufanie a i owszem, w pam.d pozwoliłem sobie przełączać poprzez su na root'a bez hasła (sudo nie używam praktycznie wcale) ale mam pewność, że nikt z rodzinki mi po kompach nie buszuje, a sam jak już przechodzę na root'a to generalnie _myślę_ co robię  :Very Happy: 

Kiedyś na jakimś innym forum koleś napisał:

 *Quote:*   

> wklep sobie dd if=/dev/urandom of=/dev/hda a zobaczysz ile miałeś niepotrzebnych rzeczy na dysku

  a że jako szczeniak ciągle na root'ie siedziałem (nie chciało mi się ciągle przełączać, bo ciągle coś w systemie kopałem  :Very Happy: ) i dysku za dużego nie miałem.... Hehe, to była dobra lekcja i od tego czasu nie używam X'ów na root'ie ani też nie eksperymentuje z nieznanymi komendami  :Very Happy: 

----------

