Varios factores pueden afectar el motivo por el que los derechos no se evalúan y se aplican correctamente. Este procedimiento lo ayuda a depurar por qué los derechos asignados podrían no estar disponibles para usuarios, roles o procesos. Muchos de los pasos están basados en Orden de búsqueda para derechos asignados.
Antes de empezar
Debe asumir el rol root. Para obtener más información, consulte Uso de sus derechos administrativos asignados.
# svccfg -s name-service/switch svc:/system/name-service/switch> listprop config config application config/value_authorization astring solaris.smf.value.name-service.switch config/default astring files ldap config/host astring "files dns mdns ldap" config/netgroup astring ldap config/printer astring "user files"
En esta salida, todos los servicios que no se mencionan explícitamente heredan el valor del predeterminado, files ldap. Por lo tanto, passwd y sus bases de datos de atributos relacionados, user_attr, auth_attr y prof_attrse buscan primero en los archivos y luego en LDAP.
El daemon nscd puede tener un intervalo de tiempo de vida prolongado. Mediante el reinicio del daemon, actualiza el servicio de nombres con los datos actuales.
# svcadm restart name-service/cache
Por ejemplo, los siguientes comandos indican qué atributos de seguridad se asignan y cuándo se creó la asignación para el usuario jdoe. Ninguna salida indica que jdoe está utilizando los valores predeterminados.
% userattr -v access_times jdoe % userattr -v access_tz jdoe % userattr -v auth_profiles jdoe % userattr -v defaultpriv jdoe % userattr -v limitpriv jdoe % userattr -v idlecmd jdoe % userattr -v idletime jdoe % userattr -v lock_after_retries jdoe % userattr -v pam_policy jdoe % userattr -v auths jdoe Output indicates authorizations from rights profiles Basic Solaris User :solaris.mail.mailq,solaris.network.autoconf.read, solaris.admin.wusb.read Console User :solaris.system.shutdown,solaris.device.cdrw, solaris.device.mount.removable,solaris.smf.manage.vbiosd,solaris.smf.value.vbiosd % userattr -v audit_flags jdoe user_attr: fw:no Output indicates jdoe is individually assigned audit flags # userattr -v profiles jdoe user_attr: Audit Review,Stop Output indicates two assigned rights profiles # userattr roles jdoe user_attr : cryptomgt,infosec Output indicates two assigned roles
La salida indica que jdoe tiene asignado directamente indicadores de auditoría, dos perfiles de derechos y dos roles. Las autorizaciones asignadas son de perfiles de derechos predeterminados en el archivo policy.conf.
Debido a que jdoe tiene asignados indicadores de auditoría directamente, no se utilizará ningún valor de indicador de auditoría en los perfiles de derechos.
Los perfiles de derechos se evalúan en orden, en primer lugar, el perfil de derechos de revisión de auditoría y, a continuación, el perfil de detención.
Todos los demás derechos se asignan a jdoe en los roles cryptomgty infosec. Para ver esos derechos, jdoe debe asumir cada rol y, a continuación, mostrar los derechos.
Si el derecho no está directamente asignado al usuario, continúe con las siguientes comprobaciones.
El origen de una asignación de autorización no es importante, ya que las autorizaciones se acumulan para los usuarios. Sin embargo, una autorización mal escrita produce un error sin notificación.
Por ejemplo, algunos comandos necesitan uid=0 en lugar de euid=0 para que el proceso se realice con éxito. Revise la página del comando man para el comando para determinar si el comando o cualquiera de sus opciones requieren autorizaciones.
El valor del atributo en el primer perfil de derechos de la lista es el valor en el núcleo. Si este valor es incorrecto, cambie el valor de ese perfil de derechos o vuelva a asignar los perfiles en el orden correcto. Consulte Cómo volver a ordenar derechos asignados.
Para comandos con privilegios, compruebe que los privilegios no se eliminen de la contraseña defaultpriv o limitpriv.
Siga las mismas comprobaciones que realizó para los perfiles de derechos autenticados.
Si el atributo está asignado a un rol, el usuario debe asumir el rol para obtener los derechos.
Si el perfil existe, utilícelo. Asígnelo al usuario como un perfil de derechos autenticado o un perfil de derechos regular. Ordene antes que cualquier otro perfil de derechos que incluya el comando que requiere que esta autorización se realice correctamente.
Asigne el privilegio al comando que lo requiere, agregue las autorizaciones necesarias, coloque el comando y las autorizaciones en un perfil de derechos y asigne el perfil al usuario.
Los comandos administrativos se deben ejecutar en un shell de perfil. Example 7–1 muestra cómo probar un shell de perfil.
Para reducir la probabilidad de error de usuario, puede intentar lo siguiente:
Asigne al usuario un shell de perfil como el shell de inicio de sesión.
Indique a los usuarios que deben preceder a los comandos con privilegios con el comando pfexec.
Recuerde al usuario que ejecute comandos administrativos en un shell de perfil.
Si su sitio está usando roles, recuerde al usuario que debe asumir el rol antes de ejecutar los comandos administrativos. Para ver un ejemplo de la ejecución del comando como un rol en lugar de como un usuario, consulte Example 7–3.
Cuando un comando con privilegios no funciona, el usuario realiza las pruebas para el indicador PRIV_PFEXEC y, a continuación, ejecuta el comando. El mensaje de error puede no indicar que el problema es un problema de privilegio.
% praudit 20120814200247.20120912213421.example-system praudit: Cannot associate stdin with 20120814200247.20120912213421.example-system: Permission denied % ppriv $$ 107219: bash flags = <none> ... % pfbash # ppriv $$ 1072232: bash flags = PRIV_PFEXEC ... # praudit 20120814200247.20120912213421.example-system /** Command succeeds **/Ejemplo 7-2 Determinación de comandos con privilegios de un rol
En este ejemplo, un usuario asume un rol asignado y enumera los derechos que se incluyen en uno de los perfiles de derechos. Los derechos se truncan para enfatizar los comandos.
% roles devadmin % su - devadmin Password: xxxxxxxx # profiles -l Device Security ... profiles=Service Configuration /usr/sbin/add_drv uid=0 /usr/sbin/devfsadm uid=0 privs=sys_devices,sys_config, sys_resource,file_owner, file_chown,file_chown_self, file_dac_read /usr/sbin/eeprom uid=0 /usr/bin/kbd /usr/sbin/list_devices euid=0 /usr/sbin/rem_drv uid=0 /usr/sbin/strace euid=0 /usr/sbin/update_drv uid=0 /usr/sbin/add_allocatable euid=0 /usr/sbin/remove_allocatable euid=0 Service Configuration /usr/sbin/svcadm /usr/sbin/svccfgEjemplo 7-3 Ejecución de los comandos con privilegios en su rol
En el siguiente ejemplo, el rol admin puede cambiar los permisos en el archivo useful.script.
% whoami jdoe % ls -l useful.script -rwxr-xr-- 1 elsee eng 262 Apr 2 10:52 useful.script % chgrp admin useful.script chgrp: useful.script: Not owner % su - admin Password: xxxxxxxx # chgrp admin useful.script # chown admin useful.script # ls -l useful.script -rwxr-xr-- 1 admin admin 262 Apr 2 10:53 useful.script