[SOLUCIONADO] Permisos predeterminados

Hola!
inukaze
Black ninja
Black ninja
Posts: 50
Joined: 06 Jul 2023, 07:40
Distribution: Slackware

[SOLUCIONADO] Permisos predeterminados

Post#1 by inukaze » 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 :

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
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"

Code: Select all

groupadd sin-internet
#Use iptables (ipv4 e ipv6) para hacer que el grupo "sin-internet" no tenga acceso a 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
#Force el reinicio de los demonios de los dispositivos de red :

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
#Agregue las siguiente lineas al archivo /etc/sudoers

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
#Agregue el usuario a los grupos "wheel" & "sin-internet"

Code: Select all

USER=guest
gpasswd -a guest -g wheel
gpasswd -a guest -g sin-internet
#Cambiar los permisos de forma recursiva desde /opt/pt

Code: Select all

cd /opt/pt
sudo chown "$USER:sin-internet" -R *
#Probar que funcione : desde una terminal del usuario comun ( no usar la cuenta del superusuario [root] )

Code: Select all

sudo -g sin-internet /opt/pt/packettracer
Como me funciono sin problemas agregue lo siguiente en /etc/rc.d/rc.local

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
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
Last edited by inukaze on 24 Jun 2025, 01:06, edited 2 times in total.

inukaze
Black ninja
Black ninja
Posts: 50
Joined: 06 Jul 2023, 07:40
Distribution: Slackware

Permisos predeterminados

Post#2 by inukaze » 24 Jun 2025, 00:50

Acabo de Publicar la solucion aqui -> https://www.linuxquestions.org/question ... 175751707/

En resumen la solucion fue basicamente la siguiente :

NOTA : packagemanager en mi sistema, es un guion (script) personalizado

In una terminal como superusuario (root)

01 - Reinstalar paquetes

Code: Select all

packagemanager --reinstall lightdm libblockdev xdg-desktop-portal xdg-desktop-portal-gtk accountsservice dbus desktop-file-utils eudev libevdev p11-kit pkgconf polkit udisks udisks2 upower wpebackend-fdo xdg-user-dirs xdg-utils xdgmenumaker ; ldconfig

02 - Desinstalar paquetes : udisks udisks2 gvfs libblockdev y borrar los archivos de configuracion de libblockdev y udisks2 y luego reinstalarlos

Code: Select all

packagemanager --remove udisks udisks2 libblockdev gvfs
rm -rf /etc/libblockdev
rm -rf /etc/udisks2
packagemanager --install udisks2 libblockdev gvfs; ldconfig
03 - Si como yo tampoco utilizas el keyring, yo prefiero eliminarlo

Code: Select all

rm ~/.local/share/keyrings/*
sudo packagemanager --remove gnome-keyring ; sudo ldconfig
04 - Reiniciar el pc entero, esto parece funcionar genial para mi, por ahora.

Post Reply