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 / ubuntu / Perguntas / 1187384
Accepted
Silicomancer
Silicomancer
Asked: 2019-11-09 14:20:08 +0800 CST2019-11-09 14:20:08 +0800 CST 2019-11-09 14:20:08 +0800 CST

Use a carteira do KDE para autenticar uma chamada de montagem

  • 772

Estou usando um comando semelhante ao seguinte para montar alguns compartilhamentos NAS samba no meu sistema Kubuntu 18.04:

sudo mount -t cifs -o "username=MyUser" //MyServer/MyFolder ~/SharedFolders/MyFolder

Isso funciona bem. No entanto, ele pede a senha todas as vezes. Eu gostaria de usar a carteira de senhas do KDE (ou algum agente similar) para autenticação.

Eu quero que a senha seja solicitada na GUI uma única vez, então ela deve ser armazenada permanentemente e reutilizada para mountchamadas futuras.

É possível algo assim com mount?

Se não, existe uma alternativa automatizável no KDE?

kde samba mount password kwallet
  • 1 1 respostas
  • 571 Views

1 respostas

  • Voted
  1. Best Answer
    Filip Majetić
    2020-08-23T05:07:00+08:002020-08-23T05:07:00+08:00

    Não há como saber mountqual programa usar para armazenar/ler senhas, mas existem algumas ferramentas do KDE que você pode combinar para automatizar o processo.

    Para armazenar/ler senhas: kwalletcli
    Para um prompt de senha da GUI: kdialog
    Você deve poder instalá-las com seu gerenciador de pacotes.

    Eu escrevi um script que faz isso (com algumas opções extras). Ele deve estar fazendo tudo o que você pediu: se a senha não existir, um prompt da GUI é mostrado (se disponível) e a senha é armazenada em uma carteira para uso posterior.

    Você pode atualizar a senha a partir da linha de comando kwalletclinovamente, mas a única maneira que encontrei para excluí-los é o aplicativo KWalletManager GUI.

    Aqui está o script a partir de 22/08/2020:

    #!/bin/sh
    
    usage() {
        echo "Usage: $0 [-u username] [-o options] share mount"
        echo
        echo "Defaults for optional parameters:"
        echo
        echo "  username:  the output of 'id -un', i.e. the current user"
        echo "  options:   defaults,uid=1000,gid=1000,iocharset=utf8"
        echo "             Pass an empty string to clear default options"
        exit 2
    }
    
    while getopts "u:o:" opt; do
        case "$opt" in
            u) USERNAME="$OPTARG" ;;
            o) OPTIONS="$OPTARG" ;;
            *) usage ;;
        esac
    done
    shift $((OPTIND-1))
    
    [ "$#" -ne 2 ] && usage
    
    # Mount settings
    USERNAME="${USERNAME:-$(id -un)}"
    OPTIONS="${OPTIONS-defaults,uid=1000,gid=1000,iocharset=utf8}"
    SHARE="$1"
    MOUNT="$2"
    
    # Wallet settings
    FOLDER="CIFS credentials"
    ENTRY="$USERNAME@${SHARE#//}"
    
    read_password() {
        PASS_PROMPT="Password for $USERNAME@${SHARE#//}: "
    
        if command -v kdialog >/dev/null 2>&1; then
            PASSWORD="$(kdialog --password "$PASS_PROMPT")"
        else
            # from https://stackoverflow.com/a/28393320/6702490
            trap 'stty echo' EXIT
            stty -echo
            printf "%s" "$PASS_PROMPT"
            read -r PASSWORD
            printf "\n"
            stty echo
            trap - EXIT
        fi
    }
    
    if ! PASSWORD="$(kwalletcli -f "$FOLDER" -e "$ENTRY" 2>/dev/null)"; then
        if read_password && [ -n "$PASSWORD" ]; then
            kwalletcli -f "$FOLDER" -e "$ENTRY" -p "$PASSWORD"
        else
            echo "Empty/no password entered, skipping writing password to wallet and mount."
            exit 1
        fi
    fi
    
    sudo mount -t cifs -o "${OPTIONS}${OPTIONS:+,}username=$USERNAME,password=$PASSWORD" "$SHARE" "$MOUNT"
    

    Nota: usar kwallet-queryseria a melhor opção, pois vem junto com o KDE/kwallet e suporta carteiras não padrão, mas não consegui fazê-lo armazenar uma senha. Não houve erros mostrados e nenhum código de saída diferente de zero, mas a senha não seria gravada na carteira.

    • 3

relate perguntas

  • Como faço para voltar ao splash / login do KDE depois de instalar o XFCE?

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