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 / server / 问题

All perguntas(server)

Martin Hope
Jmchave
Asked: 2024-12-16 22:51:41 +0800 CST

O RHEL 7.9 chown não está definindo o proprietário corretamente

  • 5

Tenho um servidor RHEL 7.9. Estou tentando criar uma conta local chamada sysadmin. Eu executei

  • useradd sysadmin
  • usermod -aG wheel sysadmin
  • passwd sysadmin

Quando olho, /homevejo a pasta sysadmin, mas ela tem um proprietário diferente. O proprietário é uma conta de serviço que não está relacionada. Se eu executar chown sysadmin:sysadmin, ele não altera o proprietário, ele permanece a mesma conta de serviço. Não vejo nenhum log relacionado em secure ou messages. Não há /var/log/auth.logarquivos syslog ou syslog. Alguém viu esse comportamento?

redhat
  • 1 respostas
  • 43 Views
Martin Hope
LemongrabThree
Asked: 2024-12-16 21:36:46 +0800 CST

Configurando o GitLab no Docker para Windows com volumes compartilhados de um servidor Linux

  • 5

Tenho uma instância do GitLab em um contêiner Docker em execução em um Synology NAS. Agora, quero mover o GitLab para um PC Windows que tenho, mas manter os dados no NAS, compartilhando pastas e tornando-as volumes Docker. Para testar, criei algumas pastas config, data, e logsno NAS e as compartilhei na rede com "Shared Folder". Pelo que entendi, configuramos para usar SMB para isso. Então, na máquina Windows, executo (com base nesta sugestão)

docker volume create --driver local
  --opt type=cifs
  --opt device=//192.168.1.150/gitlab_docker_volume/config
  --opt o=user=gitlab_docker_volume,password=<password> gitlab-config

e mais dois para criar gitlab-datae gitlab-logs.

Então, eu inicio o contêiner com

docker run -d -p 8070:80 -p 8433:443 -p 8012:22
  -v gitlab-logs:/var/log/gitlab:rw
  -v gitlab-data:/var/opt/gitlab:rw
  -v gitlab-config:/etc/gitlab:rw gitlab/gitlab-ce

e trava com o erro

...
Mixlib::ShellOut::ShellCommandFailed:
Failed asserting that ownership of "/var/opt/gitlab/git-data" was git:git
...

2024-12-13 13:54:47 + [ root:root = git:git ]

Quando olho para as pastas no NAS, posso ver que o contêiner criou com sucesso todos os arquivos e pastas que o GitLab precisa, mas todos eles têm proprietário gitlab_docker_volume:userse 777permissões. No datavolume do contêiner GitLab original que está sendo executado no NAS, a git-datapasta pertence a algum usuário misterioso 998e tem 2770permissões.

Se entendi corretamente, o que está acontecendo é que o contêiner do GitLab tenta acessar chowna git-datapasta e esse comando teria que ser mapeado no compartilhamento SMB/CIFS, mas isso não está acontecendo.

Há duas postagens sobre o mesmo erro, mas elas o encontraram usando configurações diferentes para seus volumes: uma delas parece ter o problema devido à execução do servidor Windows em uma VM, a outra está usando pastas nativas do Windows.

https://stackoverflow.com/questions/45134978/setting-up-gitlab-using-docker-on-windows-host-issue-with-shared-folders

https://stackoverflow.com/questions/44684621/volume-trouble-with-gitlab-docker-image-on-windows

Também tentei descobrir como editar as permissões do Linux por meio do compartilhamento de rede em geral, mas os resultados da pesquisa estão inundados com "como definir as permissões ao criar as pastas para que o contêiner do Docker possa editá-las em primeiro lugar" - o que já estava funcionando na minha configuração.

Eu, por outro lado, tenho pastas compartilhadas que estão originalmente em uma máquina Linux. Existe alguma maneira de alterar a configuração de compartilhamento de pastas, a configuração de volume ou qualquer outra coisa, para que o contêiner possa alterar o usuário e as permissões dos arquivos? O Docker está sendo executado com o backend WSL, a propósito.

docker
  • 1 respostas
  • 41 Views
Martin Hope
slowcoder
Asked: 2024-12-16 09:18:36 +0800 CST

Como mantenho a prioridade na minha regra?

  • 5

Tenho o seguinte código rodando no meu servidor para me permitir fazer SSH no meu servidor mesmo quando o servidor está conectado a uma VPN. O código abaixo roda como um serviço após a inicialização.

ip addr add 192.168.1.113 dev enp1s0 label enp1s0:0
ip rule add from 192.168.1.113 table 402
ip route add default via 192.168.1.1 dev enp1s0:0 table 402

Isso funciona com o OpenVPN, mas não com o WireGuard porque meu cliente WireGuard adiciona algumas regras antes da minha regra acima.

0:  from all lookup local
32761:  from all lookup main suppress_prefixlength 0
32762:  not from all fwmark 0xca6c lookup 51820
32763:  from 192.168.1.113 lookup 402
32766:  from all lookup main
32767:  from all lookup default

Se eu adicionar a regra from 192.168.1.113 lookup 402depois da conexão wireguard, então posso usar SSH no servidor. Então, estou assumindo que é uma questão de prioridade.

Como posso garantir que minha regra ( 32763) mantenha a prioridade mesmo depois que o Wireguard se conectar e adicionar essas duas regras ( 32761, )?32762

SOLUÇÃO COM FALHA:

Aprendi que os números à esquerda são prioridades. Então, tentei definir a prioridade da minha regra mais baixa.

ip rule add from 192.168.1.113 table 402 prio 300

.. mas depois que me conectei à VPN Wireguard, o cliente Wireguard simplesmente colocou suas regras abaixo das minhas em prioridade 299, e 298.

298:    from all lookup main suppress_prefixlength 0
299:    not from all fwmark 0xca6c lookup 51820
300:    from 192.168.1.113 lookup 402

Existe alguma maneira de evitar isso? Acho que eu poderia colocar um PostUpcomando no arquivo de configuração do wireguard que altera a prioridade, mas sinto que tem que haver uma solução mais limpa.

routing
  • 1 respostas
  • 55 Views
Martin Hope
Ella Taylor
Asked: 2024-12-15 23:58:36 +0800 CST

E-mails enviados para vários grupos de distribuição

  • 5

Quando envio um e-mail para vários grupos de distribuição, mas no rastreamento de e-mail, só consigo ver o nome do destinatário e não consigo visualizar o nome específico do grupo de distribuição. Por que isso acontece? Como rastrear para quais grupos de distribuição os usuários enviaram e-mails?

exchange
  • 1 respostas
  • 37 Views
Martin Hope
Ali
Asked: 2024-12-15 17:29:37 +0800 CST

Os logs de tarefas agendadas do AWS ECS não aparecem no CloudWatch

  • 5

Tenho um cluster ECS (no Fargate 1.4.0) com muitas tarefas e serviços que fazem login no Cloudwatch, e está tudo bem. Tenho algumas tarefas agendadas do ECS (via EventBridge), e sei que elas estão sendo executadas no horário agendado, conforme o esperado. Sei disso porque a) posso vê-las na guia EventBridge Rule monitoring, e b) uma das tarefas agendadas é enviar um e-mail, e eu recebo esse e-mail. Então, ele está sendo executado, mas não faz login no CloudWatch como as outras tarefas?

Antes de prosseguir com as etapas de solução de problemas, deixe-me dar mais informações:

Em cada definição de tarefa, tenho este bloco de log:

logConfiguration = {
  logDriver = "awslogs"
  options = {
    awslogs-group         = aws_cloudwatch_log_group.ecs_log_group.name
    awslogs-region        = "us-east-1"
    awslogs-stream-prefix = "prod-cron-engage"
  }
}

Sei que tudo está correto lá porque minhas outras tarefas que não estão agendadas (executadas por meio de serviços 24 horas por dia, 7 dias por semana) estão sendo registradas com sucesso lá.

Cada tarefa tem estes dois parâmetros:

execution_role_arn       = aws_iam_role.ecs_task_execution_role.arn
task_role_arn            = aws_iam_role.ecs_task_execution_role.arn

Estes são:

resource "aws_iam_role" "ecs_task_execution_role" {
  name = "ecsTaskExecutionRole"

  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "sts:AssumeRole"
        Effect = "Allow"
        Principal = {
          Service = "ecs-tasks.amazonaws.com"
        }
      }
    ]
  })

  tags = {
    "Name" = "${var.name_prefix}-iam-ecs-role"
  }
}

resource "aws_iam_role_policy_attachment" "ecs_task_execution_role_policy" {
  role       = aws_iam_role.ecs_task_execution_role.name
  policy_arn = "arn:aws:iam::aws:policy/service-role/AmazonECSTaskExecutionRolePolicy"
}

No AmazonECSTaskExecutionRolePolicy, há políticas essenciais para o ECS, incluindo acesso ao CloudWatch.

Além disso, aqui está minha regra de ponte de eventos:

resource "aws_cloudwatch_event_rule" "prod_cron_engage_rule" {
  name                = "prod-engage-rule"
  description         = "Run Prod Engage task every 30 minutes."
  schedule_expression = "rate(30 minutes)"
}

resource "aws_cloudwatch_event_target" "prod_cron_engage_target" {
  target_id = "run-prod-engage-task-every-half-an-hour"
  rule      = aws_cloudwatch_event_rule.prod_cron_engage_rule.name
  arn       = aws_ecs_cluster.ecs_cluster.arn
  role_arn  = aws_iam_role.eventbridge_role.arn

  ecs_target {
    task_definition_arn = aws_ecs_task_definition.prod_cron_engage_task.arn
    task_count          = 1
    launch_type         = "FARGATE"
    network_configuration {
      subnets          = module.vpc.private_subnets
      security_groups  = [aws_security_group.ecs_sg.id]
      assign_public_ip = false
    }
    tags = {
      "Name" = "${var.name_prefix}-ecs-prod-cron-engage"
    }
  }
}

Aqui estão as funções e políticas do EventBridge:

resource "aws_iam_role" "eventbridge_role" {
  name = "eventbridge-ecs-role"
  assume_role_policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "sts:AssumeRole"
        Principal = {
          Service = "events.amazonaws.com"
        }
        Effect = "Allow"
        Sid    = ""
      }
    ]
  })
}

resource "aws_iam_role_policy" "eventbridge_policy" {
  name = "eventbridge-ecs-policy"
  role = aws_iam_role.eventbridge_role.id
  policy = jsonencode({
    Version = "2012-10-17"
    Statement = [
      {
        Action = "ecs:RunTask"
        Effect = "Allow"
        Resource = [
          aws_ecs_task_definition.prod_cron_engage_task.arn
        ]
      },
      {
        Action   = "iam:PassRole"
        Effect   = "Allow"
        Resource = aws_iam_role.eventbridge_role.arn
      }
    ]
  })
}

O que eu fiz até agora?

  1. No começo, pensei que talvez, de alguma forma, houvesse uma regra de restrição que negasse o acesso dessas tarefas agendadas ao CloudWatch (improvável, mas pensei que, já que agora elas estão agendadas com o EventBridge, talvez seja possível), então dou ao ECS e ao EventBridge acesso total ao CloudWatch. Não muda nada.

  2. Tentei criar um novo grupo de logs com essas permissões amplas e ver se as tarefas podem criar esse novo grupo de logs ou não. O novo grupo de logs não estava lá, então os grupos de logs não puderam ser criados por meio de definições de tarefas.

amazon-web-services
  • 1 respostas
  • 78 Views
Martin Hope
Jack Haughton
Asked: 2024-12-15 06:01:48 +0800 CST

Filtragem com base no IP da interface

  • 5

Tenho uma interface local no meu firewall que tem vários endereços IP (192.168.0.1 e 192.168.0.5) atribuídos a ela. Pacotes de ambos os IPs são encaminhados para a interface WAN. No entanto, quero aplicar regras de filtragem diferentes dependendo de qual IP local o pacote foi recebido. (A ideia é usar 192.168.0.5 como o gateway para um ponto de acesso sem fio de acesso restrito, enquanto 192.168.0.1 é usado como o gateway para todo o outro tráfego). Tentei fazer isso usando aliases de interface, mas eles não chegam ao iptables e estão obsoletos de qualquer maneira, aparentemente. Como você faria isso?

(Eu consigo fazer esse tipo de filtragem perfeitamente na cadeia INPUT, usando apenas o endereço IP de destino, mas como eu faria isso na cadeia FORWARD?)

linux
  • 1 respostas
  • 21 Views
Martin Hope
Zhang Xiang
Asked: 2024-12-14 21:15:28 +0800 CST

Falha ao inicializar a partir da partição RAID 1 do mdadm

  • 6

Ambiente

  • Hardware: um PC X86_64 comum. Há dois HDDs de 4 TB /dev/sdae /dev/sdb.
  • SO: Anolis OS 23.1 (uma variante do CentOS Stream como o RockyLinux, então o comportamento deve ser muito semelhante).
  • Componentes:
    • grub2-common-1:2.12-8.an23.noarch
    • Grub2-efi-x64-1:2.12-8.an23.x86_64
    • calço-x64-15.8-1.an23.x86_64
  • A saída de lsblk -fé:
NAME    FSTYPE            FSVER LABEL    UUID                                 FSAVAIL FSUSE% MOUNTPOINTS
sda                                                                                          
├─sda1  vfat              FAT16          3687-D3D5                             121.6M     5% /mnt/newraid/boot/efi
│                                                                                            /boot/efi
├─sda2  ext4              1.0            a8889be5-a5bf-4001-80fd-8cc5848b0f15    3.4T     0% /home
├─sda3  ext4              1.0            7ed59ca5-1062-4841-9eaf-5455de1ff527   16.3G    11% /
└─sda4  swap              1              7cb849cb-db1a-46da-a64b-5afffb1e7c4c                [SWAP]
sdb                                                                                          
├─sdb1  vfat              FAT16          75D0-F9B6                                           
├─sdb2  linux_raid_member 1.2   ZX-NAS:1 d2d58a60-b4fb-d792-5430-07603f85c090                
│ └─md1 ext4              1.0            24814373-7082-4290-986b-5f049e4d76dd    3.4T     0% /mnt/newraid/home
├─sdb3  linux_raid_member 1.2   ZX-NAS:0 ae686811-5489-4aa6-c48d-458fe0bbc232                
│ └─md0 ext4              1.0            d3984281-70f1-47fc-aaf0-8627d49ec68f   16.3G    11% /mnt/newraid
└─sdb4  swap              1              533b5b6a-5931-4fb0-b3ee-1152a62e6e11                

O que eu quero fazer

  1. Copie todos os arquivos de /dev/sdapara /dev/sdb(o que eu fiz por rsync).
  2. Gerar itens grub para o sistema operacional em /dev/sdb.
  3. Inicialize o sistema /dev/sdbpara que eu possa finalmente adicionar /dev/sdaao array RAID1 do mdadm.

O que eu fiz

  1. Monte todas as partições:
mount /dev/md0 newraid
mount /dev/md1 newraid/home
mount /dev/sda1 newraid/boot/efi
mount --bind /dev newraid/dev
mount --bind /dev/pts newraid/dev/pts
mount --bind /proc newraid/proc
mount --bind /sys newraid/sys
  1. chrootno diretório montado e reinstale os pacotes grub2:
chroot newraid/
rm /boot/grub2/grub.cfg
rm /boot/efi/EFI/anolis/grub.cfg
dnf reinstall shim-* grub2-efi-* grub2-common

Informações relacionadas (em chrootambiente)

  • O conteúdo de /etc/mdadm.conf:
DEVICE /dev/sda* /dev/sdb*
ARRAY /dev/md0 metadata=1.2 name=ZX-NAS:0 UUID=ae686811:54894aa6:c48d458f:e0bbc232
ARRAY /dev/md1 metadata=1.2 name=ZX-NAS:1 UUID=d2d58a60:b4fbd792:54300760:3f85c090
  • A saída grubby --info DEFAULTmostra o UUID correto de /dev/md0:
index=0
kernel="/boot/vmlinuz-6.6.25-2.1.an23.x86_64"
args="ro resume=UUID=7cb849cb-db1a-46da-a64b-5afffb1e7c4c rhgb quiet"
root="UUID=d3984281-70f1-47fc-aaf0-8627d49ec68f"
initrd="/boot/initramfs-6.6.25-2.1.an23.x86_64.img $tuned_initrd"
title="Anolis OS (6.6.25-2.1.an23.x86_64) 23"
id="1e06d08a379c4b8eb7c36745cd33b690-6.6.25-2.1.an23.x86_64"
  • O conteúdo de /boot/efi/EFI/anolis/grub.cfg:
search --no-floppy --fs-uuid --set=dev d3984281-70f1-47fc-aaf0-8627d49ec68f
set prefix=($dev)/boot/grub2
export $prefix
configfile $prefix/grub.cfg
  • O conteúdo de /boot/grub2/grub.cfg:
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub2-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
set pager=1

if [ -f ${config_directory}/grubenv ]; then
  load_env -f ${config_directory}/grubenv
elif [ -s $prefix/grubenv ]; then
  load_env
fi
if [ "${next_entry}" ] ; then
   set default="${next_entry}"
   set next_entry=
   save_env next_entry
   set boot_once=true
else
   set default="${saved_entry}"
fi

if [ x"${feature_menuentry_id}" = xy ]; then
  menuentry_id_option="--id"
else
  menuentry_id_option=""
fi

export menuentry_id_option

if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function load_video {
  if [ x$feature_all_video_module = xy ]; then
    insmod all_video
  else
    insmod efi_gop
    insmod efi_uga
    insmod ieee1275_fb
    insmod vbe
    insmod vga
    insmod video_bochs
    insmod video_cirrus
  fi
}

terminal_output console
if [ x$feature_timeout_style = xy ] ; then
  set timeout_style=menu
  set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
  set timeout=5
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/00_tuned ###
set tuned_params=""
set tuned_initrd=""
### END /etc/grub.d/00_tuned ###

### BEGIN /etc/grub.d/01_users ###
if [ -f ${prefix}/user.cfg ]; then
  source ${prefix}/user.cfg
  if [ -n "${GRUB2_PASSWORD}" ]; then
    set superusers="root"
    export superusers
    password_pbkdf2 root ${GRUB2_PASSWORD}
  fi
fi
### END /etc/grub.d/01_users ###

### BEGIN /etc/grub.d/08_fallback_counting ###
insmod increment
# Check if boot_counter exists and boot_success=0 to activate this behaviour.
if [ -n "${boot_counter}" -a "${boot_success}" = "0" ]; then
  # if countdown has ended, choose to boot rollback deployment,
  # i.e. default=1 on OSTree-based systems.
  if  [ "${boot_counter}" = "0" -o "${boot_counter}" = "-1" ]; then
    set default=1
    set boot_counter=-1
  # otherwise decrement boot_counter
  else
    decrement boot_counter
  fi
  save_env boot_counter
fi
### END /etc/grub.d/08_fallback_counting ###

### BEGIN /etc/grub.d/10_linux ###
insmod part_gpt
insmod diskfilter
insmod mdraid1x
insmod ext2
set root='mduuid/ae68681154894aa6c48d458fe0bbc232'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=root --hint='mduuid/ae68681154894aa6c48d458fe0bbc232'  d3984281-70f1-47fc-aaf0-8627d49ec68f
else
  search --no-floppy --fs-uuid --set=root d3984281-70f1-47fc-aaf0-8627d49ec68f
fi
insmod part_gpt
insmod fat
set boot='hd0,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
  search --no-floppy --fs-uuid --set=boot --hint-bios=hd0,gpt1 --hint-efi=hd0,gpt1 --hint-baremetal=ahci0,gpt1  3687-D3D5
else
  search --no-floppy --fs-uuid --set=boot 3687-D3D5
fi

# This section was generated by a script. Do not modify the generated file - all changes
# will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
#
# The blscfg command parses the BootLoaderSpec files stored in /boot/loader/entries and
# populates the boot menu. Please refer to the Boot Loader Specification documentation
# for the files format: https://systemd.io/BOOT_LOADER_SPECIFICATION/.

# The kernelopts variable should be defined in the grubenv file. But to ensure that menu
# entries populated from BootLoaderSpec files that use this variable work correctly even
# without a grubenv file, define a fallback kernelopts variable if this has not been set.
#
# The kernelopts variable in the grubenv file can be modified using the grubby tool or by
# executing the grub2-mkconfig tool. For the latter, the values of the GRUB_CMDLINE_LINUX
# and GRUB_CMDLINE_LINUX_DEFAULT options from /etc/default/grub file are used to set both
# the kernelopts variable in the grubenv file and the fallback kernelopts variable.
if [ -z "${kernelopts}" ]; then
  set kernelopts="root=UUID=d3984281-70f1-47fc-aaf0-8627d49ec68f ro resume=UUID=7cb849cb-db1a-46da-a64b-5afffb1e7c4c rhgb quiet "
fi

insmod blscfg
blscfg
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/10_reset_boot_success ###
# Hiding the menu is ok if last boot was ok or if this is a first boot attempt to boot the entry
if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
  set menu_hide_ok=1
else
  set menu_hide_ok=0 
fi
# Reset boot_indeterminate after a successful boot
if [ "${boot_success}" = "1" ] ; then
  set boot_indeterminate=0
# Avoid boot_indeterminate causing the menu to be hidden more than once
elif [ "${boot_indeterminate}" = "1" ]; then
  set boot_indeterminate=2
fi
# Reset boot_success for current boot 
set boot_success=0
save_env boot_success boot_indeterminate
### END /etc/grub.d/10_reset_boot_success ###

### BEGIN /etc/grub.d/12_menu_auto_hide ###
if [ x$feature_timeout_style = xy ] ; then
  if [ "${menu_show_once}" ]; then
    unset menu_show_once
    save_env menu_show_once
    set timeout_style=menu
    set timeout=60
  elif [ "${menu_auto_hide}" -a "${menu_hide_ok}" = "1" ]; then
    set orig_timeout_style=${timeout_style}
    set orig_timeout=${timeout}
    if [ "${fastboot}" = "1" ]; then
      # timeout_style=menu + timeout=0 avoids the countdown code keypress check
      set timeout_style=menu
      set timeout=0
    else
      set timeout_style=hidden
      set timeout=1
    fi
  fi
fi
### END /etc/grub.d/12_menu_auto_hide ###

### BEGIN /etc/grub.d/14_menu_show_once ###
if [ x$feature_timeout_style = xy ]; then
  if [ "${menu_show_once_timeout}" ]; then
    set timeout_style=menu
    set timeout="${menu_show_once_timeout}"
    unset menu_show_once_timeout
    save_env menu_show_once_timeout
  fi
fi
### END /etc/grub.d/14_menu_show_once ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_ppc_terminfo ###
### END /etc/grub.d/20_ppc_terminfo ###

### BEGIN /etc/grub.d/25_bli ###
if [ "$grub_platform" = "efi" ]; then
  insmod bli
fi
### END /etc/grub.d/25_bli ###

### BEGIN /etc/grub.d/30_os-prober ###
    menuentry 'Anolis OS 23 (on /dev/sda3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-6.6.25-2.1.an23.x86_64--7ed59ca5-1062-4841-9eaf-5455de1ff527' {
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  7ed59ca5-1062-4841-9eaf-5455de1ff527
        else
          search --no-floppy --fs-uuid --set=root 7ed59ca5-1062-4841-9eaf-5455de1ff527
        fi
        linux /boot/vmlinuz-6.6.25-2.1.an23.x86_64 root=/dev/sda3
        initrd /boot/initramfs-6.6.25-2.1.an23.x86_64.img
    }
    menuentry 'Anolis OS 23 (on /dev/sda3)' --class gnu-linux --class gnu --class os $menuentry_id_option 'osprober-gnulinux-/boot/vmlinuz-0-rescue-1e06d08a379c4b8eb7c36745cd33b690--7ed59ca5-1062-4841-9eaf-5455de1ff527' {
        insmod part_gpt
        insmod ext2
        set root='hd0,gpt3'
        if [ x$feature_platform_search_hint = xy ]; then
          search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3  7ed59ca5-1062-4841-9eaf-5455de1ff527
        else
          search --no-floppy --fs-uuid --set=root 7ed59ca5-1062-4841-9eaf-5455de1ff527
        fi
        linux /boot/vmlinuz-0-rescue-1e06d08a379c4b8eb7c36745cd33b690 root=/dev/sda3
        initrd /boot/initramfs-0-rescue-1e06d08a379c4b8eb7c36745cd33b690.img
    }

# Other OS found, undo autohiding of menu unless menu_auto_hide=2
if [ "${orig_timeout_style}" -a "${menu_auto_hide}" != "2" ]; then
  set timeout_style=${orig_timeout_style}
  set timeout=${orig_timeout}
fi
### END /etc/grub.d/30_os-prober ###

### BEGIN /etc/grub.d/30_uefi-firmware ###
if [ "$grub_platform" = "efi" ]; then
    fwsetup --is-supported
    if [ "$?" = 0 ]; then
        menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
            fwsetup
        }
    fi
fi
### END /etc/grub.d/30_uefi-firmware ###

### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries.  Simply type the
# menu entries you want to add after this comment.  Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###

### BEGIN /etc/grub.d/41_custom ###
if [ -f  ${config_directory}/custom.cfg ]; then
  source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
  source $prefix/custom.cfg
fi
### END /etc/grub.d/41_custom ###

Erro que recebi

  • O processo de inicialização travou em encontrar /dev/md0. O tempo limite é PARA SEMPRE

O que eu tentei

  • Alterar os caminhos das partições mdadm /etc/fstabde UUID para /dev/md0(1)não funciona.
  • dracut --regenerate-all -fnão funciona.
  • Como é impossível inicializar com sucesso, os logs de dmesgou journalctlnão estão disponíveis.
  • Tentei inicializar o sistema internamente /dev/md0por meio da linha de comando do GRUB diretamente. O processo de inicialização ainda está travado em encontrar /dev/md0.
boot
  • 1 respostas
  • 68 Views
Martin Hope
Brikkol
Asked: 2024-12-14 06:10:25 +0800 CST

O Postfix não inicia com systemctl, mas sim com "postfix start".

  • 5

Ubuntu 24.04.1 LTS, "postfix start" e "postfix stop" funcionam perfeitamente.

systemctl start postfix (sem resposta)

/var/log/syslog

2024-12-13T21:49:14.744589+01:00 aaa systemd[1]: Starting [email protected] - Postfix Mail Transport Agent (instance -)...
2024-12-13T21:49:15.002726+01:00 aaa systemd[1]: [email protected]: Control process exited, code=exited, status=1/FAILURE
2024-12-13T21:49:15.003169+01:00 aaa systemd[1]: [email protected]: Failed with result 'exit-code'.
2024-12-13T21:49:15.004922+01:00 aaa systemd[1]: Failed to start [email protected] - Postfix Mail Transport Agent (instance -).

journalctl -xeu [email protected]

This looks like spam.

systemctl status postfix.service

systemctl status postfix.service
postfix.service - Postfix Mail Transport Agent
     Loaded: loaded (/usr/lib/systemd/system/postfix.service; enabled; preset: enabled)
     Active: active (exited) since Fri 2024-12-13 20:51:32 CET; 1h 1min ago
       Docs: man:postfix(1)
    Process: 960 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 960 (code=exited, status=0/SUCCESS)
        CPU: 7ms

Dec 13 20:51:31 aaa systemd[1]: Starting postfix.service - Postfix Mail Transport Agent...
Dec 13 20:51:32 aaa systemd[1]: Finished postfix.service - Postfix Mail Transport Agent.

systemctl status [email protected]

[email protected] - Postfix Mail Transport Agent (instance -)
     Loaded: loaded (/usr/lib/systemd/system/[email protected]; enabled-runtime; preset: enabled)
     Active: failed (Result: exit-code) since Fri 2024-12-13 21:49:15 CET; 4min 48s ago
       Docs: man:postfix(1)
    Process: 2191 ExecStartPre=/usr/lib/postfix/configure-instance.sh - (code=exited, status=1/FAILURE)
        CPU: 246ms

Dec 13 21:49:14 aaa systemd[1]: Starting [email protected] - Postfix Mail Transport Agent (instance -)...
Dec 13 21:49:15 aaa systemd[1]: [email protected]: Control process exited, code=exited, status=1/FAILURE
Dec 13 21:49:15 aaa systemd[1]: [email protected]: Failed with result 'exit-code'.
Dec 13 21:49:15 aaa systemd[1]: Failed to start [email protected] - Postfix Mail Transport Agent (instance -).

postfix check (sem resposta) = configuração ok

Tentei tudo sem os arquivos

/var/lib/postfix/master.lock
/var/spool/postfix/pid/master.pid

Eu tentei também inet_interfaces = ipv4 e #inet_interfaces = ipv4 nada muda.

Ajuda, obrigado

postfix
  • 1 respostas
  • 109 Views
Martin Hope
Joel Coel
Asked: 2024-12-14 02:02:37 +0800 CST

Use o certificado curinga CA público para conexão SSH inicial

  • 9

Digamos que minha organização tenha um domínio example.come um servidor executando uma versão recente do Ubuntu com o nome myserver.example.com. Digamos também que eu esteja em uma máquina Windows capaz de alcançar o servidor na porta 22. Quero usar putty para ssh para este servidor.

Na primeira vez que eu conectar, verei uma mensagem de aviso como esta:

mensagem putty: a chave do host não está armazenada em cache para este servidor

A partir daqui, posso conectar uma vez e continuar a ver o erro no futuro, aceitar a chave do host para que ela seja confiável no futuro ou cancelar, já que não posso validar a identidade do servidor com certeza.

Agora, digamos que eu também tenha um certificado curinga *.example.com emitido por uma grande CA de confiança pública, como DigiCert, Comodo, GlobalSign, etc., e dentro myserver.example.comda lista de nomes alternativos de assunto (SAN).

Como eu poderia instalar o certificado no servidor para que ele seja usado para a assinatura de conexão ssh (não autenticação de usuário — isso será separado!) e confiável pelo computador cliente, para que esse aviso não seja exibido? Quais atributos precisam ser incluídos com o certificado que podem não ser incluídos de fábrica?

ubuntu
  • 3 respostas
  • 892 Views
Martin Hope
Arthur Attout
Asked: 2024-12-13 20:40:49 +0800 CST

O volume do Docker montado como :ro ainda pode ser gravado

  • 5

Eu tenho uma datapasta na raiz do meu sistema de arquivos

arthur@debian:~$ ls -la /data
total 36
drwxr-xr-x  9 root   root            4096 Dec 13 09:45 .
drwxr-xr-x 21 root   root            4096 Dec 13 10:08 ..
drwxr-xr-x  2 root   root            4096 Jun 15  2020 500g2
drwxr-xr-x  6 root   root            4096 Nov 16 18:20 quad_1
drwxr-sr-x  5 arthur arthur          4096 Dec 13 13:29 tera_1
drwxrwxr-x  6 root   root            4096 Dec  7 00:00 tera_2
drwxr-xr-x  5 root   root            4096 Sep 18 21:32 tera_3
drwxr-xr-x  6 root   root            4096 May  5  2021 tera_4

Quero montar o diretório inteiro como um volume docker, mas o contêiner deve ter acesso somente leitura. Então usei:ro

sudo docker run -it --name testcontainer -v /data:/internal_data:ro --rm alpine:latest /bin/sh

Quando o shell é gerado, ainda consigo escrever no contêiner supostamente somente leitura. Por que isso?

/ # touch /internal_data/test
touch: /internal_data/test: Read-only file system        # Ok, container prevented from writing
/ # touch /internal_data/tera_1/test                     # This worked
/ # touch /internal_data/tera_2/test                     # This worked
/ # touch /internal_data/500g2/test                      
touch: /internal_data/500g2/test: Read-only file system # Ok, container prevented from writing
/ #
docker
  • 1 respostas
  • 79 Views
Prev
Próximo

Sidebar

Stats

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

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

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