Afgør Om Brugernavn Eksisterer i Shell Script på macOS og Linux med Active Directory Integration

Hvordan kan det afgøres i et shell script, om et givet brugernavn eksisterer på det nuværende system, når /etc/passwd og /etc/shadow er utilstrækkelige, og der skal tages hensyn til OS X's Directory Services eller Linux med Likewise Active Directory integration?

For at afgøre om et givet brugernavn eksisterer på systemet, når /etc/passwd og /etc/shadow er utilstrækkelige, kan du bruge `dscl` kommandoen på OS X eller `lw-lsa` kommandoen på Linux med Likewise Active Directory integration.

Hvordan kan det afgøres i et shell script, om et givet brugernavn eksisterer på det nuværende system, når /etc/passwd og /etc/shadow er utilstrækkelige, og der skal tages hensyn til OS X's Directory Services eller Linux med Likewise Active Directory integration?

For at afgøre om et givet brugernavn eksisterer på systemet, når traditionelle metoder som /etc/passwd og /etc/shadow ikke er tilstrækkelige, kan du bruge følgende metoder afhængigt af systemet:

OS X (macOS) Directory Services

  • Brug dscl kommandoen til at forespørge Directory Services.
  • Eksempel på shell script:
    #!/bin/bash
    USERNAME="brugernavn"
    if dscl . -list /Users | grep -q "^${USERNAME}$"; then
      echo "Brugeren ${USERNAME} findes."
    else
      echo "Brugeren ${USERNAME} findes ikke."
    fi
    

Linux med Likewise Active Directory Integration

  • Brug lw-lsa kommandoen til at forespørge Active Directory.
  • Eksempel på shell script:
    #!/bin/bash
    USERNAME="brugernavn"
    if /opt/pbis/bin/find-user-by-name ${USERNAME} > /dev/null 2>&1; then
      echo "Brugeren ${USERNAME} findes."
    else
      echo "Brugeren ${USERNAME} findes ikke."
    fi
    

Disse metoder sikrer, at du kan afgøre om et brugernavn eksisterer på systemet, selv når det er integreret med Directory Services eller Active Directory.