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-128739

Shuzheng's questions

Martin Hope
Shuzheng
Asked: 2023-08-24 22:35:22 +0800 CST

Por que `encontrar . -type d -not -perm 775` imprime diretórios com permissões `rwxr-xr-x`?

  • 2

Quero encontrar todos os diretórios sem um conjunto específico de permissões. Como pode ser visto na imagem abaixo, findimprime diretórios que não devem ser listados.

Alguém pode descrever por quê?

insira a descrição da imagem aqui

find
  • 1 respostas
  • 53 Views
Martin Hope
Shuzheng
Asked: 2023-05-22 20:36:04 +0800 CST

Por que o Bash gera duas linhas ao redirecionar stdout para stderr duas vezes (`>&2` e `>/dev/stderr`)?

  • 5

Por que o seguinte redirecionamento de saída resulta na impressão de duas linhas?

As >&2cópias stdout para stderr e >/dev/stderrtambém redirecionam stdout para stderr.

Espero apenas uma única linha de saída, pois echo fooa saída é redirecionada para stderr.

Por que não vejo duas linhas de saída para: echo foo >/dev/stderr 2>&1e echo foo >/dev/stdout 2>&1?

➜  app git:(python3.10-pipeline) ✗ echo foo >/dev/stderr >&2
foo
foo
➜  app git:(python3.10-pipeline) ✗ echo foo >/dev/stdout >&2
foo
foo
bash
  • 1 respostas
  • 43 Views
Martin Hope
Shuzheng
Asked: 2023-04-04 16:56:09 +0800 CST

Como analisar os parâmetros posicionais do script Bash ao usar o "Bash Strict Mode"?

  • 7

Bash Strict Mode é definido da seguinte forma:

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

http://redsymbol.net/articles/unofficial-bash-strict-mode/

Considere a seguinte análise de parâmetros posicionais em um script Bash:

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'

usage() {
  echo ""
  echo "usage:"
  echo "$0 [options]"
  echo "  -r | --redirect-uri:  redirect uri"
  echo "  -a | --app-role:      app role id"
  echo "  -h | --help:          help"
  echo ""
}

redirect_uri=""
app_role=""

while [ "$1" != "" ]; do
  case $1 in
  -r | --redirect-uri)
    shift
    redirect_uri="$1"
    ;;
  -a | --app-role)
    shift
    app_role="$1"
    ;;
  -h | --help)
    usage
    exit 0
    ;;
  *)
    usage
    exit 1
    ;;
  esac
  shift
done

...

Isso não funciona com o seguinte erro, por exemplo:

$ ./app.sh -r https://example.net:8080/auth/callback -a 53b37b21-2c6e-4731-a5e5-15b98052c686        
./app.sh: line 18: $1: unbound variable

Acho que o motivo é a verificação final na whilecondição, após shift, onde $1é indefinido.

Como posso encerrar a análise de parâmetros na whileinstrução sem causar a falha do script ao usar o Bash Strict Mode?

bash
  • 1 respostas
  • 135 Views
Martin Hope
Shuzheng
Asked: 2021-10-28 01:20:58 +0800 CST

Por que `copy_from_user()` e `copy_to_user()` são necessários, quando o kernel é mapeado no mesmo espaço de endereço virtual que o próprio processo?

  • 2

Por que são copy_from_user()e copy_to_user()necessários, quando o kernel é mapeado no mesmo espaço de endereço virtual que o próprio processo?

Tendo desenvolvido alguns módulos de kernel (de brinquedo) para fins de aprendizado, rapidamente percebi isso copy_from_user()e copy_to_user()precisei copiar dados de/para buffers de espaço do usuário; caso contrário, erros relacionados a endereços inválidos resultaram em falhas.

Mas se 0x1fffffé um endereço virtual apontando para um buffer de espaço do usuário, por que esse endereço não é válido no kernel? O kernel está no mesmo espaço de endereço virtual, portanto, 0x1fffffseria mapeado para a mesma memória física.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

kernel drivers
  • 1 respostas
  • 1133 Views
Martin Hope
Shuzheng
Asked: 2021-10-23 02:47:56 +0800 CST

É seguro instalar manualmente um novo kernel para Debian e outras distribuições?

  • 0

Geralmente é seguro compilar e instalar manualmente um novo kernel do kernel.org usando:

make -j 8
make install 
make modules_install

ou a distribuição, por exemplo, Debian, pode quebrar, porque assume que gerencia atualizações do kernel por meio de apt?

Intuitivamente, tudo deve continuar funcionando, pois o kernel preserva uma API syscall estável e os drivers são compatíveis com versões anteriores.

debian kernel
  • 1 respostas
  • 88 Views
Martin Hope
Shuzheng
Asked: 2021-10-06 00:46:12 +0800 CST

O interpretador `PT_INTERP` personalizado resulta em falha de segmentação?

  • 1

Depois de ler este artigo sobre como executar programas arbitrários alterando o PT_INTERPpara um interpretador personalizado, tentei experimentar isso localmente:

$ cat flag.c
#include <stdio.h>

int main(int argc, char **argv) {
    printf("Hello World!\n");
    return 0;
}
$ gcc -static flag.c -o flag
$ cat solution.c
const char interp_section[] __attribute__((section(".interp"))) = "./flag";
$ gcc -s -fno-ident -Wl,--build-id=none -Wl,-e,0 -static -nostdlib solution.c -o solution
$ ./solution
Segmentation fault
$ ./flag
Hello World!

Este PT_INTERPcabeçalho do programa contém um caminho, que é o caminho do interpretador (arquivo executável) em que nosso ELF será executado

Desde os solutionpedidos ./flagcomo seu interpretador, por que não ./flagroda e imprime a mensagem "Hello World", quando solutioné executado? Em vez disso, ocorre uma falha de segmentação, que é diferente do comportamento no artigo.

Como posso registrar e executar com sucesso um interpretador personalizado em PT_INTERP?

$ readelf -l solution

Elf file type is EXEC (Executable file)
Entry point 0x0
There are 4 program headers, starting at offset 64

Program Headers:
  Type           Offset             VirtAddr           PhysAddr
                 FileSiz            MemSiz              Flags  Align
  PHDR           0x0000000000000040 0x0000000000400040 0x0000000000400040
                 0x00000000000000e0 0x00000000000000e0  R      0x8
  INTERP         0x0000000000000120 0x0000000000400120 0x0000000000400120
                 0x0000000000000007 0x0000000000000007  R      0x1
      [Requesting program interpreter: ./flag]
  LOAD           0x0000000000000000 0x0000000000400000 0x0000000000400000
                 0x0000000000000127 0x0000000000000127  R      0x1000
  GNU_STACK      0x0000000000000000 0x0000000000000000 0x0000000000000000
                 0x0000000000000000 0x0000000000000000  RW     0x10

 Section to Segment mapping:
  Segment Sections...
   00
   01     .interp
   02     .interp
   03
linux debian
  • 1 respostas
  • 193 Views
Martin Hope
Shuzheng
Asked: 2021-09-14 00:34:59 +0800 CST

Como definir a largura da tela "ilimitada" para `ps` para evitar que ela trunque a saída?

  • 0

pstrunca a saída quando a saída padrão é um terminal para acomodar a largura do terminal.

Vejo a partir ps --help outputdisso pssuportes --widthe --linesopções para controlar a largura e a altura da tela, respectivamente.

Acho estranho especificar um grande número arbitrário como --width 1000, então existe algum valor ou opção que define a largura da tela "ilimitada"?

root@controlplane:~# apt list --installed procps
Listing... Done
procps/now 2:3.3.12-3ubuntu1.2 amd64 [installed,local]

Extra: É possível usar padrões de pesquisa com -C <cmd>para evitar ter que digitar o cmdtexto?

Exemplo

root@controlplane:~# ps -f -C kubelet 
UID        PID  PPID  C STIME TTY          TIME CMD
root      9231     1  0 08:20 ?        00:00:07 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/
root@controlplane:~# ps -f -C kubelet | cat
UID        PID  PPID  C STIME TTY          TIME CMD
root      9231     1  0 08:20 ?        00:00:08 /usr/bin/kubelet --bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf --config=/var/lib/kubelet/config.yaml --network-plugin=cni --pod-infra-container-image=k8s.gcr.io/pause:3.2
linux debian
  • 2 respostas
  • 189 Views
Martin Hope
Shuzheng
Asked: 2020-03-01 09:42:26 +0800 CST

Como verificar o número do dispositivo de um dispositivo em `/proc/1/ns/{ns}`?

  • 2

Como verificar o número do dispositivo de um dispositivo em /proc/1/ns/{ns}?

Eu li o código para uma biblioteca Go (veja abaixo), que afirma que é possível determinar se um contêiner está no namespace do host ou não: o número do dispositivo de um sem namespace /proc/1/ns/{ns}é 4 e qualquer outra coisa é maior.

Agora, em um novo contêiner Debian sem namespace de usuário ou cgroup, executo o seguinte comando:

root@54d74f795843:/# ls -la /proc/1/ns
total 0
dr-x--x--x 2 root root 0 Feb 29 17:18 .
dr-xr-xr-x 9 root root 0 Feb 29 17:18 ..
lrwxrwxrwx 1 root root 0 Feb 29 17:18 cgroup -> 'cgroup:[4026531835]'
lrwxrwxrwx 1 root root 0 Feb 29 17:18 ipc -> 'ipc:[4026532290]'
lrwxrwxrwx 1 root root 0 Feb 29 17:18 mnt -> 'mnt:[4026532288]'
lrwxrwxrwx 1 root root 0 Feb 29 17:18 net -> 'net:[4026532293]'
lrwxrwxrwx 1 root root 0 Feb 29 17:18 pid -> 'pid:[4026532291]'
lrwxrwxrwx 1 root root 0 Feb 29 17:18 user -> 'user:[4026531837]'
lrwxrwxrwx 1 root root 0 Feb 29 17:18 uts -> 'uts:[4026532289]'

O que o 4026531837 'user:[4026531837]'significa aqui? Não posso ser o número do dispositivo, porque o contêiner está usando o mesmo namespace de usuário que o host (verifiquei isso).

Como posso listar os números de dispositivo dos arquivos /proc/1/ns/{ns}? O ls -lacomando mostra que esses arquivos são links simbólicos, então como eles podem ter um número de dispositivo?

amicontained/vendor/github.com/jessfraz/bpfd/proc/proc.go/

// HasNamespace determines if a container is using a particular namespace or the
// host namespace.
// The device number of an unnamespaced /proc/1/ns/{ns} is 4 and anything else is
// higher.
// Only works from inside a container.
func HasNamespace(ns string) (bool, error) {
    file := fmt.Sprintf("/proc/1/ns/%s", ns)

    // Use Lstat to not follow the symlink.
    var info syscall.Stat_t
    if err := syscall.Lstat(file, &info); err != nil {
        return false, &os.PathError{Op: "lstat", Path: file, Err: err}
    }

    // Get the device number. If it is higher than 4 it is in a namespace.
    if info.Dev > 4 {
        return true, nil
    }

    return false, nil
}
debian devices
  • 1 respostas
  • 527 Views
Martin Hope
Shuzheng
Asked: 2020-02-18 00:06:33 +0800 CST

O `tmux` suporta qualquer documentação de ajuda através do modo de comando como `vim`s `:help`?

  • 1

Suporta tmuxqualquer documentação de ajuda através do modo de comando ( C-b :) como vim's :help?

Muitas vezes, quero exibir a documentação de ajuda para um tmuxcomando específico, digamos kill-window, incluindo pelo menos os parâmetros do comando.

Posso exibir essas informações tmuxsem consultar a manpágina ou a documentação online?

linux tmux
  • 1 respostas
  • 39 Views
Martin Hope
Shuzheng
Asked: 2020-01-23 23:38:17 +0800 CST

Qual é a definição de uma string no Bash?

  • 0

Qual é a definição de uma string no Bash?

Bash usa o termo "string" em vários lugares em sua documentação, por exemplo, para documentar o =~operador usado para correspondência de expressões regulares:

Um operador binário adicional, =~, está disponível, com a mesma precedência que == e !=. Quando usado, a string à direita do operador é considerada uma expressão regular estendida POSIX e correspondida de acordo (como em regex(3)).

Na seção DEFINITIONS, não vejo nenhuma definição de strings:

DEFINITIONS
       The following definitions are used throughout the rest of this document.
       blank  A space or tab.
       word   A sequence of characters considered as a single unit by the shell.  Also known as a token.
       name   A word consisting only of alphanumeric characters and underscores, and beginning with an alphabetic character or an underscore.  Also referred to as an identifier.
       metacharacter
              A character that, when unquoted, separates words.  One of the following:
              |  & ; ( ) < > space tab newline
       control operator
              A token that performs a control function.  It is one of the following symbols:
              || & && ; ;; ;& ;;& ( ) | |& <newline>

Então, o que exatamente são strings no Bash? Eles podem conter espaços em branco ou caracteres na IFSvariável de ambiente?

NB: Eu sei que as strings são normalmente definidas como uma série de símbolos em um alfabeto.

bash debian
  • 1 respostas
  • 292 Views
Martin Hope
Shuzheng
Asked: 2020-01-18 09:19:45 +0800 CST

Por que "${ARRAY[@]}" é expandido em várias palavras quando está entre aspas?

  • 2

Não entendo por que "${ARRAY[@]}"é expandido para várias palavras, quando é citado ( "...")?

Tome este exemplo:

IFS=":" read -ra ARRAY <<< "foo:bar:baz"
for e in "${ARRAY[@]}"; do echo $e; done
foo
bar
baz

Qualquer outra variável que eu expanda entre aspas, digamos "${VAR}", resulta em uma única palavra:

VAR="foo bar baz"
for a in "${VAR}"; do echo $a; done
foo bar baz

Alguém pode explicar isso para um usuário iniciante do Linux?

bash variable
  • 1 respostas
  • 1072 Views
Martin Hope
Shuzheng
Asked: 2019-12-20 03:16:22 +0800 CST

tmux: Como posso exibir o novo valor de uma opção, ao alterar seu valor por meio de uma associação de teclas?

  • 1

Eu criei a seguinte combinação de teclas para sincronizar todos os painéis em uma janela, para que eu pudesse, por exemplo clear, todos eles simultaneamente:

bind C-s setw synchronize-panes \; display-message "█▓░ synchronize"

A combinação de teclas simplesmente nega o valor da synchronize-panesopção da janela: "on" ou "off".

Embora a combinação de teclas funcione, sou um pouco perfeccionista, então gostaria display-messageque mostrasse o "█▓░ synchronize {new-option-value}".

Isso é possível?

linux terminal
  • 1 respostas
  • 91 Views
Martin Hope
Shuzheng
Asked: 2019-12-19 02:11:32 +0800 CST

Como posso ver quando um pacote foi lançado/atualizado usando `apt`?

  • 4

Eu quero instalar o pacote "file" usando apt, já que meu contêiner do Docker está sem o filecomando. Antes de instalar, estou verificando os detalhes do pacote (veja abaixo).

Como posso ver a data em que esses pacotes foram lançados/atualizados? Suas descrições dizem que eles são suportados por 5 anos, mas isso não faz sentido, quando eu não consigo ver quando eles foram lançados/atualizados?

Além disso, por que está aptlistando dois pacotes de "arquivos"? Qual desses seria instalado, quando eu executar apt install file?

root@eca1fcd5655a:/mnt/dotnetcore# apt show -a file
Package: file
Version: 1:5.32-2ubuntu0.3
Priority: important
Section: utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Christoph Biedl <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 81.9 kB
Depends: libc6 (>= 2.4), libmagic1 (= 1:5.32-2ubuntu0.3)
Homepage: http://www.darwinsys.com/file/
Task: minimal
Supported: 5y
Download-Size: 22.1 kB
APT-Sources: http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 Packages
Description: Recognize the type of data in a file using "magic" numbers

Package: file
Version: 1:5.32-2
Priority: important
Section: utils
Origin: Ubuntu
Maintainer: Ubuntu Developers <[email protected]>
Original-Maintainer: Christoph Biedl <[email protected]>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 81.9 kB
Depends: libc6 (>= 2.4), libmagic1 (= 1:5.32-2)
Homepage: http://www.darwinsys.com/file/
Task: minimal
Supported: 5y
Download-Size: 22.1 kB
APT-Sources: http://archive.ubuntu.com/ubuntu bionic/main amd64 Packages
Description: Recognize the type of data in a file using "magic" numbers
debian files
  • 1 respostas
  • 1009 Views
Martin Hope
Shuzheng
Asked: 2019-10-25 23:07:46 +0800 CST

Como grep para texto em páginas de manual?

  • -1

Acho útil grep para texto, por exemplo, opções específicas, em páginas man a partir da linha de comando.

No entanto, grepnão funciona como esperado, ao operar em páginas man, como pode ser visto abaixo, onde o padrão "-f"apenas corresponde "-"e o padrão "--file"não corresponde a nada ( alias grep='grep --color=always'):

nlykkei-mbp:~ nlykkei$ alias grep
alias grep='grep --color=always'
nlykkei-mbp:~ nlykkei$ man grep | grep -e "-f"
          [-e pattern] [-f file] [--binary-files=value] [--color[=when]]
     -F, --fixed-strings
     -f file, --file=file
     -h, --no-filename
             --binary-file=without-match option.
     -L, --files-without-match
     -l, --files-with-matches
     --binary-files=value
     and the behaviour of the -f flag when used with an empty pattern file is
nlykkei-mbp:~ nlykkei$ man grep | grep -e "--file"
nlykkei-mbp:~ nlykkei$ echo "--file" | grep -e "--file"
--file
nlykkei-mbp:~ nlykkei$ ▒ 

Em contraste, a correspondência de texto canalizado de echoobras conforme o esperado, então isso tem algo a ver com a formatação "invisível" de páginas de manual? É possível um texto grep confiável em páginas de manual?

Nota: eu sei man -ke man -K, mas estes não resolvem exatamente o que estou tentando alcançar.

linux
  • 2 respostas
  • 1137 Views
Martin Hope
Shuzheng
Asked: 2019-09-24 03:55:08 +0800 CST

Como o próprio vinculador/carregador dinâmico pode ser vinculado dinamicamente conforme relatado por `file`?

  • 15

Considere as dependências de objetos compartilhados de /bin/bash, que incluem /lib64/ld-linux-x86-64.so.2(ligador/carregador dinâmico):

ldd /bin/bash
    linux-vdso.so.1 (0x00007fffd0887000)
    libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f57a04e3000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f57a04de000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f57a031d000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f57a0652000)

A inspeção /lib64/ld-linux-x86-64.so.2mostra que é um link simbólico para /lib/x86_64-linux-gnu/ld-2.28.so:

ls -la /lib64/ld-linux-x86-64.so.2 
lrwxrwxrwx 1 root root 32 May  1 19:24 /lib64/ld-linux-x86-64.so.2 -> /lib/x86_64-linux-gnu/ld-2.28.so

Além disso, os próprios filerelatórios /lib/x86_64-linux-gnu/ld-2.28.sosão vinculados dinamicamente:

file -L /lib64/ld-linux-x86-64.so.2
/lib64/ld-linux-x86-64.so.2: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=f25dfd7b95be4ba386fd71080accae8c0732b711, stripped

Eu gostaria de saber:

  1. Como o próprio vinculador/carregador dinamicamente ( /lib64/ld-linux-x86-64.so.2) pode ser vinculado dinamicamente? Ele se conecta em tempo de execução?
  2. /lib/x86_64-linux-gnu/ld-2.28.soestá documentado para lidar com binários a.out ( man ld.so), mas /bin/bashum ELF é executável?

O programa ld.so lida com binários a.out, um formato usado há muito tempo; ld-linux.so* (/lib/ld-linux.so.1 para libc5, /lib/ld-linux.so.2 para glibc2) lida com ELF, que todo mundo vem usando há anos.

linux
  • 2 respostas
  • 2535 Views
Martin Hope
Shuzheng
Asked: 2019-09-24 00:54:21 +0800 CST

Por que a operação `chroot` resulta em erro: "bash: /root/.bashrc: Permissão negada"?

  • 3

Por que a chrootoperação resulta em erro: " bash: /root/.bashrc: Permission denied"?

Eu tenho testado chrootpara fins de aprendizado e encontrei o seguinte erro ao executar /bin/bash:

nlykkei@debian:~$ id
uid=1000(nlykkei) gid=1000(nlykkei) groups=1000(nlykkei),27(sudo)
nlykkei@debian:~$ sudo chroot --userspec nlykkei:root --groups sudo / /bin/bash
bash: /root/.bashrc: Permission denied
nlykkei@debian:/$ id
uid=1000(nlykkei) gid=0(root) groups=0(root),27(sudo)

Parece que /bin/bashestá tentando acessar root em .bashrcvez de nlykkei's?

Além disso, não posso fazer NEWROOTeg ~e executar /bin/bashcriando ~/bin/bash(copiar):

nlykkei@debian:~$ ls -la ~/bin/bash
-rwxr-xr-x 1 nlykkei nlykkei 1168776 Sep 23 10:49 /home/nlykkei/bin/bash
nlykkei@debian:~$ sudo chroot --userspec nlykkei:root --groups sudo /home/nlykkei/ /bin/bash
chroot: failed to run command ‘/bin/bash’: No such file or directory

Alguma maneira de resolver esses problemas?

nlykkei@debian:~$ uname -a
Linux debian 4.19.0-5-amd64 #1 SMP Debian 4.19.37-5 (2019-06-19) x86_64 GNU/Linux
bash
  • 1 respostas
  • 817 Views
Martin Hope
Shuzheng
Asked: 2019-09-07 03:43:12 +0800 CST

O vinculador dinâmico é invocado automaticamente pelo sistema operacional ou por código embutido no arquivo ELF?

  • 4

Não tenho certeza se o vinculador dinâmico /usr/bin/ldé invocado automaticamente pelo sistema operacional, quando o arquivo ELF é carregado ou se é invocado pelo código incorporado no arquivo ELF?

Quando uso r2para depurar um arquivo ELF, ele para na primeira instrução a ser executada, que deveria ser um código vinculador dinâmico, mas não sei se esse código faz parte do arquivo ELF.

linux
  • 1 respostas
  • 388 Views
Martin Hope
Shuzheng
Asked: 2019-09-01 06:56:59 +0800 CST

Quais das duas versões de `>&` são usadas para `[n]>&/dev/tcp/localhost/9999`?

  • 0

Não tenho certeza se devo interpretar /dev/tcp/localhost/9999como um inteiro (descritor de arquivo) ou como um nome de arquivo.

Consequentemente, não tenho certeza se a seção " Redirecionando a saída padrão e o erro padrão " (1) ou a seção " Duplicando descritores de arquivo " (2) do manual do Bash se aplica ao redirecionamento acima.

O redirecionamento funciona tanto se nfor especificado ou não, mas (1) não recebe um nargumento, implicando que (1) não é usado?

Além disso, se /dev/tcp/localhost/9999é considerado um nome de arquivo (não um número inteiro), por que o <&1comando a seguir funciona?:

/bin/bash >&/dev/tcp/localhost/9999 <&1

Nesse caso, 1(stdout) não é um descritor de arquivo aberto para falha de entrada (2)?

linux bash
  • 1 respostas
  • 230 Views
Martin Hope
Shuzheng
Asked: 2019-08-31 03:27:13 +0800 CST

Os arquivos .service systemd graváveis ​​mundialmente criados como links simbólicos em /etc/systemd/system impõem uma ameaça à segurança?

  • 0

Os arquivos systemd graváveis ​​mundialmente .servicecriados como links simbólicos /etc/systemd/systemimpõem uma ameaça à segurança?

Seria possível modificar de alguma forma os links para direcionar .servicearquivos arbitrários no sistema e fazer o systemd executar esses arquivos como root?

As permissões para o /etc/systemd/systemdiretório são as seguintes:

drwxr-xr-x. 11 root root 4096 Aug 30 12:57 /etc/systemd/system/

e os links graváveis ​​por todo o mundo neste diretório são:

1050594    0 lrwxrwxrwx   1 root     root            9 Apr  9 11:53 /etc/systemd/system/ctrl-alt-del.target -> /dev/null
1050595    0 lrwxrwxrwx   1 root     root            9 Apr  9 11:54 /etc/systemd/system/sensu-server.service -> /dev/null
1052003    0 lrwxrwxrwx   1 root     root            9 Apr  9 11:54 /etc/systemd/system/sensu-api.service -> /dev/null
1052037    0 lrwxrwxrwx   1 root     root            9 Apr  9 11:55 /etc/systemd/system/dataeng.service -> /dev/null
linux systemd
  • 1 respostas
  • 396 Views
Martin Hope
Shuzheng
Asked: 2019-08-28 23:34:19 +0800 CST

Como usar sysctl em variantes do UNIX, por exemplo, macOS, para ler informações normalmente encontradas em /proc/self no Linux?

  • 2

Eu tenho usado /proc/selfpor um longo tempo para ler informações relacionadas ao processo, como /proc/self/mapsetc.

No entanto, em algumas variantes do UNIX, como o macOS, o sistema de procfsarquivos não é implementado; mas como este link indica, deve ser possível obter informações semelhantes usando sysctl.

Lendo a saída de sysctl -a, acho que as informações não estão diretamente associadas a nenhum processo específico, mas estão relacionadas ao sistema ou kernel.

Então, como posso usar sysctlpara ler as informações, normalmente presentes nas /proc/selfdistribuições Linux, em variantes do UNIX como o macOS?

Eu quero, por exemplo, entrar /proc/self/mapsno macOS.

linux kernel
  • 1 respostas
  • 724 Views

Sidebar

Stats

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

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk 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