Confusión con sudo y múltiples cuentas locales

Tengo dificultades para entender por qué ciertas cosas son mucho más complicadas en un terminal Mac que en un shell estándar de Linux.

Digamos que tengo dos cuentas locales, un administrador llamado "adm" y un usuario estándar "usracc" y quiero poder actualizar la locatebase de datos con updatedbcomando. Necesito simplemente ejecutar sudo updatedb, excepto que usracc no está en la lista de sudoers.

Ok, digo y su admluego sudo updatedbque me dice que el updatedbcomando no se encuentra. Así que para recapitular:

  1. mi cuenta de usuario normal no está en la lista de sudoers (esto es realmente intencional, ya que no quiero comprometer el sistema si la contraseña de esta cuenta está comprometida).

  2. mi cuenta de administrador puede sudo pero aparentemente no ese comando en particular, que no se puede encontrar por alguna razón.

  3. cuando voy sua mi cuenta de administrador veo; shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission deniedque se repite cada vez que trato de obtener asistencia de contenido con la tecla de tabulación.

Entonces, con la cuenta raíz deshabilitada, Apple lo obliga a otorgar privilegios de Sudo a las cuentas de usuario para poder hacer cosas simples, ¿cómo ayuda eso exactamente con la seguridad? ¿O he entendido completamente mal algo aquí?

Respuestas (1)

No está trasladando su entorno de shell a la su admsesión. por lo tanto, si está echo $PATHen la cuenta usracc y en la cuenta adm, encontrará que no son iguales (es por eso que adm no puede encontrar el comando updatedb). Todo lo que necesita hacer es decirle a su que desea transferir su env ( su -m admdebería hacerlo) o simplemente agregar la ruta a updatedb.

Aunque en mi caja se llama updatedb /usr/libexec/locate.updatedby es un script.