Estou concedendo permissão a todos para que façam qualquer coisa, mas por que o sistema falha ao fornecer apenas permissões? Só estou modificando a permissão para não alterar os arquivos.
/var/log/syslog
, descobrirá o motivo.
Estou concedendo permissão a todos para que façam qualquer coisa, mas por que o sistema falha ao fornecer apenas permissões? Só estou modificando a permissão para não alterar os arquivos.
/var/log/syslog
, descobrirá o motivo.
Respostas:
Existem algumas razões.
Primeiro, além das permissões habituais de leitura / gravação / execução, existem outros bits que as permissões de arquivo contêm. Mais notavelmente setuid
e setgid
. Quando um programa com um desses bits de permissão é definido, ele obtém o "UID efetivo" e / ou "GID efetivo" do proprietário do programa, em vez do usuário que o executou. Isso permite que os programas sejam executados com mais permissões do que o usuário que os executou. É usado por muitos utilitários cruciais do sistema, incluindo su
e sudo
. Seu chmod
comando limpa esses bits, deixando os utilitários inutilizáveis.
Em segundo lugar, alguns programas (principalmente ssh
) fazem uma verificação de integridade nas permissões de arquivo e se recusam a usar arquivos com permissões que consideram inseguras. Isso reduz o risco de administradores descuidados deixarem falhas de segurança acidentalmente, mas torna mais difícil lidar com permissões de arquivo eliminadas.
Uma resposta curta.
O sistema Linux requer permissões específicas para determinados programas sudo
, como etc.
Ao executar, chmod 777 -R /
limpe todas as permissões e as substitua por 777
. Isso torna o sistema inutilizável, a menos que você restaure manualmente todas as permissões.
Na prática, é muito mais rápido e fácil reinstalar.
O problema é que muitos programas do sistema são projetados de uma maneira que eles não iniciam se "não gostarem" das permissões. Isso é feito por razões de segurança.
Eu acho que é mais importante explicar como lidar com o design do sistema em parática do que explicar por que cada programa falha em trabalhar com permissões erradas.
Se você realmente deseja que todos os usuários tenham permissões ilimitadas no Ubuntu, você pode adicionar todos os usuários ao sudo
grupo em vez de alterar as permissões de arquivo e diretório. Isso terá o mesmo efeito, mas não arruinará o sistema.
Outra maneira (muito ruim) é ativar a conta root e permitir que todos façam login como root.
chmod
tem nuances sutis.
chmod 0777
se comporta de maneira diferente de chmod u+rwx,g+rwx,o+rwx
que setuid e setgid são zerados pelo primeiro e preservados pelo último.
É por isso que o sistema se tornou inutilizável. Você removeu o setuid necessário de alguns programas.
Aqui está uma lista dos arquivos setuid ou setgid no meu laptop Linux Fedora 23:
[root@fedora23lnvr61]# find / -perm /g+s,u+s
/var/log/journal
/var/log/journal/75e870eb13c74fbf97556a32ecf80ea2
/opt/google/chrome/chrome-sandbox
/usr/bin/rogue
/usr/bin/gnuchess
/usr/bin/locate
/usr/bin/umount
/usr/bin/lbrickbuster2
/usr/bin/gpasswd
/usr/bin/crontab
/usr/bin/fusermount
/usr/bin/su
/usr/bin/at
/usr/bin/newuidmap
/usr/bin/sudo
/usr/bin/pkexec
/usr/bin/mount
/usr/bin/chsh
/usr/bin/newgrp
/usr/bin/passwd
/usr/bin/chage
/usr/bin/chfn
/usr/bin/write
/usr/bin/newgidmap
/usr/sbin/mount.nfs
/usr/sbin/lockdev
/usr/sbin/netreport
/usr/sbin/userhelper
/usr/sbin/usernetctl
/usr/sbin/unix_chkpwd
/usr/sbin/pam_timestamp_check
/usr/libexec/kde4/kdesud
/usr/libexec/kde4/kpac_dhcp_helper
/usr/libexec/dbus-1/dbus-daemon-launch-helper
/usr/libexec/qemu-bridge-helper
/usr/libexec/openssh/ssh-keysign
/usr/libexec/spice-gtk-x86_64/spice-client-glib-usb-acl-helper
/usr/libexec/utempter/utempter
/usr/libexec/abrt-action-install-debuginfo-to-abrt-cache
/usr/libexec/Xorg.wrap
/usr/lib/polkit-1/polkit-agent-helper-1
/usr/lib64/vte-2.90/gnome-pty-helper
/usr/lib64/virtualbox/VBoxSDL
/usr/lib64/virtualbox/VirtualBox
/usr/lib64/virtualbox/VBoxNetNAT
/usr/lib64/virtualbox/VBoxHeadless
/usr/lib64/virtualbox/VBoxNetDHCP
/usr/lib64/virtualbox/VBoxNetAdpCtl
/usr/lib64/virtualbox/VBoxVolInfo
/usr/lib64/vte/gnome-pty-helper
[root@fedora23lnvr61]#
Eu removi dezenas de entradas de ruído em caches e logs.
chmod
está fazendo e fornecer evidências de exemplo, algo que falta muito em outros lugares.
chmod u+rwx,g+rwx,o+rwx -R /
não irá quebrar o sistema?
Adicional às outras respostas: você também removeu o "bit pegajoso" de /tmp
(que normalmente possui permissões 1777) e isso pode causar outros problemas inesperados, pois os programas podem gravar ou excluir arquivos temporários uns dos outros.
O bit adesivo é uma permissão especial que, embora permita a criação de arquivos por qualquer pessoa /tmp
, permite apenas que a pessoa que o criou a mova ou remova.