Come rendere / sbin / shutdown, / sbin / reboot ecc. richiede di nuovo sudo in 16.04?

18

Per qualsiasi motivo, non è più necessario essere root (o usare sudo ) per eseguire /sbin/shutdown , /sbin/reboot ecc.

Questo sembra essere dovuto al fatto che quegli eseguibili sono ora collegamenti simbolici a /bin/systemctl che gestisce tutto come utente normale.

Tuttavia, cosa succede se voglio shutdown e reboot per richiedere di nuovo l'autenticazione di root? Come posso raggiungere questo obiettivo?

    
posta Byte Commander 19.06.2016 - 21:14

5 risposte

5

Systemd gestisce infatti shutdown , reboot e altri comandi e i privilegi predefiniti assegnati sono permissivi. Per cambiare questo, è necessario creare una regola Polkit. Crea un file .pkla in /etc/polkit-1/localauthority/50-local.d (ad esempio confirm-shutdown.pkla ) contenente:

[Confirm shutdown]
Identity=unix-user:*
Action=org.freedesktop.login1.*
ResultActive=auth_admin_keep

I vari comandi shutdown, reboot, etc. sono, in termini Polkit, azioni in org.freedesktop.login1 , ad esempio org.freedesktop.login1.power-off , org.freedesktop.login1.reboot , ecc. Il problema specifico qui è la configurazione di default, che è in /usr/share/polkit-1/actions/org.freedesktop.login1.policy :

<action id="org.freedesktop.login1.power-off">
        <description>Power off the system</description>
        ...
        <defaults>
                <allow_any>auth_admin_keep</allow_any>
                <allow_inactive>auth_admin_keep</allow_inactive>
                <allow_active>yes</allow_active>
        </defaults>

Si noti che consente all'utente attivo di spegnere, riavviare, ecc.

    
risposta data muru 18.02.2017 - 16:26
0

È possibile utilizzare il comando chmod .

  • Se vuoi dare accesso solo a root, puoi scrivere:

    chmod 700 directory/to/the/file
    
  • Se vuoi dare permisson alla radice e al gruppo sudo, allora puoi scrivere:

    chmod 770 directory/to/the/file
    
  • Se vuoi cambiare il gruppo del file da sudo a un altro (come un utente o un amministratore) devi digitare:

    chown owner:group directory/to/the/file
    
  • Se vuoi tornare indietro, esegui:

    chown root:sudo filedirectory 
    

Nota : potresti dover utilizzare sudo per questi comandi o aver effettuato l'accesso all'account root

    
risposta data Yakusho 02.08.2016 - 15:40
0

Come modifica dei permessi di un link simbolico su un sistema Linux doesn cambiare i permessi del link ma invece il file a cui punta (almeno in Ubuntu). Penserei che il modo più sicuro per farlo sarebbe rimuovere il link e ricrearlo con la umask richiesta per ottenere il risultato desiderato.

Un altro post correlato può essere trovato qui

    
risposta data Elder Geek 13.02.2017 - 20:47
-1

Puoi creare uno script che controlli se l'utente lo sta eseguendo con permessi di root o meno.
Quindi eseguirà il comando systemctl o l'errore di restituzione.

#!/bin/bash
if [ "$(whoami)" != "root" ]; then
    echo "Sorry, you are not root."
    exit 1
else
    (systemctl shutdown command)
fi

Source

    
risposta data Ven3k 30.06.2016 - 21:56
-1

Prova a cambiare i permessi nel terminale. Potresti renderlo eseguibile solo da un certo gruppo, come wheel o admin. Tristemente (o forse per fortuna), un file può avere solo una proprietà di gruppo, quindi chown semplicemente non funzionerebbe da solo. Prova "sudo chown root: wheel / sbin / shutdown" e poi "sudo chmod g + x / sbin / shutdown". Ciò renderà il file eseguibile solo da root e admins (shudders) e sudoers sarà richiesto di inserire le loro password.

    
risposta data chevydog 14.07.2016 - 01:31

Leggi altre domande sui tag