Estoy jugando con Linux y estoy empezando a usar la terminal. Estoy intentando crear carpetas en la raíz del sistema de archivos, para lo cual mi usuario habitual no tiene permisos.
Al correr su root mkdir u01
; Se me solicitan las credenciales y luego la Terminal devuelve el error "No se puede ejecutar el archivo binario".
Si ejecuto su root
y luego mkdir u01
, el comando funciona bien.
¿Algunas ideas?
Estoy en Oracle Linux 6.5
Respuesta1
El problema es tu llamada a su
.
La sintaxis correcta para ejecutar un comando como otro usuario es:
su [username] -c "[command]"
Tenga en cuenta las comillas que rodean el comando; Es importante que los demás argumentos del comando se ejecuten correctamente.
Respuesta2
En general, a un usuario "normal" no se le debería permitir crear archivos o carpetas en la raíz del sistema de archivos. Permitirlo conduce a todo tipo de problemas de seguridad.
Cuando ejecuta "su root mkdir u01", su sistema le solicita la contraseña de root. Lo que probablemente deberías ejecutar es "sudo mkdir u01", que te pedirá tu contraseña de usuario normal. Tenga en cuenta que esto supone que sudo está configurado correctamente para permitir esto.
Respuesta3
Si lo ha sudo
configurado correctamente, esta es la forma correcta de crear ese directorio:
sudo mkdir u01
Si sudo no funciona por algún motivo (o ni siquiera está instalado; es poco probable, pero posible), puede usarlo su
con el parámetro de comando -c
, como este:
su -c "mkdir u01"
(tenga en cuenta que el comando debe estar entrecomillado para pasarlo correctamente su
).
Diferencia importante entre usar sudo
y su
: cuando se le solicita la contraseña, sudo
necesita la contraseña de su cuenta de usuario, pero su
necesita la contraseña de la cuenta raíz. En muchas distribuciones de Linux (especialmente en la familia Ubuntu/Debian), es posible que la contraseña de la cuenta raíz ni siquiera se asigne, por lo que su
puede fallar (a menos que asigne la contraseña a la cuenta raíz de antemano).