Bulunamayan bir komutu girdikten sonra dnf'de Yetkisiz Kurulumlar


4

Fedora 23'e dayanan Korora 23 kullanıyorum.

Ne zaman bash olarak kullanılamayan bir komut yazsam bash, komutu sağlamak için bir paket kurmak isteyip istemediğimi soruyor. Sorun, eğer yyazarsam, herhangi bir şifre sormadan paketi yükler. Bu sudoşifre sormuyor. Parola istemi kullanırken başarısız olur sudo dnf install <package>, ancak bash bunu kendi kendine yapmaya çalıştığında olmaz. Sorun aramaya nereden başlamalıyım? görüntü tanımını buraya girin

Bash referansı:

[12:06 mayank ~]$ nano
bash: nano: command not found...
Install package 'nano' to provide command 'nano'? [N/y] y


 * Waiting in queue... 
 * Loading list of packages.... 
The following packages have to be installed:
 nano-2.4.2-3.fc23.x86_64   A small text editor
Proceed with changes? [N/y] y


 * Waiting in queue... 
 * Waiting for authentication... 
 * Waiting in queue... 
 * Downloading packages... 
 * Requesting data... 
 * Testing changes... 
 * Installing packages... 
Received SIGHUP or SIGTERM

[12:06 mayank ~]$ sudo dnf remove nano
[sudo] password for mayank: 
Dependencies resolved.
===================================================================================================================================================================================================================
 Package                                        Arch                                             Version                                                  Repository                                          Size
===================================================================================================================================================================================================================
Removing:
 nano                                           x86_64                                           2.4.2-3.fc23                                             @updates                                           1.9 M

Transaction Summary
===================================================================================================================================================================================================================
Remove  1 Package

Installed size: 1.9 M
Is this ok [y/N]: y
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Erasing     : nano-2.4.2-3.fc23.x86_64                                                                                                                                                                       1/1 
  Verifying   : nano-2.4.2-3.fc23.x86_64                                                                                                                                                                       1/1 

Removed:
  nano.x86_64 2.4.2-3.fc23                                                                                                                                                                                         

Complete!

command_not_found_handle:

[12:49 mayank ~]$ type command_not_found_handle
command_not_found_handle is a function
command_not_found_handle () 
{ 
    local runcnf=1;
    local retval=127;
    [[ $- =~ i ]] || runcnf=0;
    [[ ! -S /var/run/dbus/system_bus_socket ]] && runcnf=0;
    [[ ! -x '/usr/libexec/packagekitd' ]] && runcnf=0;
    [[ -n ${COMP_CWORD-} ]] && runcnf=0;
    if [ $runcnf -eq 1 ]; then
        '/usr/libexec/pk-command-not-found' "$@";
        retval=$?;
    else
        if [[ -n "${BASH_VERSION-}" ]]; then
            printf 'bash: %scommand not found\n' "${1:+$1: }" 1>&2;
        fi;
    fi;
    return $retval
}

Sudoers dosyası:

## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
## 
## This file must be edited with the 'visudo' command.

## Host Aliases
## Groups of machines. You may prefer to use hostnames (perhaps using 
## wildcards for entire domains) or IP addresses instead.
# Host_Alias     FILESERVERS = fs1, fs2
# Host_Alias     MAILSERVERS = smtp, smtp2

## User Aliases
## These aren't often necessary, as you can use regular groups
## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname 
## rather than USERALIAS
# User_Alias ADMINS = jsmith, mikem


## Command Aliases
## These are groups of related commands...

## Networking
# Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool

## Installation and management of software
# Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum

## Services
# Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

## Updating the locate database
# Cmnd_Alias LOCATE = /usr/bin/updatedb

## Storage
# Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount

## Delegating permissions
# Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp 

## Processes
# Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall

## Drivers
# Cmnd_Alias DRIVERS = /sbin/modprobe

# Defaults specification

#
# Refuse to run if unable to disable echo on the tty.
#
Defaults   !visiblepw

Defaults    env_reset
Defaults    env_keep =  "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
Defaults    env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
Defaults    env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
Defaults    env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
Defaults    env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

## Next comes the main part: which users can run what software on 
## which machines (the sudoers file can be shared between multiple
## systems).
## Syntax:
##
##  user    MACHINE=COMMANDS
##
## The COMMANDS section may have other options added to it.
##
## Allow root to run any commands anywhere 
root    ALL=(ALL)   ALL

## Allows members of the 'sys' group to run networking, software, 
## service management apps and more.
# %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)   ALL

## Same thing without a password
# %wheel    ALL=(ALL)   NOPASSWD: ALL

## Allows members of the users group to mount and unmount the 
## cdrom as root
# %users  ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom

## Allows members of the users group to shutdown this system
# %users  localhost=/sbin/shutdown -h now

## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)
#includedir /etc/sudoers.d
#ALL ALL=(ALL) NOPASSWD:/usr/local/Mobile_Partner/Mobile_Partner/MobilePartner.sh
%admin ALL=(ALL)ALL

sudoers dosyanız veyatype command_not_found_handle
llua,

Ben sudoers dosyasını ekledim ve çıktıtype command_not_found_handle
Mayank Verma

Ben komut hayal ediyorum /usr/libexec/pk-command-not-foundilgilendiğiniz şeydir ..
llua

Yanıtlar:


5

RH # 1225788'e göre bu amaçlanan davranıştır:

Yönetici kullanıcılar (tekerlek grubundaki) bir şifre girmeden yazılım yükleyebilirler. Arka plan bilgileri için https://pagure.io/fesco/issue/1115#comment-27002 ve biletin içindeki tartışmaya bakınız .

(URL, tam yorumlarla eşleşecek şekilde düzenlenmiştir.)


Öyleyse dnf'nin şifre gerektirmesi nasıl?
Mayank Verma

dnfgerektirmez (istemek için) şifreler, sudoyapar. Ve yukarıda belirtilen polkitpolitikaya göre, "yönetici kullanıcıların" (bazı) yazılım yüklemelerine izin verilir - burada şifre yoktur.
ckujau

2

/usr/share/polkit-1/rules.d/org.freedesktop.packagekit.rulesAşağıdaki içeriğe sahip bir dosya vardı:

polkit.addRule(function(action, subject) {
    if (action.id == "org.freedesktop.packagekit.package-install" &&
        subject.active == true && subject.local == true &&
        subject.isInGroup("wheel")) {
            return polkit.Result.YES;
    }
});

Çizgileri yorumlamak sorunu çözdü. Şimdi, bash bana bir paket önerdiğinde, kimlik doğrulama aşamasında bir iletişim kutusu gösteriyor.


Bir sonraki güncelleme polkitbu dosyanın üzerine yazabilir, gerçekten bu şekilde gitmek istiyorsanız bu dosyayı tekrar ayarladığınızdan emin olun.
ckujau

1

Her iki cevap kısmen işe yaradığını ve tamam olduğunu açıklar, ancak nedenlerini özledim.

SU'daki benzer sorudaki gibi açıklamama izin verin :

  • Sizin tarafınızdan değil, Politika Paketine erişim hakkınız var sudo.
  • CommandNotFound, paket paketinin bir parçası değil dnf
  • Sorun değil, özellik

Neden? PackageKit uygulaması, grafiksel kullanıcı arayüzünden paketleri kurmanızı ve güncellemenizi sağlayan sınırlı bir uygulamadır. Ama sadece:

  • önceden eklenmiş depolardan gelen paketler (bu nedenle İnternetten herhangi bir özel paket değil).
  • ve kullanıcınız etkin, yerel ve grup içinde wheel- yeni kullanıcılar ayarlarken Yönetici onay kutusu.

Bu nedenle kurulum izinsiz değildir ve birisi sizin için bir şey kuracak olsa bile, zararlı bir şey içermemesi gereken resmi depolardan olacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.