SSSR - configure Samba no Damn Small Linux e DSL-N
Publicado por Isaac Luiz Angelo Castro 14/05/2009
[ Hits: 5.469 ]
Homepage: http://bitcoinrotator.pe.hu/
Download setup_smbserver_all.tar.gz
Configure o samba para Damn Small Linux (ainda em desenvolvimento, cerca de 800 linhas).
Detecta se o samba está instalado. Se não estiver, baixa e instala automaticamente. Com dialog com telas amigáveis do dialog e barras de progresso.
#!/bin/bash
#
# esse script
#
sversion="versao 0.8.85"
#
# Desativando no boot
# update-rc.d -f samba remove
# Ativando no boot
# update-rc.d -f samba defaults
# ativação do samba manual
# /etc/.d/samba start
# parando samba para configurar
# /etc/.d/samba stop
#comando para filtrar usuarios no sistema
# sed -e '\/*/D' /etc/shadow | sed -e '\/!/D'| cut -d : -f1 | grep usuario
#definindo variáveis
BACKTITLE="SMB SETUP SERVER , POR ISAAC ANGELO =<ISC>= SCRIPT DE CONFIGURACAO DO SAMBA "
T1=" SMB SETUP SERVER "
arqconf="/tmp/smb.conf"
ordir=`pwd`
chmod 666 /etc/samba/smb.conf
which /usr/sbin/nmbd |cut -d/ -f4-42>/tmp/var0101.txtsmb
which /usr/sbin/smbd |cut -d/ -f4-42>/tmp/var0102.txtsmb
var0101=`cut -f1 /tmp/var0101.txtsmb`
var0102=`cut -f1 /tmp/var0102.txtsmb`
#instalando temas no dialog
# embelezando
user100=`whoami`
if [ $user100 = "root" ]
then
HOME=/root
else
HOME=/home/$user100
fi
export DIALOGRC=$HOME/.dialog/default_theme_rc.cfg
#função para sair do script caso o usuário queira
run-time()
{
M1="ESTE E UM SCRIPT DE CONFIGURACAO DO SAMBA ! DESEJA CONTINUAR ?, ESCOLHA NAO PARA SAIR..."
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70
if [ $? = 1 ];then
clear
rm -f $arqconf
rm -f /tmp/*smb
/usr/sbin/nmbd
/usr/sbin/smbd
/usr/sbin/winbindd
samba start
clear
exit 0
fi
}
#loop para voltar ao inicio
loop()
{
M1="DESEJA SAIR DO SCRIPT? DIGITE NAO PARA VOLTAR AO INICIO... "
dialog --backtitle" $BACKTITLE" --title "$T1 " --yesno "M1" 10 70
if [ $? = 0 ]; then
exit 0
rm -f $arqconf
rm -f /tmp/*smb
/usr/sbin/nmbd
/usr/sbin/smbd
/usr/sbin/winbindd
samba start
else
run-time
fi
}
# iniciando a configuração
init-conf(){
M1="$sversion
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
|/\.....ESTE SCRIPT FOI ESCRITO POR ISAAC ANGELO...../\|
|\/__________________________________________________\/|
|/\...ELE TE AJUDARA A CONFIGURAR O SERVIDOR SAMBA.../\|
|\/.........ESCOLHA UM ITEM NA DA PROXIMA TELA.......\/|
|/\__________________________________________________/\|
|\/.........RESPONDA CANCELAR SE QUISER SAIR.........\/|
|/\................................................../\|
|\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/|
"
#pergunta que define se oservidor é ou nào padrão
dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 20 70
M1="ESCOLHA UMA DAS OPCOES ABAIXO :\n \n <> BASICA = E AUTOMATICA \n <> PERSONALIZADA = POSSIVEL ADIONAR COMPARTILHAMENTO PERSONALIZADOS \n \n "
rm -f /tmp/test1.txtsmb
dialog \
--backtitle "$BACKTITLE" \
--title "$T1" \
--menu "$M1" \
18 70 3 \
BASICA "CONFIGURACAO_BASICA" \
PERSONALIZADA 'CONFIGURACAO_PERSONALIZADA' \
SAIR 'SAIR' 2>/tmp/test1.txtsmb
test1=`head -n 1 /tmp/test1.txtsmb | cut -f1`
case $test1 in
BASICA)
clear
# parando samba para configurar
samba stop
killall nmbd
killall smbd
killall winbindd
smb-padrao
;;
PERSONALIZADA)
clear
# parando samba para configurar
samba stop
killall nmbd
killall smbd
killall winbindd
smb-server
;;
*)
run-time
;;
esac
}
smb-padrao(){
ordir=`pwd`
cd /etc/samba
gzip -c smb.conf > smb.conf-$$-.back.gz &
cd $ordir
#sudo rm -f /etc/samba/smb.conf
rm -f $arqconf
#read barbom
NomeComp="Servidor"
PastaComp="/mnt/servidor"
NomeComp1="Arquivos"
PastaComp1="/mnt/arquivos"
sudo cat <<isc> $arqconf
# Arquivo de Configuração do Samba
# baseado no arquivo de configuração do kurumin .
# gerado por SMB SETUP SERVER $sversion
# Seção Globals:
# Aqui vão parâmetros gerais, como o nome da máquina e grupo de trabalho.
[global]
workgroup = HOME
netbios name = SERVIDOR
server string = %h server (Samba %v)
encrypt passwords = Yes
security = user
os level = 100
log file = /var/log/samba/log.%m
preferred master = yes
domain master = no
local master = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
[homes]
comment = Home Directories
create mask = 0700
directory mask = 0700
browseable = No
[printers]
comment = Todas as Impressoras
path = /var/spool/samba
guest ok = yes
public = yes
printable = yes
browseable = yes
use client driver = yes
isc
cd /tmp
NomeComp="Servidor"
PastaComp="/mnt/servidor"
NomeComp1="Arquivos"
PastaComp1="/mnt/arquivos"
echo "# Adicionando pasta compartilhada...">> $arqconf
echo "">> $arqconf
echo "[$NomeComp]">> $arqconf
echo "">> $arqconf
echo " path = $PastaComp ">> $arqconf
echo "browseable = yes ">> $arqconf
echo "writeble = yes">> $arqconf
echo "read only = no ">> $arqconf
echo " directory mask = 0770">> $arqconf
echo " create mask = 0770">> $arqconf
echo " force create mode = 0770">> $arqconf
echo " force directory mode = 0770">> $arqconf
echo "">> $arqconf
echo "# Adicionando pasta compartilhada...">> $arqconf
echo "">> $arqconf
echo "[$NomeComp1]">> $arqconf
echo "">> $arqconf
echo " path = $PastaComp ">> $arqconf
echo "browseable = yes ">> $arqconf
echo "writeble = yes">> $arqconf
echo "read only = no ">> $arqconf
echo " directory mask = 0770">> $arqconf
echo " create mask = 0770">> $arqconf
echo " force create mode = 0770">> $arqconf
echo " force directory mode = 0770">> $arqconf
echo "">> $arqconf
mkdir $PastaComp
mkdir $PastaComp1
sudo chmod 666 /etc/samba/smb.conf
sudo rm -f /etc/samba/smb.conf
sudo tar -cf - smb.conf | tar -xf - -C /etc/samba
#cp -a --reply=yes smb.conf /etc/samba/
cd $ordir
clear
(echo 33 ; sleep 1
echo 44 ; sleep 1
echo 66 ; sleep 1
echo 100) |
dialog --backtitle "$BACKTITLE" \
--title " $T1 " \
--gauge 'CRIANDO CONFIGURACAO BASICA, AGUARDE...' \
8 70 0
#M1=" O SCRIPT TERMINOU A CONFIGURAÇÃO PADRÃO, DESEJA INICIAR O SAMBA AGORA. "
#dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 50
#if [ $? = 0 ] ; then
# ativação do samba manual
#/etc/init.d/samba start
#fi
add-nome
}
# função para escrita do arquivo de configuração do samba sem pdc
smb-server()
{
sudo cat<<isc> $arqconf
# Arquivo de Configuração do Samba
# baseado no arquivo de configuração do kurumin .
# gerado por SMB SETUP SERVER $sversion
# Seção Globals:
# Aqui vão parâmetros gerais, como o nome da máquina e grupo de trabalho.
[global]
workgroup = HOME
netbios name = SERVIDOR
server string = %h server (Samba %v)
encrypt passwords = Yes
security = user
os level = 100
log file = /var/log/samba/log.%m
preferred master = yes
domain master = no
local master = yes
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192
[printers]
comment = Todas as Impressoras
path = /var/spool/samba
guest ok = yes
public = yes
printable = yes
browseable = yes
use client driver = yes
isc
#ff escavusca
#sudo chmod 666 /etc/samba/smb.conf
#sudo rm -f /etc/samba/smb.conf
#sudo tar -cf - smb.conf | tar -xf - -C /etc/samba
#cd $ordir
init-comp
}
#função que possibilita o usuario escolher se que configurar o compartilhamento manualmento ou pelo script
init-comp(){
clear
echo "PARANDO SERVICO DO SAMBA "
dialog --backtitle "$BACKTITLE" --title " $T1 " --infobox " PARANDO SERVICO DO SAMBA ! " 10 70
samba stop
killall nmbd
killall smbd
killall winbindd
clear
(echo 31 ; sleep 1
echo 44 ; sleep 1
echo 68 ; sleep 1
echo 100; sleep 1) |
dialog --backtitle "$BACKTITLE" \
--title " $T1 " \
--gauge 'PREPARANDO CONFIGURACAO, AGUARDE...' \
8 70 0
M1="
=====================================================
||.........ADICIONANDO COMPARTILHAMENTO............||
||=================================================||
||.......A CONFIGURACAO BASICA FOI FEITA...........||
|| PASSEMOS A CONFIGURACAO DOS COMPARTILHAMENTOS .||
||=================================================||
||............RESPONDA NAO SE QUISER...............||
||............FAZER ISSO MANUALMENTE...............||
=====================================================
"
#pergunta que define se oservidor é ou nào padrão
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 20 70
while [ $? = 0 ] ; do
dados
compadd
M1=" DESEJA CRIAR OUTRO COMPARTILHAMENTO ? "
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70
done
if [ $? = 1 ]; then
ordir=`pwd`
cd /tmp
sudo chmod 666 /etc/samba/smb.conf
sudo rm -f /etc/samba/smb.conf
sudo tar -cf - smb.conf | tar -xf - -C /etc/samba
#cp -a --reply=yes smb.conf /etc/samba/
cd $ordir
add-nome
fi
}
# função para escrita no arquivo de configuração do samba : criando compartilhamento
compadd()
{
chmod 666 /etc/samba/smb.conf
cd /tmp/
echo "# pasta(s) compartilhada(s)...">> $arqconf
echo "">> $arqconf
echo "[$NomeComp]">> $arqconf
echo " path = $PastaComp ">> $arqconf
echo "avaliable = $R1">> $arqconf
echo "browseable = $R2 ">> $arqconf
echo "writeble = $R3">> $arqconf
echo "">> $arqconf
#echo "=====debug"
#read isc
clear
(echo 38 ; sleep 1
echo 45 ; sleep 1
echo 71 ; sleep 1
echo 100) |
dialog --backtitle "$BACKTITLE" \
--title " $T1 " \
--gauge 'ADICIONANDO COMPARTILHAMENTO(S), AGUARDE...' \
8 70 0
}
# funções para determinar opções configuraveis do arquivo
dados(){
rm -f /tmp/nome.txtsmb
rm -f /tmp/pasta.txtsmb
dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UM NOME PARA O COMPARTILHAMENTO... " 10 70 2>/tmp/nome.txtsmb
if [ $? = 1 ] ;then
run-time
fi
dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UMA PASTA PARA O COMPARTILHAMENTO... " 10 70 2>/tmp/pasta.txtsmb
if [ $? = 1 ];then
run-time
fi
NomeComp=`cat /tmp/nome.txtsmb| cut -f1`
PastaComp=`cat /tmp/pasta.txtsmb| cut -f1`
M1="DESEJA CRIAR A PASTA DO COMPARTILHAMENTO? "
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70
if [ $? = 0 ] ;then
rm -f /tmp/pasta.logsmb
mkdir $PastaComp 2>/tmp/pasta.logsmb &
clear
(echo 33 ; sleep 1
echo 44 ; sleep 1
echo 66 ; sleep 1
echo 100) |
dialog --backtitle "$BACKTITLE" \
--title " $T1 " \
--gauge 'CRIANDO DIRETORIO, AGUARDE...' \
8 70 0
verificar=`cat /tmp/pasta.logsmb |cut -d ":" -f3-3 | cut -d " " -f 3-3`
if [ $verificar = "existe" ]; then
M1=" A PASTA JA EXISTE! <<<<>>>> VERIFIQUE SE A PASTA NAO ESTA SENDO USADA POR OUTRO COMPARTILHAMENTO.! "
dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70
fi
fi
M1=" AVALIABLE <<<<>>>> GERALMENTE SEM ESSA OPCAO ABILITADA O SAMBA NAO FUNCIONA, DIGITA SIM(RECOMENDADO) ... "
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70
if [ $? = 0 ]; then
R1=`echo "yes"`
else
R1=`echo "no"`
fi
M1="DESEJA QUE ESTE COMPARTILHAMENTO SEJA NAVEGAVEL ? "
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70
if [ $? = 0 ]; then
R2=`echo "yes"`
else
R2=`echo "no"`
fi
M1=" DESEJA ABILITAR ESCRITA PARA ESTE COMPARTILHAMENTO ?"
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70
if [ $? = 0 ]; then
R3=`echo "yes"`
else
R3=`echo "no"`
fi
}
# verificando se o usuario realmente quer adicionar usuarios no sistema e no samba
add-nome(){
M1="
______________________________________________
<>......ADICIONANDO USUARIOS NO SAMBA.......<>
<><><><><><><><><><><><><><><><><><><><><><><>
<>....PARA ADICIONAR USUARIOS NO SAMBA......<>
<> E NECESSARIO QUE OS USUARIOS ESTEJAM.....<>
<>..........CADASTRADOS NO SISTEMA..........<>
<><><><><><><><><><><><><><><><><><><><><><><>
<>..........RESPONDA NAO SE QUISER..........<>
<>..........FAZER ISSO MANUALMENTE..........<>
---------------------------------------------- "
#pergunta que define se oservidor é ou nào padrão
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 20 70
if [ $? = 1 ]; then
loop
fi
add-nome-system
}
# adicionando usuários no sistema
add-nome-system(){
rm -f /tmp/nome.txtsmb
dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UM NOME PARA ADICIONAR USUARIO.NO SISTEMA. " 10 70 2>/tmp/nome.txtsmb
if [ $? = 1 ] ; then
add-nome
fi
dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA : UMA SENHA PARA O NOVO USUARIO.NO SISTEMA. " 10 70 2>/tmp/senha.txtsmb
if [ $? = 1 ] ; then
add-nome-system
fi
dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA NOVAMENTE : UMA SENHA PARA O NOVO USUARIO.NO SISTEMA. " 10 70 2>/tmp/senha1.txtsmb
if [ $? = 1 ] ; then
add-nome-system
fi
user1=`cat /tmp/nome.txtsmb| cut -f1`
usersenha=`cat /tmp/senha.txtsmb| cut -f1`
usersenha1=`cat /tmp/senha1.txtsmb| cut -f1`
if [ "$usersenha" != "$usersenha1" ] ; then
dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " AS SENHAS DIGITADAS NAO SAO IGUAIS : INSIRA NOVAMENTE " 10 70
add-nome-system
fi
userdel $user1
useradd $user1 -p $usersenha
#passwd $user1<< isc
#$usersenha
#$usersenha
isc
dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " O USUARIO ==>> $user1 <<== FOI ADICIONADO NO <<SISTEMA>> " 10 70
add-nome-samba
}
#adicionando usuários no samba
add-nome-samba (){
rm -f /tmp/nome1.txtsmb
dialog --backtitle "$BACKTITLE" --title " $T1 " --inputbox " INSIRA: UM NOME PARA ADICIONAR USUARIO.NO >>SAMBA<<. " 10 70 2>/tmp/nome1.txtsmb
if [ $? = 1 ] ; then
add-nome
fi
dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA : UMA SENHA PARA O NOVO USUARIO.NO <>SAMBA<>. " 10 70 2>/tmp/senha0.txtsmb
if [ $? = 1 ] ; then
add-nome-samba
fi
dialog --backtitle "$BACKTITLE" --title " $T1 " --passwordbox " INSIRA NOVAMENTE : UMA SENHA PARA O NOVO USUARIO.NO SAMBA. " 10 70 2>/tmp/senha01.txtsmb
if [ $? = 1 ] ; then
add-nome-samba
fi
user01=`cat /tmp/nome1.txtsmb| cut -f1`
usersenha0=`cat /tmp/senha0.txtsmb| cut -f1`
usersenha01=`cat /tmp/senha01.txtsmb| cut -f1`
if [ "$usersenha0" != "$usersenha01" ] ; then
dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " AS SENHAS DIGITADAS NAO SAO IGUAIS : INSIRA NOVAMENTE " 10 70
add-nome-samba
fi
smbpasswd -a -s $user01<< isc
$usersenha0
$usersenha0
isc
dialog --backtitle "$BACKTITLE" --title " $T1 " --msgbox " O USUARIO ==>> $user01 <<== FOI ADICIONADO NO SAMBA " 10 70
add-nome
}
#funcao para testar se os modulos do samba estão instalados caso nao esta ele instala.
testando(){
MSG="COMO DESEJA INSTALAR O SAMBA ?"
rm -f /tmp/dia.log01smb
dialog --backtitle "$BACKTITLE" --menu "$MSG" 10 70 3 1 FAZER_DOWNLOAD_DO_SAMBA 2 INSTALAR_DA_PASTA 3 CONTINUAR_SETUP-SMBSERVER 2>/tmp/dia.log01smb
test=`cut -f1 /tmp/dia.log01smb`
case $test in
1)
M1="
ESSE PARTE SCRIPT BAIXA E INSTALAR O SAMBA VERAO 2.2.9 NO DSL-N,
DESEJA CONTINUAR ?"
ordir=`pwd`
dialog --backtitle "$BACKTITLE" --title "$T1" --yesno "$M1" 10 70
if [ $? = 1 ] ; then
exit 0
fi
cd /tmp/
rm -f samba.dsl*
rm -f wget.log
clear
echo " <===FAZENDO DOWNLOAD DO SAMBA===>"
echo""
#wget -c -o /tmp/wget.log http://linorg.usp.br/www.broffice.org/stable/3.0.1/BrOo_3.0.1_LinuxIntel_install_pt-BR.tar.gz -b
wget -o /tmp/wget.logsmb ftp://ibiblio.org/pub/Linux/distributions/damnsmall/mydsl/net/samba.dsl -b
M1="
<===FAZENDO DOWNLOAD DO SAMBA===>
"
porcentagem=1
(sleep 5
while [ "$porcentagem" != "00" ]; do
porcentagem=`cat /tmp/wget.logsmb |cut -c63-64|tail -n 4 | head -n 1 `
echo $porcentagem
done
echo 100
)| dialog --title "$TI" --gauge "$M1" 10 70 0
mv /tmp/samba.dsl /tmp/samba.tar.gz
tar -xzf samba.tar.gz -C /
rm -f /tmp/samba.tar.gz
M1="
===>INSTALANDO SAMBA V.2.2.9<===
"
cd $ordir
(echo 20
sleep 1
echo 45
echo 56
sleep 2
echo 67
echo 78
sleep 1
echo 86
sleep 1
echo 98
sleep 1
echo 100
)| dialog --title "$TI" --gauge "$M1" 10 70 2
M1="
:-) = :-) = :-) = :-) = :-) = :-) = :-)
A INSTALACAO OCORREU COM SUCESSO !
"
dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70
init-conf
;;
2)
ordir=`pwd`
M1="APONTE A PASTA AONDE ESTA O ARQUIVO <<>>.dsl<<>>"
rm -f /tmp/arq00.txtsmb
dialog --backtitle "$BACKTITLE" --title "$M1" --inputbox $ordir/ 10 70 2>/tmp/arq00.txtsmb
arq00=`cut -f1 /tmp/arq00.txtsmb`
arq01=`echo $arq00/samba.dsl`
DIA=`dialog`
rm -f /tmp/tarlog
#tar -xzf $arq01 -C / 2>/tmp/tarlog
#rm -f /tmp/samba.tar.gz
M1="
===>INSTALANDO SAMBA V.2.2.9<===
"
cd $ordir
(echo 20
sleep 1
echo 45
echo 56
sleep 2
echo 67
echo 78
sleep 1
echo 86
sleep 1
echo 98
sleep 1
echo 100
)| dialog --title "$TI" --gauge "$M1" 10 70 2
verif=`cut -f3 -d : /tmp/tarlogsmb | head -n 1 | cut -c2-7`
if [ ¨$verif¨ = ¨Cannot¨ ]; then
M1="
= :-( = :-( = :-( = :-( = :-( = :-( = :-(
OUVE UM ERRO NA INSTALACAO DO SAMBA !
"
dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70
testando
fi
M1="
:-) = :-) = :-) = :-) = :-) = :-) = :-)
A INSTALACAO OCORREU COM SUCESSO !
"
dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70
;;3)
init-conf
;;
*)
exit
;;
esac
}
run-time
which /usr/sbin/nmbd |cut -d/ -f4-42>/tmp/var0101.txtsmb
which /usr/sbin/smbd |cut -d/ -f4-42>/tmp/var0102.txtsmb
var0101=`cut -f1 /tmp/var0101.txtsmb`
var0102=`cut -f1 /tmp/var0102.txtsmb`
if [ "$var0101" = "nmbd" ]; then
init-conf
else
M1="
O SCRIPT DETECTOU QUE O SAMBA NAO ESTA INSTALADO
<<>>
ESCOLHA UMA OPCAO NA PROXIMA JANELA... "
dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70
testando
fi
if [ "$var0102" = "smbd" ]; then
init-conf
else
M1="
O SCRIPT DETECTOU QUE O SAMBA NAO ESTA INSTALADO
<<>>
ESCOLHA UMA OPCAO NA PROXIMA JANELA..."
dialog --backtitle "$BACKTITLE" --title "$T1" --msgbox "$M1" 10 70
testando
fi
init-conf
configurar a rede wireless passando por roteador (melhorado e comentado)
Recriando /dev/null facilmente
Teste de desempenho com números primos em BASH
Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...
Nenhum comentário foi encontrado.
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)
Alternativas ao Multilogin para gerenciamento de múltiplas contas/prof... (0)









