[SOLUCIONADO] Permisos predeterminados
Posted: 23 Jun 2025, 03:23
Hola muy buenas, alguien tiene un macro guion para reparar los permisos predeterminados ?
Resulta que estaba yo experimentando cambiarle el grupo a un usuario en un directorio en especifico del sistema, pero en una de esas sin querer se me olvido especificar el directorio y tomo todo desde / , cambiando incluso las otras distros linux que tenia montadas en esos momentos.
Ahora en las distros afectadas, no puedo ni iniciar lxdm, ya que me da un error de permisos, el problema es que no tengo idea de que permisos debe tener lxdm para funcionar normalmente ya que en internet no hay nada registrado de como revertir esto y no voy a formatear por esta tonteria que solo se necesita saber cual " chown " y cual "chmod " se necesita para cada archivo para su correcto funcionamiento.
Pero en fin todas las distros terminaron con el usuario guest:nobody, solo necesito saber el permiso que requieren en su mayoria los directorios y cuales archivos en especificos necesitan un chmod, como por ejemplo /usr/bin/sudo que me llevo un rato repararlo pero con lo siguiente pude :
Esto lo agregue en mi /etc/rc.d/rc.local del porteus que uso en modo en vivo desde un usb, ya que tambien fue comprometido xD.
Todo esto fue debido a que estaba haciendo unas pruebas con el Cisco Packate Tracer 8.0 nativo para GNU/Linux, este puede ser iniciado salteandose la ventana de iniciar session, yo hice lo siguiente :
Como SuperUsuario (root) en la terminal :
#Cree un grupo llamado "sin-internet"
#Use iptables (ipv4 e ipv6) para hacer que el grupo "sin-internet" no tenga acceso a internet
#Force el reinicio de los demonios de los dispositivos de red :
#Agregue las siguiente lineas al archivo /etc/sudoers
#Agregue el usuario a los grupos "wheel" & "sin-internet"
#Cambiar los permisos de forma recursiva desde /opt/pt
#Probar que funcione : desde una terminal del usuario comun ( no usar la cuenta del superusuario [root] )
Como me funciono sin problemas agregue lo siguiente en /etc/rc.d/rc.local
La cuestion fue que en una de las oportunidades anteriores de tener todas estas lineas para rc.local, se me habia olvidado agregar la linea "cd $Directorio" por ende el comando "chown "guest:sin-internet" -R *" se aplico a todos los subdirectorio del inicio de mi porteus del pendrive en modo envivo, incluyendo las distros que estaban montadas como Salix 15.0 y Slackware(64) 15.0
Resulta que estaba yo experimentando cambiarle el grupo a un usuario en un directorio en especifico del sistema, pero en una de esas sin querer se me olvido especificar el directorio y tomo todo desde / , cambiando incluso las otras distros linux que tenia montadas en esos momentos.
Ahora en las distros afectadas, no puedo ni iniciar lxdm, ya que me da un error de permisos, el problema es que no tengo idea de que permisos debe tener lxdm para funcionar normalmente ya que en internet no hay nada registrado de como revertir esto y no voy a formatear por esta tonteria que solo se necesita saber cual " chown " y cual "chmod " se necesita para cada archivo para su correcto funcionamiento.
Pero en fin todas las distros terminaron con el usuario guest:nobody, solo necesito saber el permiso que requieren en su mayoria los directorios y cuales archivos en especificos necesitan un chmod, como por ejemplo /usr/bin/sudo que me llevo un rato repararlo pero con lo siguiente pude :
Code: Select all
#Evitarme errores como :
#sudo: /var/db/sudo/lectured is world writable
chmod 700 /var/db/sudo/lectured
chown root:root /var/db/sudo/lectured
# /etc/sudo.conf is owned by uid 1000, should be 0
chown root:root /etc/sudo.conf
#sudo: must be setuid root
chown root:root /usr/bin/sudo
chmod 4755 /usr/bin/sudo
chmod u+s /usr/bin/sudo
#sudo: /etc/sudoers is owned by uid 1000, should be 0
#sudo: error initializing audit plugin sudoers_audit
chown root:root /etc/sudoers
Todo esto fue debido a que estaba haciendo unas pruebas con el Cisco Packate Tracer 8.0 nativo para GNU/Linux, este puede ser iniciado salteandose la ventana de iniciar session, yo hice lo siguiente :
Como SuperUsuario (root) en la terminal :
#Cree un grupo llamado "sin-internet"
Code: Select all
groupadd sin-internet
Code: Select all
iptables -A OUTPUT -m owner --gid-owner sin-internet -j DROP
ip6tables -A OUTPUT -m owner --gid-owner sin-internet -j DROP
iptables-save
ip6tables-save
Code: Select all
su -c 'IDR="eth0" ; \
/etc/rc.d/rc.networkmanager stop ; /etc/rc.d/rc.inet1 stop ; /etc/rc.d/rc.inet2 stop ; /etc/rc.d/rc.inetd stop ; \
/etc/rc.d/rc.inet1 start ; /etc/rc.d/rc.inet2 start ; /etc/rc.d/rc.inetd start ; /etc/rc.d/rc.networkmanager start ; \
ip link set "$IDR" down ; ip link set "$IDR" up' root
Code: Select all
## Same thing without a password
# %wheel ALL=(ALL:ALL) NOPASSWD: ALL
%wheel ALL=(:sin-internet) NOPASSWD: ALL
%sudo ALL=(:sin-internet) NOPASSWD: ALL
Code: Select all
USER=guest
gpasswd -a guest -g wheel
gpasswd -a guest -g sin-internet
Code: Select all
cd /opt/pt
sudo chown "$USER:sin-internet" -R *
Code: Select all
sudo -g sin-internet /opt/pt/packettracer
Code: Select all
Directorio="/opt/pt"
if [ -d "$Directorio" ]; then
cd "$Directorio"
iptables -A OUTPUT -m owner --gid-owner sin-internet -j DROP &> /dev/null
iptables-save &> /dev/null
ip6tables -A OUTPUT -m owner --gid-owner sin-internet -j DROP &> /dev/null
ip6tables-save &> /dev/null
$(chown "guest:sin-internet" -R *) &
fi