// License: GPLv3 Copyright: 2023, Kovid Goyal, package utils import ( "fmt" "testing" "github.com/google/go-cmp/cmp" ) var _ = fmt.Print func TestGettingLoginShell(t *testing.T) { entries, err := parse_dscl_data([]byte(all_users_plist)) if err != nil { t.Fatal(err) } if diff := cmp.Diff(entries[`501`].Shell, "/bin/zsh"); diff != "" { t.Fatalf("Failed to parse dscl data for shell. %v %s", entries[`501`], diff) } if _, e := CurrentUser(); e != nil { t.Fatal(e) } if sh, e := LoginShellForCurrentUser(); e != nil || sh == "" { t.Fatalf("Failed to get login shell for current user with error: %s", e) } } // plist test data {{{ const all_users_plist string = ` dsAttrTypeNative:gid 278 dsAttrTypeNative:home /var/db/accessoryupdater dsAttrTypeNative:name _accessoryupdater dsAttrTypeNative:realname Accessory Update Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 278 dsAttrTypeStandard:RecordName _accessoryupdater dsAttrTypeNative:gid 83 dsAttrTypeNative:home /var/virusmails dsAttrTypeNative:name _amavisd amavisd dsAttrTypeNative:realname AMaViS Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 83 dsAttrTypeStandard:RecordName _amavisd amavisd dsAttrTypeNative:gid 263 dsAttrTypeNative:home /var/db/analyticsd dsAttrTypeNative:name _analyticsd dsAttrTypeNative:realname Analytics Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 263 dsAttrTypeStandard:RecordName _analyticsd dsAttrTypeNative:gid 273 dsAttrTypeNative:home /var/db/appinstalld dsAttrTypeNative:name _appinstalld dsAttrTypeNative:realname App Install Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 273 dsAttrTypeStandard:RecordName _appinstalld dsAttrTypeNative:gid 55 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _appleevents dsAttrTypeNative:realname AppleEvents Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 55 dsAttrTypeStandard:RecordName _appleevents dsAttrTypeNative:gid 260 dsAttrTypeNative:home /var/db/applepay dsAttrTypeNative:name _applepay dsAttrTypeNative:realname applepay Account dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 260 dsAttrTypeStandard:RecordName _applepay dsAttrTypeNative:gid 87 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _appowner appowner dsAttrTypeNative:realname Application Owner dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 87 dsAttrTypeStandard:RecordName _appowner appowner dsAttrTypeNative:gid 79 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _appserver appserver dsAttrTypeNative:realname Application Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 79 dsAttrTypeStandard:RecordName _appserver appserver dsAttrTypeNative:gid 33 dsAttrTypeNative:home /var/db/appstore dsAttrTypeNative:name _appstore dsAttrTypeNative:realname Mac App Store Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 33 dsAttrTypeStandard:RecordName _appstore dsAttrTypeNative:gid 67 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _ard dsAttrTypeNative:realname Apple Remote Desktop dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 67 dsAttrTypeStandard:RecordName _ard dsAttrTypeNative:gid 235 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _assetcache dsAttrTypeNative:realname Asset Cache Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 235 dsAttrTypeStandard:RecordName _assetcache dsAttrTypeNative:gid 245 dsAttrTypeNative:home /var/db/astris dsAttrTypeNative:name _astris dsAttrTypeNative:realname Astris Services dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 245 dsAttrTypeStandard:RecordName _astris dsAttrTypeNative:gid 97 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _atsserver atsserver dsAttrTypeNative:realname ATS Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 97 dsAttrTypeStandard:RecordName _atsserver atsserver dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _avbdeviced dsAttrTypeNative:realname Ethernet AVB Device Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 229 dsAttrTypeStandard:RecordName _avbdeviced dsAttrTypeNative:gid 288 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _avphidbridge dsAttrTypeNative:realname Apple Virtual Platform HID Bridge dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 288 dsAttrTypeStandard:RecordName _avphidbridge dsAttrTypeNative:gid 291 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _backgroundassets dsAttrTypeNative:realname Background Assets Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 291 dsAttrTypeStandard:RecordName _backgroundassets dsAttrTypeNative:gid 289 dsAttrTypeNative:home /var/db/biome dsAttrTypeNative:name _biome dsAttrTypeNative:realname Biome dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 289 dsAttrTypeStandard:RecordName _biome dsAttrTypeNative:gid 93 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _calendar calendar dsAttrTypeNative:realname Calendar dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 93 dsAttrTypeStandard:RecordName _calendar calendar dsAttrTypeNative:gid 258 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _captiveagent dsAttrTypeNative:realname captiveagent dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 258 dsAttrTypeStandard:RecordName _captiveagent dsAttrTypeNative:gid 32 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _ces dsAttrTypeNative:realname Certificate Enrollment Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 32 dsAttrTypeStandard:RecordName _ces dsAttrTypeNative:gid 82 dsAttrTypeNative:home /var/virusmails dsAttrTypeNative:name _clamav clamav dsAttrTypeNative:realname ClamAV Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 82 dsAttrTypeStandard:RecordName _clamav clamav dsAttrTypeNative:gid 262 dsAttrTypeNative:home /var/db/cmiodalassistants dsAttrTypeNative:name _cmiodalassistants dsAttrTypeNative:realname CoreMedia IO Assistants User dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 262 dsAttrTypeStandard:RecordName _cmiodalassistants dsAttrTypeNative:gid 202 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _coreaudiod dsAttrTypeNative:realname Core Audio Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 202 dsAttrTypeStandard:RecordName _coreaudiod dsAttrTypeNative:gid 236 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _coremediaiod dsAttrTypeNative:realname Core Media IO Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 236 dsAttrTypeStandard:RecordName _coremediaiod dsAttrTypeNative:gid 280 dsAttrTypeNative:home /var/db/coreml dsAttrTypeNative:name _coreml dsAttrTypeNative:realname CoreML Services dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 280 dsAttrTypeStandard:RecordName _coreml dsAttrTypeNative:gid 259 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _ctkd dsAttrTypeNative:realname ctkd Account dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 259 dsAttrTypeStandard:RecordName _ctkd dsAttrTypeNative:gid 212 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _cvmsroot dsAttrTypeNative:realname CVMS Root dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 212 dsAttrTypeStandard:RecordName _cvmsroot dsAttrTypeNative:gid 72 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _cvs dsAttrTypeNative:realname CVS Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 72 dsAttrTypeStandard:RecordName _cvs dsAttrTypeNative:gid 6 dsAttrTypeNative:home /var/imap dsAttrTypeNative:name _cyrus cyrusimap dsAttrTypeNative:realname Cyrus Administrator dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 77 dsAttrTypeStandard:RecordName _cyrus cyrusimap dsAttrTypeNative:gid 284 dsAttrTypeNative:home /var/db/darwindaemon dsAttrTypeNative:name _darwindaemon dsAttrTypeNative:realname Darwin Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 284 dsAttrTypeStandard:RecordName _darwindaemon dsAttrTypeNative:gid 257 dsAttrTypeNative:home /var/db/datadetectors dsAttrTypeNative:name _datadetectors dsAttrTypeNative:realname DataDetectors dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 257 dsAttrTypeStandard:RecordName _datadetectors dsAttrTypeNative:gid 275 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _demod dsAttrTypeNative:realname Demo Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 275 dsAttrTypeStandard:RecordName _demod dsAttrTypeNative:gid 59 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _devdocs devdocs dsAttrTypeNative:realname Developer Documentation dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 59 dsAttrTypeStandard:RecordName _devdocs devdocs dsAttrTypeNative:gid 220 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _devicemgr dsAttrTypeNative:realname Device Management Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 220 dsAttrTypeStandard:RecordName _devicemgr dsAttrTypeNative:gid 271 dsAttrTypeNative:home /var/db/diskimagesiod dsAttrTypeNative:name _diskimagesiod dsAttrTypeNative:realname DiskImages IO Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 271 dsAttrTypeStandard:RecordName _diskimagesiod dsAttrTypeNative:gid 244 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _displaypolicyd dsAttrTypeNative:realname Display Policy Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 244 dsAttrTypeStandard:RecordName _displaypolicyd dsAttrTypeNative:gid 241 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _distnote dsAttrTypeNative:realname DistNote dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 241 dsAttrTypeStandard:RecordName _distnote dsAttrTypeNative:gid 6 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _dovecot dsAttrTypeNative:realname Dovecot Administrator dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 214 dsAttrTypeStandard:RecordName _dovecot dsAttrTypeNative:gid 227 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _dovenull dsAttrTypeNative:realname Dovecot Authentication dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 227 dsAttrTypeStandard:RecordName _dovenull dsAttrTypeNative:gid 215 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _dpaudio dsAttrTypeNative:realname DP Audio dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 215 dsAttrTypeStandard:RecordName _dpaudio dsAttrTypeNative:gid 270 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _driverkit dsAttrTypeNative:realname DriverKit dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 270 dsAttrTypeStandard:RecordName _driverkit dsAttrTypeNative:gid 71 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _eppc eppc dsAttrTypeNative:realname Apple Events User dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 71 dsAttrTypeStandard:RecordName _eppc eppc dsAttrTypeNative:gid 254 dsAttrTypeNative:home /var/db/findmydevice dsAttrTypeNative:name _findmydevice dsAttrTypeNative:realname Find My Device Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 254 dsAttrTypeStandard:RecordName _findmydevice dsAttrTypeNative:gid 265 dsAttrTypeNative:home /var/db/fpsd dsAttrTypeNative:name _fpsd dsAttrTypeNative:realname FPS Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 265 dsAttrTypeStandard:RecordName _fpsd dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _ftp ftp dsAttrTypeNative:realname FTP Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 98 dsAttrTypeStandard:RecordName _ftp ftp dsAttrTypeNative:gid 247 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _gamecontrollerd dsAttrTypeNative:realname Game Controller Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 247 dsAttrTypeStandard:RecordName _gamecontrollerd dsAttrTypeNative:gid 56 dsAttrTypeNative:home /var/db/geod dsAttrTypeNative:name _geod dsAttrTypeNative:realname Geo Services Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 56 dsAttrTypeStandard:RecordName _geod dsAttrTypeNative:gid 261 dsAttrTypeNative:home /var/db/hidd dsAttrTypeNative:name _hidd dsAttrTypeNative:realname HID Service User dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 261 dsAttrTypeStandard:RecordName _hidd dsAttrTypeNative:gid 240 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _iconservices dsAttrTypeNative:realname IconServices dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 240 dsAttrTypeStandard:RecordName _iconservices dsAttrTypeNative:gid 25 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _installassistant dsAttrTypeNative:realname Install Assistant dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 25 dsAttrTypeStandard:RecordName _installassistant dsAttrTypeNative:gid 274 dsAttrTypeNative:home /var/db/installcoordinationd dsAttrTypeNative:name _installcoordinationd dsAttrTypeNative:realname Install Coordination Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 274 dsAttrTypeStandard:RecordName _installcoordinationd dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _installer dsAttrTypeNative:realname Installer dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 96 dsAttrTypeStandard:RecordName _installer dsAttrTypeNative:gid 84 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _jabber jabber dsAttrTypeNative:realname Jabber XMPP Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 84 dsAttrTypeStandard:RecordName _jabber jabber dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _kadmin_admin dsAttrTypeNative:realname Kerberos Admin Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 218 dsAttrTypeStandard:RecordName _kadmin_admin dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _kadmin_changepw dsAttrTypeNative:realname Kerberos Change Password Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 219 dsAttrTypeStandard:RecordName _kadmin_changepw dsAttrTypeNative:gid 279 dsAttrTypeNative:home /var/db/knowledgegraphd dsAttrTypeNative:name _knowledgegraphd dsAttrTypeNative:realname Knowledge Graph Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 279 dsAttrTypeStandard:RecordName _knowledgegraphd dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _krb_anonymous dsAttrTypeNative:realname Open Directory Kerberos Anonymous dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 234 dsAttrTypeStandard:RecordName _krb_anonymous dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _krb_changepw dsAttrTypeNative:realname Open Directory Kerberos Change Password Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 232 dsAttrTypeStandard:RecordName _krb_changepw dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _krb_kadmin dsAttrTypeNative:realname Open Directory Kerberos Admin Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 231 dsAttrTypeStandard:RecordName _krb_kadmin dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _krb_kerberos dsAttrTypeNative:realname Open Directory Kerberos dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 233 dsAttrTypeStandard:RecordName _krb_kerberos dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _krb_krbtgt dsAttrTypeNative:realname Open Directory Kerberos Ticket Granting Ticket dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 230 dsAttrTypeStandard:RecordName _krb_krbtgt dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _krbfast dsAttrTypeNative:realname Kerberos FAST Account dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 246 dsAttrTypeStandard:RecordName _krbfast dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _krbtgt dsAttrTypeNative:realname Kerberos Ticket Granting Ticket dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 217 dsAttrTypeStandard:RecordName _krbtgt dsAttrTypeNative:gid 239 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _launchservicesd dsAttrTypeNative:realname _launchservicesd dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 239 dsAttrTypeStandard:RecordName _launchservicesd dsAttrTypeNative:gid 211 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _lda dsAttrTypeNative:realname Local Delivery Agent dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 211 dsAttrTypeStandard:RecordName _lda dsAttrTypeNative:gid 205 dsAttrTypeNative:home /var/db/locationd dsAttrTypeNative:name _locationd dsAttrTypeNative:realname Location Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 205 dsAttrTypeStandard:RecordName _locationd dsAttrTypeNative:gid 272 dsAttrTypeNative:home /var/db/diagnostics dsAttrTypeNative:name _logd dsAttrTypeNative:realname Log Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 272 dsAttrTypeStandard:RecordName _logd dsAttrTypeNative:gid 26 dsAttrTypeNative:home /var/spool/cups dsAttrTypeNative:name _lp lp dsAttrTypeNative:realname Printing Services dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 26 dsAttrTypeStandard:RecordName _lp lp dsAttrTypeNative:gid 78 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _mailman mailman dsAttrTypeNative:realname Mailman List Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 78 dsAttrTypeStandard:RecordName _mailman mailman dsAttrTypeNative:gid 248 dsAttrTypeNative:home /var/setup dsAttrTypeNative:name _mbsetupuser dsAttrTypeNative:realname Setup User dsAttrTypeNative:shell /bin/bash dsAttrTypeNative:uid 248 dsAttrTypeStandard:RecordName _mbsetupuser dsAttrTypeNative:gid 54 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _mcxalr mcxalr dsAttrTypeNative:realname MCX AppLaunch dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 54 dsAttrTypeStandard:RecordName _mcxalr mcxalr dsAttrTypeNative:gid 65 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _mdnsresponder dsAttrTypeNative:realname mDNSResponder dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 65 dsAttrTypeStandard:RecordName _mdnsresponder dsAttrTypeNative:gid 283 dsAttrTypeNative:home /var/db/mmaintenanced dsAttrTypeNative:name _mmaintenanced dsAttrTypeNative:realname mmaintenanced dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 283 dsAttrTypeStandard:RecordName _mmaintenanced dsAttrTypeNative:gid 253 dsAttrTypeNative:home /var/ma dsAttrTypeNative:name _mobileasset dsAttrTypeNative:realname MobileAsset User dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 253 dsAttrTypeStandard:RecordName _mobileasset dsAttrTypeNative:gid 74 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _mysql mysql dsAttrTypeNative:realname MySQL Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 74 dsAttrTypeStandard:RecordName _mysql mysql dsAttrTypeNative:gid 268 dsAttrTypeNative:home /var/db/nearbyd dsAttrTypeNative:name _nearbyd dsAttrTypeNative:realname Proximity and Ranging Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 268 dsAttrTypeStandard:RecordName _nearbyd dsAttrTypeNative:gid 222 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _netbios dsAttrTypeNative:realname NetBIOS dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 222 dsAttrTypeStandard:RecordName _netbios dsAttrTypeNative:gid 228 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _netstatistics dsAttrTypeNative:realname Network Statistics Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 228 dsAttrTypeStandard:RecordName _netstatistics dsAttrTypeNative:gid 24 dsAttrTypeNative:home /var/networkd dsAttrTypeNative:name _networkd dsAttrTypeNative:realname Network Services dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 24 dsAttrTypeStandard:RecordName _networkd dsAttrTypeNative:gid 285 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _notification_proxy dsAttrTypeNative:realname Notification Proxy dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 285 dsAttrTypeStandard:RecordName _notification_proxy dsAttrTypeNative:gid 242 dsAttrTypeNative:home /var/db/nsurlsessiond dsAttrTypeNative:name _nsurlsessiond dsAttrTypeNative:realname NSURLSession Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 242 dsAttrTypeStandard:RecordName _nsurlsessiond dsAttrTypeNative:gid 243 dsAttrTypeNative:home /var/db/nsurlstoraged dsAttrTypeNative:name _nsurlstoraged dsAttrTypeNative:realname _nsurlstoraged dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 243 dsAttrTypeStandard:RecordName _nsurlstoraged dsAttrTypeNative:gid 441 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _oahd dsAttrTypeNative:realname OAH Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 441 dsAttrTypeStandard:RecordName _oahd dsAttrTypeNative:gid 249 dsAttrTypeNative:home /var/db/ondemand dsAttrTypeNative:name _ondemand dsAttrTypeNative:realname On Demand Resource Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 249 dsAttrTypeStandard:RecordName _ondemand dsAttrTypeNative:gid 27 dsAttrTypeNative:home /var/spool/postfix dsAttrTypeNative:name _postfix postfix dsAttrTypeNative:realname Postfix Mail Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 27 dsAttrTypeStandard:RecordName _postfix postfix dsAttrTypeNative:gid 216 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _postgres dsAttrTypeNative:realname PostgreSQL Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 216 dsAttrTypeStandard:RecordName _postgres dsAttrTypeNative:gid 76 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _qtss qtss dsAttrTypeNative:realname QuickTime Streaming Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 76 dsAttrTypeStandard:RecordName _qtss qtss dsAttrTypeNative:gid 269 dsAttrTypeNative:home /var/db/reportmemoryexception dsAttrTypeNative:name _reportmemoryexception dsAttrTypeNative:realname ReportMemoryException dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 269 dsAttrTypeStandard:RecordName _reportmemoryexception dsAttrTypeNative:gid 277 dsAttrTypeNative:home /var/db/rmd dsAttrTypeNative:name _rmd dsAttrTypeNative:realname Remote Management Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 277 dsAttrTypeStandard:RecordName _rmd dsAttrTypeNative:gid 60 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _sandbox sandbox dsAttrTypeNative:realname Seatbelt dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 60 dsAttrTypeStandard:RecordName _sandbox sandbox dsAttrTypeNative:gid 203 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _screensaver dsAttrTypeNative:realname Screensaver dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 203 dsAttrTypeStandard:RecordName _screensaver dsAttrTypeNative:gid 31 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _scsd dsAttrTypeNative:realname Service Configuration Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 31 dsAttrTypeStandard:RecordName _scsd dsAttrTypeNative:gid 92 dsAttrTypeNative:home /var/db/securityagent dsAttrTypeNative:name _securityagent securityagent dsAttrTypeNative:realname SecurityAgent dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 92 dsAttrTypeStandard:RecordName _securityagent securityagent dsAttrTypeNative:gid 58 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _serialnumberd serialnumberd dsAttrTypeNative:realname _serialnumberd dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 58 dsAttrTypeStandard:RecordName _serialnumberd serialnumberd dsAttrTypeNative:gid 281 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _sntpd dsAttrTypeNative:realname SNTP Server Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 281 dsAttrTypeStandard:RecordName _sntpd dsAttrTypeNative:gid 200 dsAttrTypeNative:home /var/db/softwareupdate dsAttrTypeNative:name _softwareupdate dsAttrTypeNative:realname Software Update Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 200 dsAttrTypeStandard:RecordName _softwareupdate dsAttrTypeNative:gid 89 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _spotlight spotlight dsAttrTypeNative:realname Spotlight dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 89 dsAttrTypeStandard:RecordName _spotlight spotlight dsAttrTypeNative:gid 75 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _sshd sshd dsAttrTypeNative:realname sshd Privilege separation dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 75 dsAttrTypeStandard:RecordName _sshd sshd dsAttrTypeNative:gid 73 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _svn dsAttrTypeNative:realname SVN Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 73 dsAttrTypeStandard:RecordName _svn dsAttrTypeNative:gid 13 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _taskgated dsAttrTypeNative:realname Task Gate Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 13 dsAttrTypeStandard:RecordName _taskgated dsAttrTypeNative:gid 94 dsAttrTypeNative:home /var/teamsserver dsAttrTypeNative:name _teamsserver teamsserver dsAttrTypeNative:realname TeamsServer dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 94 dsAttrTypeStandard:RecordName _teamsserver teamsserver dsAttrTypeNative:gid 266 dsAttrTypeNative:home /var/db/timed dsAttrTypeNative:name _timed dsAttrTypeNative:realname Time Sync Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 266 dsAttrTypeStandard:RecordName _timed dsAttrTypeNative:gid 210 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _timezone dsAttrTypeNative:realname AutoTimeZoneDaemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 210 dsAttrTypeStandard:RecordName _timezone dsAttrTypeNative:gid 91 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _tokend tokend dsAttrTypeNative:realname Token Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 91 dsAttrTypeStandard:RecordName _tokend tokend dsAttrTypeNative:gid 282 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _trustd dsAttrTypeNative:realname trustd dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 282 dsAttrTypeStandard:RecordName _trustd dsAttrTypeNative:gid 208 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _trustevaluationagent dsAttrTypeNative:realname Trust Evaluation Agent dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 208 dsAttrTypeStandard:RecordName _trustevaluationagent dsAttrTypeNative:gid 99 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _unknown unknown dsAttrTypeNative:realname Unknown User dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 99 dsAttrTypeStandard:RecordName _unknown unknown dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _update_sharing dsAttrTypeNative:realname Update Sharing dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 95 dsAttrTypeStandard:RecordName _update_sharing dsAttrTypeNative:gid 213 dsAttrTypeNative:home /var/db/lockdown dsAttrTypeNative:name _usbmuxd dsAttrTypeNative:realname iPhone OS Device Helper dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 213 dsAttrTypeStandard:RecordName _usbmuxd dsAttrTypeNative:gid 4 dsAttrTypeNative:home /var/spool/uucp dsAttrTypeNative:name _uucp dsAttrTypeNative:realname Unix to Unix Copy Protocol dsAttrTypeNative:shell /usr/sbin/uucico dsAttrTypeNative:uid 4 dsAttrTypeStandard:RecordName _uucp dsAttrTypeNative:gid 224 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _warmd dsAttrTypeNative:realname Warm Daemon dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 224 dsAttrTypeStandard:RecordName _warmd dsAttrTypeNative:gid 221 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _webauthserver dsAttrTypeNative:realname Web Auth Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 221 dsAttrTypeStandard:RecordName _webauthserver dsAttrTypeNative:gid 88 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _windowserver windowserver dsAttrTypeNative:realname WindowServer dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 88 dsAttrTypeStandard:RecordName _windowserver windowserver dsAttrTypeNative:gid 70 dsAttrTypeNative:home /Library/WebServer dsAttrTypeNative:name _www www dsAttrTypeNative:realname World Wide Web Server dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 70 dsAttrTypeStandard:RecordName _www www dsAttrTypeNative:gid 252 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _wwwproxy dsAttrTypeNative:realname WWW Proxy dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 252 dsAttrTypeStandard:RecordName _wwwproxy dsAttrTypeNative:gid 251 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name _xserverdocs dsAttrTypeNative:realname macOS Server Documents Service dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 251 dsAttrTypeStandard:RecordName _xserverdocs dsAttrTypeNative:gid 1 dsAttrTypeNative:home /var/root dsAttrTypeNative:name daemon dsAttrTypeNative:realname System Services dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid 1 dsAttrTypeStandard:RecordName daemon dsAttrTypeNative:gid 20 dsAttrTypeNative:home /Users/kovid dsAttrTypeNative:name kovid com.apple.idms.appleid.prd.001239-05-db37ae71-1475-47b3-9cd5-d749f085f52d dsAttrTypeNative:realname Kovid Goyal dsAttrTypeNative:shell /bin/zsh dsAttrTypeNative:uid 501 dsAttrTypeStandard:RecordName kovid com.apple.idms.appleid.prd.001239-05-db37ae71-1475-47b3-9cd5-d749f085f52d dsAttrTypeNative:gid -2 dsAttrTypeNative:home /var/empty dsAttrTypeNative:name nobody dsAttrTypeNative:realname Unprivileged User dsAttrTypeNative:shell /usr/bin/false dsAttrTypeNative:uid -2 dsAttrTypeStandard:RecordName nobody dsAttrTypeNative:gid 0 dsAttrTypeNative:home /var/root /private/var/root dsAttrTypeNative:name root BUILTIN\Local System dsAttrTypeNative:realname System Administrator dsAttrTypeNative:shell /bin/sh dsAttrTypeNative:uid 0 dsAttrTypeStandard:RecordName root BUILTIN\Local System ` // }}}