Creé algunos usuarios con:
$ useradd john
y olvidé especificar el parámetro -m
para crear el directorio de inicio y copiar los archivos de esqueleto a cada usuario. ahora quiero hacer eso, y no quiero recrear a todos los usuarios (debe haber una manera más fácil). Entonces, ¿hay alguna forma de crear los directorios de usuarios y copiar los archivos de esqueleto?
Pensé en crear los directorios, compartirlos con el usuario correspondiente, copiar todos los archivos de esqueleto y compartirlos con el usuario correspondiente. pero si hay un comando como useradd -m
ese no crea al usuario nuevamente, pero crea los directorios, sería mejor.
Respuestas:
Esto puede sonar como una idea tonta, pero si los usuarios no están haciendo nada, puedes hacer lo siguiente:
cat /etc/passwd | cut -f 1 -d : >/tmp/users.list
Luego edite /tmp/users.list para contener solo los usuarios que desea. Entonces hazlo:
Sin embargo, muchas distribuciones basadas en Redhat le crearán un nuevo directorio de inicio cuando inicie sesión por primera vez, siempre que se especifique en / etc / passwd donde debería estar el directorio.
Para probar eso, haga un "su -" y vea si hace "lo correcto". Si no es así, creo que el script anterior funcionará bastante bien.
fuente
for i in $(awk -F: '{print $1 }' /etc/passwd)
También puedes usar
mkhomedir_helper
fuente
sudo /sbin/mkhomedir_helper dka
? el/home
directorio pertenece alroot
usuario, por lo que me imagino que uno tendría que ser root para crear un subdirectorio del mismo.Deberá crear el directorio de usuarios manualmente. Esto requiere tres pasos:
/etc/passwd
, por lo general, ya habrá una entrada / home / login.Y finalmente establezca los permisos correctos:
mkdir /home/YOU
cd /home/YOU
cp -r /etc/skel/. .
chown -R YOU.YOURGROUP .
chmod -R go=u,go-w .
chmod go= .
Por cierto: siempre extraño la
-m
opción de useradd también. Al menos los sistemas basados en Debian deberían tener unadduser
comando, que recomiendo sobre useradd. Si perdió la-m
opción, también podría valer la pena considerardeluser
y luego recrear al usuario con las opciones adecuadas.Editar: agregado
-r
para copiar también directorios.fuente
public_html
necesita al menos unx
bit establecido, recomendaríachmod 0711
en cada iniciopublic_html
y directorios similares por defecto.cp -r /etc/skel/.*
vuelvo a recurrir a / etc / y copia todos los datos desde aquí (/etc/skel/.* coincide / etc / skel / ... espero). La solución de superuser.com/a/61619/22153 parece funcionar: cp -r / etc / skel / home / user (/ home / user no debe existir antes de ejecutar el comando)*
con.
(punto). Entonces..
es igualado. Estoy en lo cierto? Muchos shells deshabilitan esto por defecto, debido a tal comportamiento. ¿Qué caparazón usas?Eso debería hacer el truco, creo
fuente
usermod: no changes
. y el directorio no se crea. tampoco funciona con la-m
opción.Puede usar algo como pam_mkhomedir para evitar que esto sea un problema para los usuarios en el futuro. pam_mkhomedir es un módulo PAM que crea automáticamente el directorio de inicio de un usuario al iniciar sesión si no existe, y lo llena con archivos de / etc / skel (o cualquier directorio de skel que especifique).
Este también es un enfoque muy escalable porque continuará resolviendo este problema si alguna vez cambia su repositorio de usuario a un servicio de directorio como LDAP en el futuro.
fuente
En mi caso, el volumen de inicio se corrompió y decidí simplemente reconstruirlo desde cero, ya que no hay muchos datos involucrados, pero quiero mantener la información de inicio de sesión de los usuarios, así que recreé los directorios de inicio manualmente con este script:
fuente
Si editas
/etc/login.defs
para contenera continuación, los directorios de inicio se crean automáticamente para los usuarios futuros, a menos que usted le dice al sistema de no hacerlo.
Otra opción es usar PAM para inicios de sesión, y usar el módulo pam_mkhomedir para crear automáticamente el homedir en el primer inicio de sesión.
fuente
Mi primer paso después de hacer un
useradd
essu - <user>
.Crea los directorios de inicio, copia esqueletos, etc., al menos en el cuadro CentOS 4 lo hago con mayor frecuencia.
fuente
Inicie sesión con el usuario john y escriba desde un shell:
¡Eso es! No use sudo o su, no necesita acceso root para crear algunos directorios. Desde una cuenta raíz, puede usar:
De esa manera, ejecutará el comando como John, que puede ser útil si cometió el error con más de un usuario.
fuente
Esto es exactamente lo que hace el
mkhomedir_helper $USERNAME
comando.fuente
Simplemente puede editar / etc / passwd. El segundo al último campo es el directorio de inicio del usuario.
fuente
o
y leer
;)
fuente