
Ejecuté esos dos comandos en la terminal:
users
y
dscl . -read /Users/
y luego me dicen dos resultados diferentes. El segundo me dio una lista larga mientras que el primero solo mostró mi nombre de usuario en Mac.
Cuando busco en Google "Listar usuarios en Mac", la mayoría me dirá que use el segundo. Sin embargo, cuando ejecuto "usuarios masculinos", me muestra que este comando es para "enumerar los usuarios actuales".
¿Podrías decirme las diferencias?
Además, ¿cómo ejecuto un comando como usuario de MySQL? El siguiente comando no funcionó:
mkdir mysqldir --user mysql
Respuesta1
dscl . -read /Users/
no imprime nada particularmente interesante; probablemente te refieres a dscl . -ls /Users
, que imprime una lista de cuentas de usuario definidas en tu computadora (incluidas una gran cantidad de cuentas del sistema normalmente ocultas). users
, por otro lado, imprime una lista de usuariosquienes actualmente están conectadosen su computadora (generalmente solo usted).
Para su segunda pregunta: puede usar el sudo
comando para ejecutar comandos como otro usuario (por ejemplo sudo -u _mysql mkdir mysqldir
). Tenga en cuenta que esto requiere derechos de administrador y le pedirá que ingrese su contraseña para su verificación.
Respuesta2
Obtenga una lista de todos los usuarios (solo sus nombres cortos):
dscl . -list /Users
Obtenga información de usuario detallada sobre un usuario en particular:
dscl . -read /Users/<username>
Obtenga un valor particular en la información de un usuario:
dscl . -read /Users/<username> <key>
Ejemplos de <key>
son RecordName
, RealName
, UniqueID
y NFSHomeDirectory
.
Obtenga información detallada del usuario entodousuarios:
dscl . -readall /Users
Obtener un valor particular entodoinformación de los usuarios:
dscl . -readall /Users <key>
Ojalá notes la diferencia entre -list
y -read
. Beneficios adicionales: -plist
resultados como XML, -search
le permite especificar una clave y un valor y obtendrá un resultado que indica dónde está ese valor.
2rs2ts:~/ $ dscl . -search /Users RealName "Andrew Garrett" [12:04:07]
2rs2ts RealName = (
"Andrew Garrett"
)
2rs2ts:~/ $ dscl -plist . -read /Users/nobody [12:05:29]
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>dsAttrTypeStandard:AppleMetaNodeLocation</key>
<array>
<string>/Local/Default</string>
</array>
<key>dsAttrTypeStandard:GeneratedUID</key>
<array>
<string>FFFFEEEE-DDDD-CCCC-BBBB-AAAAFFFFFFFE</string>
</array>
<key>dsAttrTypeStandard:NFSHomeDirectory</key>
<array>
<string>/var/empty</string>
</array>
<key>dsAttrTypeStandard:Password</key>
<array>
<string>*</string>
</array>
<key>dsAttrTypeStandard:PrimaryGroupID</key>
<array>
<string>-2</string>
</array>
<key>dsAttrTypeStandard:RealName</key>
<array>
<string>Unprivileged User</string>
</array>
<key>dsAttrTypeStandard:RecordName</key>
<array>
<string>nobody</string>
</array>
<key>dsAttrTypeStandard:RecordType</key>
<array>
<string>dsRecTypeStandard:Users</string>
</array>
<key>dsAttrTypeStandard:SMBRID</key>
<array>
<string>501</string>
</array>
<key>dsAttrTypeStandard:UniqueID</key>
<array>
<string>-2</string>
</array>
<key>dsAttrTypeStandard:UserShell</key>
<array>
<string>/usr/bin/false</string>
</array>
</dict>
</plist>
Por supuesto, puede leer las páginas de manual para obtener más información.
Respuesta3
El comando 'usuarios' solo enumera los usuarios actualmente conectados.
DESCRIPCIÓN usuarios enumera los nombres de inicio de sesión de los usuarios actualmente en el sistema, en orden, separados por espacios, en una sola línea.