[Ratkaisu] Inklusiivinen käyttöoikeustason kohotus PAM USB:n avulla

Lähtökohta
Pakettienhallinnassa pamusb-tools ja libpam-usb ovat asennettuna. Olen määritellyt PAM USB:n avulla tunnistautumismenetelmäkseni USB-porttiin kytketyn muistitikun.
Ongelma
Turvallisuuden vuoksi haluan sulkea USB-muistitikulla tunnistautumisen oletusarvoisesti pois käytöstä, ja määritellä sen erikseen käyttöönotetuksi niiden palveluiden osalta, joissa haluan sitä hyödyntää: järjestelmän asetusten tekemisen ja ylläpitotöiden vaatiman oikeustason kohotuksen yhteydessä.
Ratkaisu
Määrittelen /etc/pamusb.conf -tiedostoni alussa seuraavanlaisen osion:

<defaults>
  <option name="enable">false</option>
</defaults>

Kun olen tallentanut tiedostoon tekemäni muutokset, muistitikulla tunnistautuminen on oletusarvoisesti pois käytöstä.
Määrittelen sen jälkeen hieman alempana seuraavanlaisen osion:

<services>
  <service id="sudo">
    <option name="enable">true</option>
  </service>
  <service id="gksudo">
    <option name="enable">true</option>
  </service>
  <service id="polkit">
    <option name="enable">true</option>
  </service>
</services>

Kun olen tallentanut tiedostoon tekemäni muutokset, USB-portissa oleva muistitikku riittää tunnistautumiseksi järjestelmän asetusten tekemisen ja ylläpitotöiden vaatiman oikeustason kohotuksen yhteydessä. Sen sijaan esimerkiksi sisäänkirjautuminen ja näytön lukituksen avaaminen vaativat edelleen salasanan kirjoittamisen.

Huomautuksia
  • Tämä ratkaisu on sinänsä varsin triviaali sovellus PAM USB:n asetusten tekemisen ohjeista, mutta muiden muassa Verkko-ylläpitosovelluksen käyttäjän tunnistamisessa käyttämään PolicyKitiin liittyvää palvelun nimeä ei löytynyt suoraan annettuna mistään, joten päätin kirjata sen ylös tähän, vaikka sekin on sinänsä varsin helppo päätellä.
  • Palveluiden nimien löytämisessä on avuksi /var/log/auth.log -tiedosto. Kun muistitikulla tunnistautumisen sallii tilapäisesti oletusarvoisesti kaikkialla, tiedostoon kirjautuu halutun palvelun käytön yhteydessä seuraavanlainen rivi:
    Jun  3 10:30:20 shuttle-xpc pam_usb[17130]: Authentication request for user "jani" (polkit)

    Rivillä käyttäjätunnuksen perässä, suluissa oleva merkkijono on palvelun nimi.

  • Yllä mainittujen osioiden lisäksi olen määritellyt asetustiedostossa USB-muistitikun tunnistautumismenetelmäksi ainoastaan omalla käyttäjätunnuksellani, seuraavanlaisella osiolla:
    <users>
      <user id="jani">
        <device>
          MicroMemory
        </device>
      </user>
    </users>

    Tämä vaatii luonnollisesti asetustiedostoon lisäksi MicroMemory-nimisen määrittelyn itse muistitikulle.