Sie sind auf Seite 1von 13

Como descompactar arquivos zip, rar,

tar.gz, bz2, tar.bz2 pelo terminal


Para descompactar estes formatos de arquivos os comandos so simples:
zip:
gunzip nomedoarquivo.zip
rar:
unrar x nomedoarquivo.rar
tar:
tar -xvf nomedoarquivo.tar
tar.gz:
tar -vzxf nomedoarquivo.tar.gz
bz2:
bunzip nomedoarquivo.bz2
tar.bz2:
tar -jxvf nomedoarquivo.tar.bz2

3.6.1. Visualizando e entendendo as permisses


Para saber se um programa executvel ou no, execute um ls -l e veja no lado
esquerdo se o arquivo tem um x nos seus argumentos, como no exemplo abaixo:
# ls -l
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxrwxr-x
dr-xr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
-rwxr--r--rw-rw-r--rw-rw-rw-

2
2
2
3
2
11
11
3
2
1
1
1

root
root
root
root
root
root
root
root
root
root
killer
hugo

root
root
root
root
root
root
root
root
root
root
users
visits

1024
1024
1024
8192
1024
2048
2048
1024
12288
57
2342
23412

Dec
Dec
Dec
Mar
Feb
Mar
Feb
Feb
Nov
Mar
Mar
Mar

23
31
6
11
27
11
23
23
2
10
10
09

15:22
05:48
15:51
10:17
13:52
10:19
19:08
19:13
11:25
03:44
03:12
22:22

bin
boot
cdrom
dev
dosa
etc
home
lib
lost+found
make-backup
teste.txt
teste2.txt

4.3. Manipulao de usurios


ndice
4.3.1. Tornando um usurio comum em root
4.3.2. Grupos de usurios
Como voc j deve saber, o Linux um sistema multi-usurio. Ento claro que no s
pode existir um usurio usando o sistema. Uma primeira coisa que possamos dizer que
o Linux no pode de alguma maneira ser usada sem estar sendo um usurio. O usurio
root o administrador do sistema e ele quem voc vai usar primeiro para criar outros
usurios depois (a no ser que voc tenha criado um usurio comum durante a
instalao do seu Linux).
Antes de mais nada, fique sabendo que o root um usurio especial, ele pode fazer
TUDO em seu sistema, no importa o que acontecer, ele faz, ao contrrio dos usurios
comuns, que tm restries. Se voc j instalou algum Linux, voc ver que a primeira
coisa que voc ir fazer antes de usar o sistema se logar como root, ou seja, preencher
aquele campo login: com o usurio root. Mas a por alguma razo voc quer mudar de
usurio, ou criar outro (algumas distribuies j pedem pra criar na instalao), ou
qualquer coisa do tipo, ento voc se pergunta: "Como?"
H um comando especfico para isto. Este comando o adduser ou useradd.
Dependendo da distribuio, o comando adduser vai ser apenas um comando igual ao
useradd, ou ento um script interativo que ir lhe fazer perguntas, voc ir respondendo
e ento o script criar um usurio no sistema para voc.
No caso do comando adduser ser um comando mesmo, voc poder utilizar da seguinte
forma:
# adduser hugo
# passwd hugo

Isso ir respectivamente criar um usurio padro chamado hugo e depois o comando


passwd definir uma senha para este usurio recm-criado. Voc pode especificar outros
parmetros para o usurio, como no comando a seguir:
# adduser hugo -d /var/usuarios/hugo -s /dev/null

Com estes parmetros, especifiquei que o usurio hugo ter como diretrio home o
/var/usuarios/hugo e como shell o /dev/null (ou seja, no ter shell). Sem estes
parmetros, o diretrio home seria /home/hugo e o shell seria /bin/bash.
Vamos entender agora como este comando funciona, pois uma coisa essencial que
todos deveriam saber em relao ao sistema Linux. Cada um desses programas
escrevem o usurio no arquivo de configurao do Linux referente aos usurios do
sistema. Este arquivo o /etc/passwd. Cada linha deste arquivo um usurio
cadastrado no sistema. Com as informaes que vou lhe dar aqui, voc pode muito bem
criar uma conta sem usar estes programas/scripts citados acima.

O arquivo /etc/passwd formado por linhas onde cada linha um usurio, como falei
acima, ento vamos aprender a montar cada linha desta. Vou pegar um exemplo para
vocs:
hugo:x:1001:100:Hugo Cisneiros:/home/hugo:/bin/bash

Exemplo 4.5. Exemplo de linha do /etc/passwd


Vamos dividir esta linha em campos, onde cada um separado por : (dois pontos). Olhe
s:
Campo

Descrio

hugo

Login do Usurio, aqui voc pode colocar o nome que quiser com at 8
caracteres.

Aqui diz que a senha est no arquivo /etc/shadow. Se estivesse *, a conta


estaria desabilitada e se estivesse sem nada (::), a conta no teria uma
senha.

1001

UID (User IDentification), o nmero de identificao do usurio.

100

GID (Group IDentification), o nmero de identificao do grupo do


usurio.

Hugo
Cisneiros

Comentrios sobre o usurio, como por exemplo nome, localizao,


telefone, fofocas da vida do cara, etc.

/home/hugo

O diretrio HOME do usurio, ou seja, o diretrio pertencente a ele.


Geralmente estes diretrios esto sempre no /home.

/bin/bash

Shell do usurio, ou seja, o programa que ir interpretar os comandos que


o usurio executar.

Tabela 4.3. Campos de Usurio no /etc/passwd


Nota
O /etc/shadow um arquivo que contm a senha do usurio criptografada, se
algum tiver posse dela, esta pessoa pode muito bem comparar as senhas com uma
lista de palavras e pode descobrir as senhas dos usurios. Felizmente este arquivo
est muito bem protegido pelo sistema :) S o root pode v-lo e edit-lo!
Bem, legal, aprendi como adicionar um usurio, mas como fao para remov-lo?
Simples, voc pode apagar a linha referente a ele no /etc/passwd e no /etc/shadow e
os seus arquivos, ou simplesmente digitar o seguinte comando:
# userdel usuario

Combine com a opo -r para remover junto o diretrio HOME do usurio. Lembre-se
dos backups :P

4.3.1. Tornando um usurio comum em root


Ahhhhh? Voc quer mais? O qu? Quer deixar um usurio normal como se fosse root?
Ento vamos l que no temos nada a perder! O root possui o UID e o GID igual 0
(zero) e um usurio comum no. Se ns foramos a mudana do UID e GID de um
usurio para 0, ele ficaria como se fosse o root! Por exemplo, eu tenho a linha do
usurio no /etc/passwd e de:
hugo:x:1001:100:Hugo Cisneiros:/home/hugo:/bin/bash

Para:
hugo:x:0:0:Hugo Cisneiros:/home/hugo:/bin/bash
^ ^

Pronto, o usurio hugo vai ser tambm o root do sistema, o administrador do sistema, o
deus do sistema, etc.
Aviso
No muito bom ficar usando o usurio root. Este usurio somente para a
administrao do sistema, ento eu recomendo voc a usar sempre um usurio
normal: ser da plebe :) E se for precisar usar o root, basta apenas logar como ele ou
utilizar o comando:
$ su -

E depois que voc fornecer a senha de root, se tornar o prprio deus! A razo para
este tipo de prtica que a chance de voc fazer besteira ou executar algum
programa que faz besteira pra voc diminui bastante. Alm disso, se algum
programa tiver algum bug, o risco dele ser explorado para estragar seu sistema
diminui bastante quando no se usa root. Por isso vrios servios do Linux rodam
com usurios especficos.

4.3.2. Grupos de usurios


Outro arquivo que tem muito haver com os usurios no Linux o /etc/group. Ele
contm as definies de cada grupo, como por exemplo: seus nomes, GIDs e usurios
adicionais que pertencem ele. Voc adicionando uma linha neste arquivo estar
criando um novo grupo. Vamos criar aqui um novo grupo no /etc/group:
metal:x:666:hugo,schneider,eitch

Exemplo 4.6. Exemplo de linha do /etc/group


Adicionando esta linha acima no arquivo /etc/group criar um novo grupo: com o
nome metal, o GID 666 e como usurios adicionais pertencentes ele: hugo, schneider
e eitch. Fcil no?
No? Ento se quiser voc tambm pode utilizar o comando groupadd da seguinte
forma:

# groupadd -g 666 metal

Isso ir criar o grupo metal com o nmero GID 666. Para adicionar os usurios, voc
ter que editar o arquivo e adicionar l na linha criada :-)

No exemplo acima todos os arquivos tem como dono o root e como grupo-dono
tambm o root, com exceo do teste.txt que o dono killer e o grupo users e
tambm teste2.doc, no qual hugo o dono e o grupo visits tambm dono. Como
voc pode ver do lado esquerdo de cada arquivo/diretrio existe um srie de letras r, w,
x ou d! Vamos ver o que representa cada uma delas:
drwxrwxrwx
0111222333

No caso acima, a primeira coluna significa (nmero 0) se o nome listado um diretrio


ou no, caso no seja um diretrio ele ser exibido da seguinte maneira:
-rwxr--r-1 root
root
57 Mar 10 03:44 make-backup
\--------> No contm a letra 'd', no diretrio e sim arquivo

O exemplo abaixo mostra o que seria um diretrio:


drwxr--r-1 root
root
1 Mar 10 01:12 bin
\----------> Contm a letra 'd' na primeira coluna, um diretrio

Tambm h casos em que no lugar do d, aparecem outras letras que indicam outros tipos
de arquivos. A letra l significa que um link simblico, as letras c e b correspondem
dispositivos (/dev). Veja alguns exemplos abaixo:
crw-rw---brw-rw---lrwxrwxrwx
/dev/hdd

1 hugo
2 hugo
1 root

audio
cdrom
root

14,
22,

4 Dec 2 1999 audio


64 May 5 1998 hdd
8 Oct 17 22:53 cdrom ->

Continuando, na segunda coluna (nmeros 1 de acordo com o exemplo mais acima)


temos as definies para o dono do arquivo, como mostra o exemplo:
-rwxr--r-1 killer
users
1231 Mar 09 12:12 teste.txt
||\--------> O dono do arquivo (killer) pode executar o arquivo,
x=executable!
|\---------> O dono do arquivo (killer) pode gravar no arquivo,
w=writable!

\----------> O dono do arquivo (killer) pode ler o arquivo,


r=readable!

Seguindo, na terceira coluna (nmeros 2 de acordo com o exemplo l em cima) temos as


definies para o grupo que dono do arquivo, como mostra o exemplo:
-r--rwxr-1 fernando visits
||\-----> O grupo dono do arquivo
arquivo!
|\------> O grupo dono do arquivo
\-------> O grupo dono do arquivo

212 Mar 01 12:42 exemplo.sxi


(visits) pode executar o
(visits) pode gravar no arquivo!
(visits) pode ler o arquivo!

Finalmente, temos a quarta coluna (composto pelos nmeros 3), essa coluna se refere s
permisses para todos os outros usurios do sistema, sem ser os donos e grupos-donos
dos mesmos, exemplo:
-r--r--rwx
1 fernando visits
1231 Mar 03 12:42 exemplo2.doc
||\--> Todos os usurios (exceto fernando e usurios do grupo
visits)
||
tem permisso para acessar o arquivo!
|\---> Todos os usurios (exceto fernando e usurios do grupo
visits)
|
tem permisso para gravar no arquivo!
\----> Todos os usurios (exceto fernando e usurios do grupo
visits)
tem permisso para ler o arquivo!

Quando nos referimos a diretrio ao invs de arquivos, o flag x (executvel) diz se o


diretrio ou no acessvel, j que no podemos executar diretrios... Exemplo:
drwxr--r-- 1 root
root
2134 Mar 01 12:54 exemplo3
||||| \----> Todos os usurios podem ler o interior do diretrio, mas
no
|||||
podem usar o comando 'cd' para entrar nele, pois no
existe
|||||
o FLAG 'x' para a quarta coluna!
||||\-------> Usurios do grupo 'root' podem ler o interior do
diretrio,
||||
mas tambm no podem usar 'cd' para entrar no diretrio!
|||\--------> O usurio 'root' pode usar 'cd' para entrar no
diretrio!
||\---------> O usurio 'root' pode gravar arquivos nesse diretrio!
|\----------> O usurio 'root' pode ler o interior desse diretrio!
\-----------> Indica que o nome listado um diretrio!

3.6.2. Mudando as permisses com o chmod


O comando chmod pode ser usado para mudar os flags rwx dos arquivos e/ou diretrios,
a sintaxe bsica do comando :

chmod [ugoa]{-+}[rwx] <nome_do_arquivo_ou_diretrio>

Ento vamos a um exemplo. Se eu quero mudar a permisso para o dono do arquivo


(u=user) poder ler e gravar (rw) no arquivo1.txt, fao o seguinte:
$ chmod u+rw arquivo1.txt

Caso voc queira desfazer o comando, voc faria: chmod u-rw arquivo1.txt. Como
se v, o + ou - define se as flags sero ativadas ou desativadas! Outros exemplos:
$ chmod a+r arquivo2.txt

Acima, todos os usurios (a=all) podem ler o arquivo2.txt. Outro exemplo:


$ chmod o+w arquivo3.txt

Neste caso outros usurios (o=others) sem ser o dono e o grupo dono do arquivo,
podem gravar no arquivo3.txt. Outro exemplo:
$ chmod g+x netscape

Acima, o grupo-dono do arquivo (g=group) pode executar o arquivo netscape.


O comando chmod tambm pode ser usado com nmeros, em vez das flags. Este mtodo
chamado de octal, veja o exemplo abaixo:
$ chmod 664 arquivo.txt

O que quer dizer cada um desses nmeros? Veja abaixo:


Nmero

Significado

Nenhuma permisso

Permisso para executar

Permisso para gravar

Permisso para gravar e executar

Permisso para ler

Permisso para ler e executar

Permisso para ler e gravar

Permisso para ler, gravar e executar

Tabela 3.12. Permisses em Octal


No exemplo o comando informou que o arquivo.txt pode ser lido e gravado pelo seu
dono (numero 6 na primeira coluna), informou que pode tambm ser lido e gravado
pelos usurios que compem o grupo-dono (nmero 6 na segunda coluna) e informou
que pode ser lido por todos os outros usurios do sistema (nmero 4 na ltima coluna).

3.6.3. Mudando o dono dos arquivos com o chown


O comando chown simples e pode ser usado para mudar o dono e o grupo dono de um
arquivo/diretrio. E usado da seguinte maneira:
chown <usuario.grupo> <arquivo_ou_diretorio>

Como exemplo, vamos definir que um arquivo teste4.txt ter como dono killer e
como grupo users:
$ chown killer.users teste4.txt

Outros exemplos:
$ chown mrdvs.visits teste5.txt
$ chown hugo.users teste6.txt

4.4. Agendando tarefas com o crontab


O cron um programa de agendamento de tarefas. Com ele voc pode programar para
ser executado qualquer coisa numa certa periodicidade ou at mesmo num exato dia,
numa exata hora. Um uso bem comum do cron o agendamento de tarefas
administrativas de manuteno do seu sistema, como por exemplo, procura por links
simblicos quebrados, anlise de segurana do sistema, backup, entre outros. Estas
tarefas so programadas para todo dia, toda semana ou todo ms, serem
automaticamente executadas atravs do crontab e um script shell comum. A
configurao do cron geralmente chamada de crontab.
Os sistemas Linux possuem o cron sempre presente. Pelo menos eu nunca vi nenhuma
distribuio que no inclusse o to til cron. A configurao tem duas partes: Uma
global e uma por usurio. Na global, que o root quem controla, o crontab pode ser
configurado para executar qualquer tarefa de qualquer lugar, como qualquer usurio. J
na parte por usurio, cada usurio tem seu prprio crontab, sendo restringido penas ao
que o usurio pode fazer (e no tudo, como o caso do root).
Para configurar um crontab por usurio, utiliza-se o comando crontab, junto com um
parmetro, dependendo do que voc quiser fazer. Abaixo uma relao:
Comando

Funo

crontab -e Edita o crontab atual do usurio.


crontab -l Exibe o atual contedo do crontab do usurio.
crontab -r Remove o crontab do usurio.
Tabela 4.4. Parmetros do comando crontab

Se voc quiser verificar os arquivos crontab dos usurios, voc precisar ser root. O
comando crontab coloca os arquivos dos usurios no diretrio
/var/spool/cron/usuario, onde usuario corresponde ao usurio dono do arquivo
crontab.
Agora se voc quiser editar o crontab global, este fica no arquivo /etc/crontab e s
pode ser manipulado pelo root. E agora que j sabemos onde ficam os arquivos de
configurao, vamos estudar o formato da linha do crontab, que quem vai dizer o que
executar e quando. Vamos ver um exemplo:
0 4 * * * who

Exemplo 4.7. Exemplo de linha do crontab


Ento como se pode ver, a linha dividida em 6 campos separados por tabs ou espao:
Campo

Funo

1o.

Minuto

2o.

Hora

3o.

Dia do ms

4o.

Ms

5o.

Dia da semana

6o.

Programa pra execuo

Tabela 4.5. Campos das linhas do arquivo crontab


Todos estes campos, sem contar com o 6o., so especificados por nmeros. Veja a tabela
abaixo para os valores destes campos:
Campo

Funo

Minuto

0-59

Hora

0-23

Dia do ms

1-31

Ms

1-12

Dia da semana 0-6 (o 0 domingo, 1 segunda e por a vai)


Tabela 4.6. Valores dos campos das linhas do arquivo crontab
Ento o que nosso primeiro exemplo estava dizendo? A linha est dizendo: "Execute o
comando who todo dia de todo ms sendo o dia qualquer dia da semana, s 4 horas e 0
minutos.". Vamos pegar mais exemplos para analisar:
1,21,41 * * * * echo "Meu crontab rodou mesmo!"

Exemplo 4.8. Exemplo de linha do crontab


Aqui est dizendo: "Executar o comando do sexto campo toda hora, todo dia, nos
minutos 1, 21 e 41". Mais outro:
30 4 * * 1 rm -rf /tmp/*

Exemplo 4.9. Exemplo de linha do crontab


Aqui est dizendo: "Apagar todo contedo do diretrio /tmp toda segunda-feira, s 4:30
da manh". Mais outro:
45 19 1,15 * * /usr/local/bin/backup

Exemplo 4.10. Exemplo de linha do crontab


Aqui est dizendo: "Executar o comando backup todo dia 1 e 15 s 19:45.".
E assim voc pode ir montando inmeros jeitos de agendamento possvel. No arquivo
do crontab global, o sexto campo pode ser substitudo pelo nome do usurio e um
stimo campo adicionado com o programa para a execuo, como mostro no exemplo a
seguir:
0-59/5 * * * * root /usr/bin/mrtg /etc/mrtg/mrtg.cfg

Exemplo 4.11. Exemplo de linha do crontab


Aqui est dizendo: "Executar o mrtg como usurio root, durante 5 e 5 minutos dos
minutos 0-59. Ou seja, executar de 5 em 5 minutos o mrtg sempre.".
Em alguma distribuies, os agendamentos mais comuns esto programados para serem
executados. Veja as linhas abaixo:
01
*
*
/etc/cron.hourly
02
4
*
22
4
*
/etc/cron.weekly
42
4
1
/etc/cron.monthly

root

run-parts

*
*

*
0

root
root

run-parts /etc/cron.daily
run-parts

root

run-parts

O comando run-parts executa todos os scripts executveis dentro de um certo


diretrio. Ento com essas linhas, temos diretrios programados para executar
programas de hora em hora, diariamente, semanalmente ou mensalmente. Abaixo a
tabela:

Diretrio

Perodo

/etc/cron.hourly

De hora em hora

/etc/cron.daily

Diariamente

/etc/cron.weekly Semanalmente
/etc/cron.monthly Mensalmente
Tabela 4.7. Diretrios para o programa runparts do crontab
Ento todos os arquivos executveis dentro de cada diretrio sero executados no seu
correspondente perodo. Ou seja, posso colocar um certo contedo no arquivo
/etc/cron.daily/teste, depois torn-lo executvel atravs do comando chmod
+x /etc/cron.daily/teste e ento ele ser executado todo dia as 4:02 da manh.
Bem isso! Agora voc j pode programar suas tarefas para serem automaticamente
executadas e te poupar muito trabalho manual :)

7.1. Programao em Shell-Script


Como voc j deve saber, a shell do Linux uma poderosa ferramenta que traz ao
usurio toda a flexibilidade dos sistemas Unix e todos seus comandos. No nosso caso,
usamos o bash em todo o procedimento desse manual, ento nada mais justo do que
explicarmos um pouco de desenvolvimento com scripts-shell do bash :)
Muita gente no sabe que o bash tem uma poderosa linguagem de script embutida nele.
Diversas pessoas utilizam-se desta linguagem para facilitar a realizao de inmeras
tarefas administrativas em um sistema Linux, ou at mesmo para criar seus prprios
programas! Para quem gosta de usar a criatividade para criar coisas e facilitar o uso do
sistema no dia-a-dia, o shell-script um prato cheio para comear.
Costumo indicar para quem est comeando programao dar uma olhada em shellscript. E fao isso porque o shell-script bastante simples, te d uma boa noo do
bsico da lgica de programao e te d resultados imediatos! Combinando todos os
comandos avanados do Linux, voc consegue fazer coisas bem teis e aprender
muito! :)
Voc poder criar scripts para automatizar as tarefas dirias de um servidor, para efetuar
backup automtico regularmente, procurar textos, criar formataes e muito mais!

7.1.1. Primeiros passos


Uma das vantagens do shell-script que ele no precisa ser compilado, ou seja, basta
apenas criar um arquivo texto qualquer e inserir comandos nele. Para dar a este arquivo
a definio de shell-script, teremos que incluir uma linha no comeo do arquivo:
#!/bin/bash

Essa linha diz ao interpretador de comandos para que quando o usurio executar o
arquivo, ele execute atravs do programa /bin/bash, significando ento que um script
shell! :)
Depois de colocada a linha, basta apenas tornar o arquivo executvel, utilizando o
comando chmod. Vamos seguir com um pequeno exemplo de um script shell que mostre
na tela: "Nossa, estou vivo!":
#!/bin/bash
echo 'Nossa! Estou vivo! Levantei da tumba! Yikes!'

Exemplo 7.1. Exemplo de script shell "Nossa, estou vivo!"


Fcil, hein? A primeira linha a gente j sabe pra que serve e a segunda linha mostrar na
tela a frase "Nossa! Estou vivo!", utilizando o comando echo, que serve justamente para
isso (mostrar coisas na tela). Como voc pde ver, todos os comandos que voc digita
diretamente na linha de comando, voc poder incluir no seu script shell, criando uma
srie de comandos e essa combinao de comandos que forma o chamado shell script.
Tente tambm dar o comando file arquivo e veja que a definio dele de BourneAgain Shell Script (Bash Script).
Para o arquivo poder se executvel, voc tem de atribuir o comando de executvel para
ele. E como citamos anteriormente, o comando chmod se encarrega disto:
$ chmod +x arquivo

Pronto, o arquivo poder ser executado com um simples ./arquivo.

7.1.2. Conceito de variveis em shell-script


Variveis so caracteres que armazenam dados, uma espcie de atalho. O bash
reconhece uma varivel quando ela comea com $, ou seja, a diferena entre palavra e
$palavra que a primeira uma palavra qualquer e a outra uma varivel. Para definir
uma varivel, utilizamos a seguinte sintaxe:
variavel="valor"

O "valor" ser atribudo "varivel". "Valor" pode ser uma frase, nmeros e at outras
variveis e comandos. O valor pode ser expressado entre as aspas (""), apstrofos ('') ou
crases (``). As aspas vo interpretar as variveis que estiverem dentro do valor, os
apstrofos lero o valor literalmente, sem interpretar nada e as crases vo interpretar um
comando e retornar a sua sada para a varivel. Vejamos exemplos para entender
melhor:
$ variavel="Eu estou logado como usurio $user"
$ echo $variavel
Eu estou logado como usurio cla
$ variavel='Eu estou logado como usurio $user'
$ echo $variavel

Eu estou logado como usurio $user


$ variavel="Meu diretrio atual o `pwd`"
$ echo $variavel
Meu diretrio atual o /home/cla

Se voc quiser criar um script em que o usurio deve interagir com ele, possvel que
voc queira que o prprio usurio defina uma varivel e para isso usamos o comando
read, que dar uma pausa no script e ficarar esperando o usurio digitar algum valor e
teclar Enter. Exemplo:
$ echo "Entre com o valor para a varivel: " ; read variavel

O usurio digita e tecla Enter, vamos supor que ele digitou a frase "o batima eh um
frutinha":
$ echo $variavel
o batima eh um frutinha

Das könnte Ihnen auch gefallen