¿Es posible agregar usuarios al archivo sudoers a través de un script de shell? He estado mirando alrededor, todavía no puedo encontrar nada.Agregar usuarios a sudoers mediante script de shell
Respuesta
simplemente podría echo
(con privilegios elevados, por supuesto) directamente en el archivo /etc/sudoers
:
sudo -i
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
# ^^
# tab
(tenga en cuenta el carácter de tabulación entre el usuario y el primer ALL
)
O, para una guión:
#!/bin/bash
# Run me with superuser privileges
echo 'nickw444 ALL=(ALL:ALL) ALL' >> /etc/sudoers
a continuación, guardar somefile.sh
, chmod a+rx
, y ejecutar sudo ./somefile.sh
desde una ventana de terminal.
Para agregar varios usuarios, cambie la secuencia de comandos a esto;
#!/bin/bash
while [[ -n $1 ]]; do
echo "$1 ALL=(ALL:ALL) ALL" >> /etc/sudoers;
shift # shift all parameters;
done
A continuación, ejecute la secuencia de comandos como esto (suponiendo que lo guardó como addsudousers.sh
):
sudo ./addsudousers.sh bob joe jeff
es decir, separada por espacios.
para leer los nombres de un archivo:
[email protected] ~ $ sudo ./addsudousers.sh `cat listofusers.txt`
listofusers.txt
también deben estar separados por espacios.
Editar: Jappie Kirk rightly points out que no se puede llamar directamente sudo echo ... >> /etc/sudoers
debido a que el cambio de dirección >>
está a cargo de la cáscara, que tiene en ese momento bajó los privilegios de superusuario. Sin embargo, si ejecuta un script que contiene echo ... >> /etc/sudoers
y el script en sí tiene privilegios de superusuario, todo debería funcionar bien.
Funcionó perfectamente Muchas gracias – nickw444
'sudo echo' no funciona, ver: https://blogs.oracle.com/joshis/entry/sudo_echo_does_not_work También por defecto el archivo sudoers es readonly –
@Jappie: OP dijo" funcionó perfectamente ", así que No estoy seguro de cuál es el problema para ti. Tal vez eche un vistazo a ["¿Cómo puedo editar/etc/sudoers desde un script?"] (Http://stackoverflow.com/q/323957/732016)? – wchargin
También está el grupo sudo
, y se podía añadir usuarios a la misma (para las configuraciones comunes de /etc/sudoers
)
No, un eco directo no funcionará, hay que ejecutarlo en un subnivel. Tal vez puedas probar:
sudo sh -c "echo \"group ALL=(user) NOPASSWD: ALL\" >> /etc/sudoers"
eso es todo, el permiso 0440 del archivo sudoers impide hacer eso – pylover
de sesión como root en su máquina. El usuario raíz es el único que tiene el privilegio de agregar un nuevo usuario.
Una vez que ha entrado en, ahora se puede tratar de los siguientes comandos a continuación:
crear un nuevo usuario.
adduser [nombre de usuario]
añadir una contraseña al usuario
passwd [nombre de usuario]
privilegios de root Grant usuario Editar el archivo visudo simplemente escribiendo
Introducir código aquí
Encuentre la siguiente línea de código: raíz ALL = (ALL) ALL
A continuación, agregue el código a continuación:
[username] ALL=(ALL) ALL
El post original se encuentra en este enlace Centos 6 – Creating sudoers user
Otras respuestas tales como engendrar una subshell funcionará, pero puede no funcionar si quieres usar vars medioambientales. Una alternativa que encontré jugó muy bien para mí:
echo "%<user> ALL=(ALL) ALL" | sudo tee -a /etc/sudoers > /dev/null
Dicho esto, la retrospección es 20/20 ... Si se está modificando sudoers a través de un guión y no a través de visudo recomendaría seriamente la creación de una copia de seguridad con el archivo correcto permisos y contenidos primeros ya que se puede perder el acceso a los derechos sudo sin pkexec, el acceso físico o un reinicio, etc.
sudo cp /etc/sudoers /etc/sudoers.bak
en RedHat base distribuciones usan:
su - root
e introduzca su contraseña y, a continuación:
echo 'YOURUSERNAME ALL=(ALL:ALL) ALL' >> /etc/sudoers
para agregar el usuario en el archivo sudoers.
https: //access.redhat. com/documentation/en-US/Red_Hat_Enterprise_Linux_OpenStack_Platform/2/html/Getting_Started_Guide/ch02s03.html –
- 1. ¿Script de shell para agregar texto a cada archivo?
- 2. música con script de shell
- 3. script de shell: if
- 4. Prueba de script Shell
- 5. plantillas de script de shell
- 6. Agregar un salto de línea a un archivo de salida en un script de shell
- 7. Script de shell de Linux para agregar ceros a nombres de archivo
- 8. ¿Cómo puedo agregar un método de ayuda a un script de shell?
- 9. de clasificación en shell script
- 10. shell script + números de suma
- 11. Cómo escribir un script de shell donde agregar días mes y año a la fecha actual
- 12. Cómo agregar nuevos usuarios a TFS 2010
- 13. Agregar campos personalizados a usuarios en django
- 14. Equivalente a get_or_create para agregar usuarios
- 15. ¿Cómo agregar una categoría a Magento mediante el script de configuración?
- 16. carácter \ r en shell script
- 17. script Python a usuarios de la lista y grupos
- 18. shell script salida al portapapeles
- 19. shell script y SQL resultados
- 20. script de shell que no se ejecuta mediante crontab, se ejecuta correctamente manualmente
- 21. ¿Agregar ScriptManager a la página mediante programación?
- 22. Agregar celdas mediante programación a UITableView
- 23. Cómo agregar vistas a vistas mediante programación
- 24. COMO: Detectar fiesta del shell script
- 25. Agregar clase css a una fila creada dinámicamente mediante el script java
- 26. Agregar botones mediante programación a un fragmento
- 27. Agregar recursos a Jetty mediante programación
- 28. Agregar sitio web y FTP a IIS 7 mediante el script
- 29. ¿Cómo puedo redireccionar stdin desde un script de shell a un comando en el script de shell?
- 30. utilizando o en el script de shell script de
No estoy seguro de entender la conexión, ¿por qué necesitarías agregar usuarios a sudoers para poder ejecutar Ruby? –
Nada que ver con Ruby. La secuencia de comandos que estoy ejecutando dentro de ruby, requiere que se ejecute ruby con los permisos sudo, de ahí la razón de sudo. No se preocupe por la parte ruby, se trata de la edición de sudoers – nickw444
¿Tendría más sentido agregar una sola entrada de grupo a '/ etc/sudoers', y agregar usuarios a ese grupo en lugar de actualizar repetidamente los' sudoers 'archivo? –