프로그램을 실행하기 위해 사용자에게 비밀번호를 입력하도록 요구하는 가장 깨끗한 방법은 무엇입니까?

프로그램을 실행하기 위해 사용자에게 비밀번호를 입력하도록 요구하는 가장 깨끗한 방법은 무엇입니까?

타사 응용 프로그램을 사용하지 않고 특정 프로그램을 실행하기 위해 사용자에게 암호를 입력하도록 요구하는 가장 깨끗한 방법은 무엇입니까? 예를 들어, firefox터미널에서 입력하여 시작하면 비밀번호를 묻는 메시지가 표시되고 올바른 비밀번호를 입력한 경우에만 실행됩니다. 이와 같은 것이 사용자 권한 사용에 영향을 미칠 수 있습니다.

답변1

비밀번호를 만들고 exampleuser설정하세요.

그런 다음 firefox권한을 로 변경 700하고 Firefore를 own로 변경합니다 exampleruser. 그 후에는 Firefox를 실행 root하거나 또는 명령을 exampleuser사용할 수 있습니다 .sudosu

예를 들어:

sudo useradd exampleuser
sudo passwd exampleuser 
sudo chown exampleuser:exampleuser ../firefox 
sudo chmod 700 ../firefox

시험:

$ ../firefox
bash: ../firefox: Permission denied
$ su - exampleuser -c ../firefox
Password:  #<-- type exampleuser password

또는 루트 사용자로 실행하십시오.

$ sudo ../firefox
[sudo] password for username:  #<-type root password

답변2

여기에 이미지 설명을 입력하세요.

이 스크립트를 사용하여 대화 상자에서 비밀번호를 요청한 다음 애플리케이션을 시작합니다. 비밀번호가 정확하면 애플리케이션의 전체 경로가 해독되어 실행됩니다.

이 스크립트를 사용하기 전에 컴퓨터에서 애플리케이션을 숨긴 다음 이 명령을 사용하여 애플리케이션의 전체 경로를 암호화해 보세요. 비밀번호를 묻고 전체 경로인 Base64로 비밀번호를 암호화하고 인코딩합니다. echo -n "/Path/To/Your/Application" | openssl enc -aes256 -a -pbkdf2

이 스크립트에서는 yad가 대화 상자를 표시해야 합니다. sudo apt install yad

#!/bin/bash
#
# Require yad:
# $ sudo apt install yad
#
# Before use it, use these command to get the full path of your application, encrypted and coded in base64, with your password:
# $ echo -n "/Path/To/Your/Application" | openssl enc -aes256 -a -pbkdf2

function main
{
password=$(yad --text-align=center --text="Password" --entry --entry-text="" --hide-text --fixed --title="" --button=OK)

data="xxx" # replace xxx by the full path of your app encrypted and coded in base64 with the upper command

MyApp=$(echo "$data" | openssl enc -aes256 -d -a -pbkdf2 -pass pass:"$password")
$password=""

# test if file exist
if [ -a $MyApp ]
then
    $MyApp # run your application
    exit 0
else
    notify-send "Incorrect" "$x/3"
fi
}

# limit try
x=1
while [ $x -le 3 ]
do
  main
  x=$(( $x + 1 ))
done

exit 0

관련 정보