AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / user-426741

James Newton's questions

Martin Hope
James Newton
Asked: 2024-11-12 21:25:26 +0800 CST

Substituir arquivos em um diretório por arquivos com os mesmos nomes de outro

  • 5

Tenho dois repositórios para um site: um para o backend, um para o frontend. Quero copiar arquivos do frontend para o diretório do backend, para que tudo possa ser servido de um só lugar.

Quando executo o buildcomando no frontend, uma pasta chamada dist/é criada. Quero copiar todos esses arquivos para uma pasta com o caminho relativo ../backend/public. Essa publicpasta pode já conter alguns outros arquivos.

Meu script atual usa nomes codificados para index.htmle e assets/diretório, mas mais arquivos podem ser adicionados ao longo do tempo, então eu gostaria de uma solução genérica que copie tudo o que não foi alterado dist/para ../backend/public.

#!/bin/bash
cd ../backend/public
rm -rf index.html assets

cp ../../frontend/dist/index.html ./
cp -r ../../frontend/dist/assets ./assets
bash
  • 1 respostas
  • 32 Views
Martin Hope
James Newton
Asked: 2021-12-02 11:53:22 +0800 CST

Criando um arquivo que abrirá outro arquivo no VS Code quando for clicado duas vezes

  • 0

Eu quero escrever um comando ~/.bashrcque criará um arquivo de gatilho que abrirá um arquivo de destino diferente em uma pasta diferente quando eu clicar duas vezes no arquivo de gatilho. Eu quero que o arquivo de destino seja aberto no VS Code.

Os arquivos podem aparecer em uma estrutura de diretórios como esta:

parentDir/
  archiveDir/
  yesterdaysDateDir/
  todaysDateDir/
    fileIWantToOpen.js

  index/
    fileIWantToDoubleClick

Entendo que posso criar um arquivo .desktop executável para fazer isso. Encontrei as especificações para arquivos .desktop , mas me perdi em todos os detalhes possíveis.

Acho que o que eu quero pode ser algo assim...

[Desktop Entry]
Type=Application
Terminal=true
Name=fileIWantToDoubleClick
Icon=utilities-terminal
Exec="code '../todaysDate/fileIWantToOpen.js'"
Categories=Application;

... mas estou fora da minha profundidade. Qualquer ajuda para entender o que fazer seria apreciada.

Criar um link simbólico simples não funciona para mim: quero clicar em um arquivo em meu indexdiretório e fazer com que ele abra um arquivo específico em uma pasta específica, em vez de iniciar um clone com um nome diferente do indexdiretório.

bash
  • 1 respostas
  • 56 Views
Martin Hope
James Newton
Asked: 2021-06-25 01:56:39 +0800 CST

Remover um pacote de snap específico

  • 0

Quando executo df -hvejo que tenho várias /snapentradas com nomes e tamanhos semelhantes. Editei e reorganizei a saída, para que todos os nomes semelhantes apareçam juntos (veja abaixo).

Estou supondo que devo ser capaz de remover (por exemplo) a instância anterior do Gimp: /snap/gimp/367. Este artigo me diz como reduzir um pacote de snap nomeado , mas não encontrei como remover apenas um dos dois pacotes com o mesmo nome.

Além disso, qual dos core...pacotes eu realmente preciso?

Obrigado antecipadamente por qualquer ajuda com isso.

/snap/audacity/857           /dev/loop17     188M  188M     0 100% 
/snap/chromium-ffmpeg/17     /dev/loop11      33M   33M     0 100% 
/snap/core/11167             /dev/loop10     100M  100M     0 100% 
/snap/core/11187             /dev/loop19     100M  100M     0 100% 
/snap/core18/2066            /dev/loop13      56M   56M     0 100% 
/snap/core18/2074            /dev/loop6       56M   56M     0 100% 
/snap/core20/1026            /dev/loop23      62M   62M     0 100% 
/snap/core20/975             /dev/loop14      62M   62M     0 100% 
/snap/gimp/367               /dev/loop22     269M  269M     0 100% 
/snap/gimp/372               /dev/loop21     277M  277M     0 100% 
/snap/gnome-3-28-1804/145    /dev/loop4      163M  163M     0 100% 
/snap/gnome-3-38-2004/39     /dev/loop16     244M  244M     0 100% 
/snap/gtk-common-themes/1514 /dev/loop9       65M   65M     0 100% 
/snap/gtk-common-themes/1515 /dev/loop8       66M   66M     0 100% 
/snap/gtk2-common-themes/13  /dev/loop0      256K  256K     0 100% 
/snap/heroku/4048            /dev/loop2       27M   27M     0 100% 
/snap/opera/128              /dev/loop15     151M  151M     0 100% 
/snap/opera/130              /dev/loop1      151M  151M     0 100% 
/snap/postman/133            /dev/loop18     176M  176M     0 100% 
/snap/skype/173              /dev/loop12     135M  135M     0 100% 
/snap/skype/176              /dev/loop5      136M  136M     0 100% 
/snap/snapd/12057            /dev/loop3       33M   33M     0 100% 
/snap/snapd/12159            /dev/loop20      33M   33M     0 100% 
/snap/telegram-desktop/2637  /dev/loop7      302M  302M     0 100%
package-management
  • 2 respostas
  • 398 Views
Martin Hope
James Newton
Asked: 2020-07-30 09:27:46 +0800 CST

Ubuntu 16.04, Docker e espaço zero no volume "Raiz do sistema de arquivos"

  • 0

Hoje cedo instalei o Docker e segui alguns tutoriais. Ao executar um tutorial sobre como usar o Docker com um aplicativo Meteor barebones, recebi um erro de que não havia espaço em disco suficiente, mesmo que minha /homepartição tenha 17 GB livres.

Reiniciei meu computador e ele me informou que The volume "Filesystem root" has 0 bytes disk space remaining. Nenhum dos meus navegadores queria lançar em um espaço tão sufocante.

Corri sudo apt-get remove docker-ce docker-ce-cli containerd.ioe isso recuperou 33,4 MB de espaço em disco no /, o que significava que eu poderia iniciar um navegador e procurar dicas sobre como recuperar mais espaço. Depois de remover um kernel antigo, executar sudo apt autoremove --purgee sudo apt-get cleanremover vários aplicativos de terceiros que não uso há algum tempo, consegui recuperar um total de pouco mais de 800 MB, então pelo menos tenho algum espaço para respirar .

No entanto, parece uma coincidência que a instalação do Docker e a criação de meia dúzia de imagens levaram minha  /partição de 19 GB a ficar saturada de repente. Parece também que ainda deve haver muito espaço que não foi liberado, obrigando-me a remover outros arquivos que antes não causavam incômodo.

Existe algo especial que o Docker faz para /, e há algo que eu possa fazer para desfazê-lo e evitar que isso aconteça novamente?

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            3,8G     0  3,8G   0% /dev
tmpfs           783M  9,6M  773M   2% /run
/dev/nvme0n1p5   19G   17G  776M  96% /
tmpfs           3,9G  468K  3,9G   1% /dev/shm
tmpfs           5,0M  4,0K  5,0M   1% /run/lock
tmpfs           3,9G     0  3,9G   0% /sys/fs/cgroup
...
/dev/nvme0n1p6  465M   80M  357M  19% /boot
/dev/nvme0n1p7   77G   57G   17G  78% /home
/dev/nvme0n1p1  496M   82M  415M  17% /boot/efi
tmpfs           783M   52K  783M   1% /run/user/1000
disk-usage 16.04 docker
  • 1 respostas
  • 1568 Views
Martin Hope
James Newton
Asked: 2020-05-09 06:15:20 +0800 CST

Desinstale umake no Ubuntu 16.04

  • 1

No Ubuntu 16.04, umakeinstalei em /usr/bin/umake. Quando eu executo umake --versionrelatórios

18.05

Acabei snap install ubuntu-make --classicde instalar a versão mais recente, e isso está instalado em /snap/bin/ubuntu-make.umake. Quando eu executo ubuntu-make.umake --versionrelatórios

20.04+snap678

Eu esperava que a versão mais recente sobrescrevesse a original e criasse um alias para si mesma em /usr/bin/umake, mas agora tenho duas cópias de umakeem dois lugares diferentes. Eu tentei sudo apt remove umake, mas isso não faz nada útil:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
E: Unable to locate package umake

Verificação de integridade: faz sentido remover a versão mais antiga e criar um link simbólico para a versão mais recente em usr/bin/umake? Em caso afirmativo, como desinstalo a versão 18.05?

uninstall ubuntu-make
  • 1 respostas
  • 495 Views
Martin Hope
James Newton
Asked: 2019-07-24 23:39:54 +0800 CST

Como usar um arquivo .desktop para iniciar um aplicativo node.js

  • 2

No Ubuntu 16.04, eu (eventualmente) quero soltar um arquivo de texto em um ícone da área de trabalho e executar um aplicativo Node.js, tratando o arquivo descartado e gerando um novo arquivo.

Eu descobri .desktoparquivos e estou fazendo o meu melhor para entender como fazer o processo funcionar, usando uma configuração básica. Atualmente, tenho três arquivos: dois arquivos em um diretório em /home/blackslate/Utilities/e um na minha área de trabalho.

Arquivos de utilitários

Um arquivo de texto chamado convert.js:

const fs = require('fs');
const crypto = require('crypto');
const random = crypto.randomBytes(4).toString('hex');
const filename = random + '.txt'

fs.appendFile(filename, 'Hello ' + random + '!', function (err) {
  if (err) throw err;
  console.log(filename + ' saved');
});

Um arquivo executável chamado convert.sh:

#!/bin/sh
node ./convert.js

gnome-terminal -e "bash -c 'echo hello world; sleep 3'"

Arquivo da área de trabalho

Um arquivo executável chamado convert.desktop:

[Desktop Entry]
Exec=gnome-terminal -e "/home/blackslate/Utilities/convert.sh \"%u\""
Icon=utilities-terminal
Type=Application
Name=Convert

Aqui está o que acontece:

  1. Se eu ligar node ./convert.jsde uma janela do Terminal, vejo que:

    • Um novo arquivo é criado e seu nome é mostrado na janela Terminal
  2. Se eu ligar ./convert.shde uma janela do Terminal, vejo que:

    • Um novo arquivo é criado e seu nome é mostrado na mesma janela do Terminal
    • Uma segunda janela do Terminal é aberta e diz hello worldantes de fechar 3 segundos depois
  3. Se eu clicar no arquivo da área de trabalho Converter, vejo que:

    • Uma janela do Terminal é aberta, mostrando um monte de texto e, em seguida, fecha imediatamente
    • Uma segunda janela do Terminal é aberta e diz hello worldantes de fechar 3 segundos depois
    • Nenhum novo arquivo de texto é criado

É óbvio que o segundo comando no convert.sharquivo está sendo executado, mas parece que algo está errado com o primeiro. Que passos posso tomar para depurar e corrigir isso?

bash .desktop nodejs
  • 1 respostas
  • 990 Views
Martin Hope
James Newton
Asked: 2017-11-26 05:40:22 +0800 CST

script bash: resultados diferentes quando chamado com ou sem sudo

  • 10

No Ubuntu 16.04.3, tenho um script bash muito simples:

test.sh

[[ 0 == 0 ]] && result="true" || result="false"
echo $result
echo $USER $SHELL $0

Quando eu o chamo como usuário não raiz meou como root, ele funciona conforme o esperado. Se eu uso sudo ./test.sh, ele reclama de um erro de sintaxe:

$ ./test.sh
true
me /bin/bash ./test.sh

$ sudo su
# ./test.sh 
true
root /bin/bash ./test.sh

# exit
$ sudo ./test.sh
./test.sh: 1: ./test.sh: [[: not found
false
root /bin/bash ./test.sh

O que poderia estar causando isso? Como posso corrigi-lo para que mepossa usar este script normalmente e com sudo?

bash
  • 2 respostas
  • 2098 Views
Martin Hope
James Newton
Asked: 2017-11-24 07:44:27 +0800 CST

Não avaliando uma expressão ao usar cat

  • 6

Eu tenho um script bash projetado para gerar outro script bash. estou usando cat. Desejo avaliar algumas das expressões no script de saída, mas não outras.

PROJECT=myproject

cat << EOF > create_dir.sh
#!/usr/bin/env bash

DATE=`date '+%y%m%d-%H%M'`
mkdir $PROJECT/\$DATE
EOF

O arquivo resultante create_dir.shse parece com isso:

#!/usr/bin/env bash

DATE=171123-1834

mkdir myproject/$DATE

O resultado que eu quero é esse:

#!/usr/bin/env bash

DATE=`date '+%y%m%d-%H%M'`

mkdir myproject/$DATE

Como posso modificar este script para que a expressão a seguir DATE=não seja avaliada e, ao mesmo tempo, garantir que $PROJECTseja avaliada?

bash
  • 2 respostas
  • 1721 Views
Martin Hope
James Newton
Asked: 2017-11-24 05:45:07 +0800 CST

Chamando apt-get -y update em um script bash: uma ou várias vezes?

  • 1

Estou escrevendo um script bash para instalar vários pacotes. Preciso ligar apt-get -y updatetodas as vezes antes de ligar apt-get install <package_name>? Ou basta chamar apt-get -y updateuma vez no início do script?

Se precisar ser chamado várias vezes, você poderia explicar por quê?

apt
  • 1 respostas
  • 787 Views
Martin Hope
James Newton
Asked: 2017-11-21 07:43:35 +0800 CST

Como executo comandos como um usuário não root em um script iniciado com permissões de root?

  • 18

O problema
Em um script bash, estou usando o comando...

sudo -u node bash

.. para mudar de root para um usuário não-sudo, e isso está falhando.

O contexto
Estou escrevendo um provision.shscript para Vagrant, para configurar um servidor rodando Ubuntu 16.04.3 com todos os pacotes necessários para entregar um app com Meteor 1.6.

Uma etapa necessária é instalar nvmcomo um usuário não root. Depois nvmde instalado, você precisa sair e entrar novamente para ativar o nvm. Portanto, crio um usuário não-sudo chamado meteor, e quero mudar para ele quando baixar e instalar nvm.

Posteriormente, quero voltar a ser roote fazer login imediatamente como meteor, a fim de começar a usar nvmpara instalar o Node.js.

Você encontrará um script muito comentado abaixo. O Vagrant executa esse script toda vez que eu chamo vagrant reload --provision.

Qual comando devo usar em vez de sudo -u node bash?


echo "# whoami" && whoami && echo "^^^^ root expected"
echo "As root, create non-sudo user meteor:"
pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
useradd -m -p $pass meteor
echo "User meteor created. ls -al /home/meteor:"
ls -al /home/meteor
echo "Install curl as root:"
apt-get install -y curl
echo "Trying sudo -u meteor bash"
sudo -u meteor bash #### THIS IS THE LINE THAT FAILS ###

echo "$ whoami" && whoami && echo "^^^^^^ meteor expected"
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.6/install.sh | bash
echo "ls -al /home/meteor/.nvm # should be populated"
ls -al /home/meteor/.nvm

echo "ls -al /root/.nvm # should not exist"
ls -al /root/.nvm

echo "command -v nvm will fail silently until we log out and back in again"
#command -v nvm
exit

#### Because the script is still running as root, it halts here ####

echo "# whoami" && whoami && echo "^^^^ should be root"
sudo -u meteor bash
echo "$ whoami" && whoami && echo "^^^^^^ should be meteor"
echo "command -v nvm should work now"
command -v nvm
bash
  • 3 respostas
  • 69714 Views
Martin Hope
James Newton
Asked: 2017-11-14 02:23:09 +0800 CST

Acesse a unidade interna ao inicializar a partir de uma chave USB

  • 0

Eu tenho um Dell XPS 13 com uma unidade interna de 256 GB, particionada para inicialização dupla com Windows 10 e Ubuntu 16.04. Após uma atualização de firmware, o laptop não inicializará mais no Ubuntu, mas inicializará no Windows, portanto, a unidade interna não será danificada.

Eu instalei o Ubuntu 16.04.1 instalado em uma chave USB SanDisk de 8 GB e posso inicializar o laptop no Ubuntu com isso.

Usando as informações desta pergunta , executei sudo fdisk 1e vejo 16 entradas para volumes de 64MiB, neste formato:

Disk /dev/ram15: 64 MiB, 67108864 bytes, 131072 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Essas entradas são nomeadas de /dev/ram0 a /dev/ram15 e são seguidas por isto:

Disk /dev/loop0: 1.4 GiB, 1459982336 bytes, 2851528 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/sda: 7.5 GiB, 8002732032 bytes, 15630336 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x0030553a

Device     Boot Start      End  Sectors  Size Id Type
/dev/sda1  *     2048 15630335 15628288  7.5G  c W95 FAT32 (LBA)

Embora isso represente um pouco mais de 8 GB no total, nenhuma dessas entradas parece se referir a nenhuma das partições na unidade interna.

Ainda estou no limite quando se trata de entender todo o poder da interface de linha de comando, então gostaria de explicações simples.

O que preciso fazer para acessar a unidade interna?


EDITAR. É assim que o /bootdiretório se parece:

# tree /boot
/boot
├── abi-4.4.0-31-generic
├── config-4.4.0-31-generic
├── efi
│   └── EFI
│       └── ubuntu
│           ├── fw
│           └── fwupx64.efi
├── grub
│   ├── gfxblacklist.txt
│   ├── grubenv
│   └── unicode.pf2
├── memtest86+.bin
├── memtest86+.elf
├── memtest86+_multiboot.bin
└── System.map-4.4.0-31-generic
mount
  • 1 respostas
  • 1903 Views
Martin Hope
James Newton
Asked: 2017-11-14 00:32:23 +0800 CST

Inicialização dupla Dell XPS 13 falha ao inicializar no Ubuntu após a atualização do firmware

  • 8

Há um ano, comprei um Dell XPS com o Windows 10 instalado de fábrica. Quando chegou, adicionei novas partições ao disco rígido interno — boot, home e swap — e instalei o Ubuntu 16.04 LTS para criar um sistema dual-boot. Naquela época, segui as instruções oficiais da Dell sobre como instalar o Ubuntu, com duas alterações:

  1. As instruções da Dell dizem para escolher SHIMx64.EFI, mas isso não está disponível. A escolha que tenho é entre \EFI\BOOT\BOOTx64.EFIe \EFI\BOOT\grubx64.efi. Eu acredito que eu escolhigrub64.efi
  2. Eu defino a operação SATA de RAID On para AHCI.

Depois disso, consegui instalar o Ubuntu 16.04.1 e tudo funcionou até hoje.

Hoje, me ofereceram uma atualização de firmware, que aceitei. Presumivelmente, esta atualização foi projetada para uma máquina somente Windows. Agora, quando o laptop inicializa, ele não reconhece mais o sistema operacional Ubuntu no SSD interno. Depois de executar uma verificação do sistema (F12 durante a inicialização), eliminei um erro de partição e, depois disso, o menu Boot Sequence no BIOS apareceu assim:

[✓] UEFI: THNSN5256GPU7 NVMe TOSHIBA 256 GB, Par(tition 1)
[✓] UEFI: SanDisk Partition 1 
[✓] Windows Boot Manager  

SanDisk é a chave LiveUSB que estou usando.

Para isso, adicionei um novo Boot Option [✓] Ubuntu, que usa \EFI\BOOT\grubx64.efi, como antes. Coloquei este como o primeiro da lista.

Desativei o Secure Boot, mas não acho que isso fosse um problema antes.

No painel de operação SATA, se eu selecionar AHCI, o laptop será inicializado no SanDisk LiveUSB. Se eu definir como RAID ativado e desativar o SanDisk na sequência de inicialização, o laptop será inicializado no Windows.

Em nenhum caso, ele inicializa no sistema operacional Ubuntu instalado no SSD interno de 256 GB.

Quais etapas eu preciso seguir para tornar o laptop capaz de inicializar na versão instalada do Ubuntu?

boot
  • 2 respostas
  • 5048 Views
Martin Hope
James Newton
Asked: 2017-11-04 03:02:03 +0800 CST

Encontre um arquivo com um determinado nome ou digite em diretórios com um determinado nome

  • 2

Eu quero encontrar todos os scripts PHP que estão dentro de um diretório chamado web. Em particular, estou interessado em todos os arquivos nomeados index.phpem qualquer um desses diretórios.

Eu sei que posso usar sudo find / -type d -name "web"para listar todos os diretórios e, em seguida, posso usar sudo find <directory path> -type f -name "*.php"para cada um dos caminhos de saída, para ver se contém um script PHP.

Mas existe uma maneira de fazer isso em uma linha e dois comandos find aninhados: um comando find usado para obter os caminhos para os webdiretórios e o segundo para usar cada um desses diretórios como raiz para encontrar um arquivo cujo nome corresponda o padrão *.php?

bash
  • 2 respostas
  • 1571 Views
Martin Hope
James Newton
Asked: 2017-10-29 02:15:38 +0800 CST

Obtenha o Apache2 em execução com nginx como proxy reverso

  • 3

Meu objetivo é fornecer um serviço de e-mail seguro a partir de um novo servidor Ubuntu 16.04. Para fazer isso, quero configurar o Apache2 com o nginx em execução como seu proxy reverso.

Meu problema imediato é que o Apache falha ao iniciar, alegando que não há certificado SSL atribuído (consulte a saída do Terminal no final desta pergunta), embora eu não esteja (ainda) tentando usar HTTPS.

Minhas perguntas:

  • Se o Apache estiver sendo executado em uma porta local, não é suficiente que o nginx saiba sobre quaisquer certificados SSL?
  • O que preciso fazer para que o Apache comece a escutar em um endereço local?

Aqui está o meu entendimento do que eu preciso fazer. Eu ficaria grato se você pudesse apontar onde meu entendimento está errado.

  • Instale nginx e Apache2
  • Crie um bloco de servidor nginx para:
    • Ouça nas portas 80 (e 443)
    • (Redirecione o tráfego da porta 80 para a porta 443)
    • (Lidar com uma certificação SSL)
    • Encaminhe quaisquer solicitações de um arquivo PHP para o Apache em 127.0.0.1:8080
  • Configure o Apache para:
    • Ouça apenas na porta 8080, não na porta 443
    • Permanecer ignorante de qualquer certificação SSL

Eu gosto de lidar com um problema de cada vez, então estou deixando de lado a questão dos certificados SSL e tentando fazer o Apache rodar com nginx como seu proxy reverso apenas na porta 80.


Aqui estão os arquivos de configuração que tenho:

nginx

$ sudo nano /etc/nginx/sites-available/webmail

server {
  listen   80;

  root /var/www/webmail/web;
  index index.php index.html index.htm;

  server_name webmail.mydomain.com;

  # Look for...
  # * the exact path
  # * a default (index.*) file, considering the path to be a directory
  # ... and if that fails:
  # * get the index.php script at the root to deal with the request

  location / {
    try_files $uri $uri/ /index.php;
  }

  # If the chosen path leads to a PHP fie:
  # * forward the request to Apache running at 127.0.0.1:8080
  # * after having modified certain headers

  location ~ \.php$ {
    proxy_set_header X-Real-IP  $remote_addr;
    proxy_set_header X-Forwarded-For $remote_addr;
    proxy_set_header Host $host;
    proxy_pass http://127.0.0.1:8080;
  }

  # If there are any Apache HT files in the chosen directory
  # ignore any direct requests for them

  location ~ /\.ht {
    deny all;
  }
}

Apache2

$ sudo nano /etc/apache2/sites-available/webmail.conf 

<VirtualHost 127.0.0.1:8080>
        ServerName webmail.mydomain.com
        ServerAdmin admin@mydomain.com
        DocumentRoot /var/www/webmail/web
        <Directory "/var/www/webmail/web">
            Options FollowSymLinks
            AllowOverride All
        </Directory>

        ErrorLog ${APACHE_LOG_DIR}/error.log
        LogLevel warn
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

portas Apache2

$ sudo nano /etc/apache2/ports.conf

Listen 127.0.0.1:8080

#<IfModule ssl_module>
#       Listen 443
#</IfModule>

#<IfModule mod_gnutls.c>
#       Listen 443
#</IfModule>

Observe que não estou pedindo explicitamente ao Apache para escutar na porta 443. Existe outro lugar em algum outro arquivo de configuração que está dizendo ao Apache para escutar na porta 443?


Aqui estão meus arquivos PHP e HTML de espaço reservado, em seus lugares esperados:

index.php

$ sudo nano /var/www/webmail/web/index.php

<?php
  echo "PHP from /var/www/webmail/web/index.php\n";
?>

index.html

$ sudo nano /var/www/webmail/web/index.html

<html>
  HTML from /var/www/webmail/web/index.html
</html>

No navegador, uma solicitação para http://webmail.mydomain.com/index.html é bem- sucedida como esperado, mas uma solicitação para http://webmail.mydomain.com/index.php resulta no download do arquivo, não na execução .


Aqui está o que acontece quando tento iniciar o Apache2:

$ sudo /etc/init.d/apache2 restart
[ ok ] Restarting apache2 (via systemctl): apache2.service.

$ sudo service apache2 status
* apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           `-apache2-systemd.conf
   Active: inactive (dead) since <Time>; 3s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 16059 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 16043 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)

systemd[1]: Starting LSB: Apache2 web server...
apache2[16043]:  * Starting Apache httpd web server apache2
apache2[16043]: Action 'start' failed.
apache2[16043]: The Apache error log may have more information.
apache2[16043]:  *
apache2[16059]:  * Stopping Apache httpd web server apache2
apache2[16059]:  *
systemd[1]: Started LSB: Apache2 web server.

Aqui está o conteúdo do error.log:

$ sudo nano /var/log/apache2/error.log

[ssl:emerg] [pid 15943] AH02572: Failed to configure at least one certificate and key for myhostname.hostingservice.com:443
[ssl:emerg] [pid 15943] SSL Library Error: error:140A80B1:SSL routines:SSL_CTX_check_private_key:no certificate assigned
[ssl:emerg] [pid 15943] AH02311: Fatal error initialising mod_ssl, exiting. See /var/log/apache2/error.log for more information

(Isso está em var/log/apache2/error.log e não há mais informações.)

O que eu tenho perdido?


NOTA: O objetivo principal deste servidor é fornecer um aplicativo Meteor. Eu escolhi fazer isso usando Phusion Passenger e Nginx. Além do serviço de e-mail, o Apache também será usado para entregar um site WordPress.

apache2
  • 1 respostas
  • 1107 Views
Martin Hope
James Newton
Asked: 2017-10-26 01:14:59 +0800 CST

Como permitir SSH apenas com chave RSA e SFTP com senha e chroot?

  • 1

No meu servidor Ubuntu 16.04 LTS, gostaria de fazer o seguinte:

  • Habilite um usuário administrador não raiz com privilégios sudo para SSH no servidor usando uma chave RSA (sem senha)
  • Permita que usuários não administradores selecionados carreguem arquivos por SFTP em seu próprio diretório inicial, usando uma senha para efetuar login
  • Impedir que usuários não administradores obtenham acesso ao restante do sistema de arquivos

Estou trabalhando com uma versão recém-instalada do Ubuntu 16.04.3 LTS, então tudo está em sua condição padrão de fábrica.

Li esta pergunta e as respostas com atenção, mas não consegui encontrar uma solução.

Eu criei um nonrootadminusuário com privilégios sudo.

Eu criei um nonadminsftpusuário que é membro do sftpaccessgrupo. O /home/nonadminsftp/diretório se parece com isso:

$ ls -al ~nonadminsftp
total 24
drwxr-xr-x 3 root         root       4096 Oct 25 00:52 .
drwxr-xr-x 5 root         root       4096 Oct 24 22:29 ..
-rw-r--r-- 1 nonadminsftp sftpaccess  220 Sep  1  2015 .bash_logout
-rw-r--r-- 1 nonadminsftp sftpaccess 3771 Sep  1  2015 .bashrc
drwxr-xr-x 3 nonadminsftp sftpaccess 4096 Oct 25 00:50 ftp
-rw-r--r-- 1 nonadminsftp sftpaccess  655 May 16 13:49 .profile

Suas respectivas entradas /etc/passwdsão as seguintes:

nonrootadmin:x:1000:1000::/home/nonrootadmin:/bin/bash
nonadminsftp:x:1002:1002::/home/nonadminsftp:/usr/sbin/nologin

As alterações que fiz no /etc/sshd/sshd_configarquivo são as seguintes:

PermitRootLogin no
#PasswordAuthentication no

AllowUsers nonrootadmin nonadminsftp
Subsystem sftp internal-sftp
Match group sftpaccess
#ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
#ForceCommand internal-sftp

A solução que vi propõe descomentar 3 dessas linhas, mas descubro que:

  • PasswordAuthentication noimpede que o usuário nonadminsftp se conecte com uma senha:

    $ sftp nonadminsftp@mydomain.com
    Permission denied (publickey).
    Couldn't read packet: Connection reset by peer
    
  • ChrootDirectory %himpede que o usuário não rootadmin se conecte:

    $ ssh nonrootadmin@mydomain.com
    packet_write_wait: Connection to 12.34.56.78 port 22: Broken pipe`
    
  • ForceCommand internal-sftpimpede que o não rootadmin obtenha acesso SSH:

    $ ssh nonrootadmin@mydomain.com
    This service allows sftp connections only.
    Connection to mydomain.com closed.`
    

Com estas linhas comentadas:

  • nonrootadmin tem acesso SSH usando uma chave RSA
  • nonadminsftp pode se conectar usando um cliente FTP como o FileZilla

MAS:

  • nonadminsftp não é enviado chrootpara o /home/nonadminsftpdiretório
  • nonrootadmin pode fazer login com uma senha

O que é que estou perdendo?

desde já, obrigado

permissions
  • 1 respostas
  • 3079 Views
Martin Hope
James Newton
Asked: 2017-08-25 11:10:26 +0800 CST

Restaurar toque para clicar no Ubuntu 16.04 no Dell XPS 13

  • 6

Esta questão é uma continuação desta sobre rolagem natural .

Antes de fazer alterações, bastava tocar no trackpad do meu Dell XPS 13 para gerar um clique. Agora tenho que clicar explicitamente, o que requer esforço extra. Gostaria de restaurar o toque para clicar, se possível.

Eu tenho um Dell XPS 13 que, por padrão, possui um trackpad muito sensível. Enquanto você digita, se você deslizar o trackpad por acidente, o trackpad considera isso como um clique e o ponto de inserção de texto salta para onde quer que o mouse esteja. Eu encontrei e instalei esta correção para este problema:

sudo apt-get install xserver-xorg-input-libinput

Isso inverteu a direção de rolagem, então também editei a entrada para MatchIsTouchpadin /usr/share/X11/xorg.conf.d/90-libinput.conf:

Section "InputClass"
        Identifier "libinput touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "libinput"
        Option "NaturalScrolling" "true"
EndSection

Com essa nova configuração, o toque para clicar não acontece. Isso é inevitável? Esta é a única maneira de evitar que escovar acidentalmente o trackpad gere um clique? Ou é possível regular a sensibilidade para que um toque deliberado seja tratado de forma diferente de um toque fugaz?

touchpad
  • 1 respostas
  • 4173 Views
Martin Hope
James Newton
Asked: 2017-08-24 23:07:25 +0800 CST

Restaurar rolagem natural no Ubuntu 16.04 no Dell XPS 13

  • 1

Eu tenho um Dell XPS 13 que, por padrão, possui um trackpad muito sensível. Enquanto você digita, se você deslizar o trackpad por acidente, o trackpad considera isso como um clique e o ponto de inserção de texto salta para onde quer que o mouse esteja. Eu encontrei e instalei esta correção para este problema:

sudo apt-get install xserver-xorg-input-libinput

No entanto, agora a rolagem não é natural. Quando uso o trackpad para rolar um documento longo, é a janela de visualização que se move sobre o conteúdo. Quero que o conteúdo se mova na mesma direção dos meus dedos, como antes, como em uma tela sensível ao toque.

Você pode me explicar quais alterações devo fazer nos arquivos para /usr/share/X11/xorg.conf.d/que isso aconteça?

A solução proposta aqui não ajudou.

touchpad
  • 2 respostas
  • 1448 Views

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Existe um comando para listar todos os usuários? Também para adicionar, excluir, modificar usuários, no terminal?

    • 9 respostas
  • Marko Smith

    Como excluir um diretório não vazio no Terminal?

    • 4 respostas
  • Marko Smith

    Como descompactar um arquivo zip do Terminal?

    • 9 respostas
  • Marko Smith

    Como instalo um arquivo .deb por meio da linha de comando?

    • 11 respostas
  • Marko Smith

    Como instalo um arquivo .tar.gz (ou .tar.bz2)?

    • 14 respostas
  • Marko Smith

    Como listar todos os pacotes instalados

    • 24 respostas
  • Martin Hope
    Flimm Como posso usar o docker sem sudo? 2014-06-07 00:17:43 +0800 CST
  • Martin Hope
    led-Zepp Como faço para salvar a saída do terminal em um arquivo? 2014-02-15 11:49:07 +0800 CST
  • Martin Hope
    ubuntu-nerd Como descompactar um arquivo zip do Terminal? 2011-12-11 20:37:54 +0800 CST
  • Martin Hope
    TheXed Como instalo um arquivo .deb por meio da linha de comando? 2011-05-07 09:40:28 +0800 CST
  • Martin Hope
    Ivan Como listar todos os pacotes instalados 2010-12-17 18:08:49 +0800 CST
  • Martin Hope
    David Barry Como determino o tamanho total de um diretório (pasta) na linha de comando? 2010-08-06 10:20:23 +0800 CST
  • Martin Hope
    jfoucher "Os seguintes pacotes foram retidos:" Por que e como resolvo isso? 2010-08-01 13:59:22 +0800 CST
  • Martin Hope
    David Ashford Como os PPAs podem ser removidos? 2010-07-30 01:09:42 +0800 CST

Hot tag

10.10 10.04 gnome networking server command-line package-management software-recommendation sound xorg

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve