Herkese bir şey yapması için izin veriyorum, ancak sistem neden yalnızca izin vererek çöküyor? Dosyaları değiştirmeme sadece izinleri değiştiriyorum.
/var/log/syslog
, hatta nedenini anlamaya istiyorum.
Herkese bir şey yapması için izin veriyorum, ancak sistem neden yalnızca izin vererek çöküyor? Dosyaları değiştirmeme sadece izinleri değiştiriyorum.
/var/log/syslog
, hatta nedenini anlamaya istiyorum.
Yanıtlar:
Bunun birkaç nedeni var.
İlk önce normal okuma / yazma / yürütme izinlerine ek olarak, dosya izinlerinin içerdiği başka bitler de vardır. En önemlisi setuid
ve setgid
. Bu izin bitlerinden birine sahip bir program çalıştırıldığında, onu çalıştıran kullanıcı yerine programın sahibinin "etkin UID'si" ve / veya "etkin GID'si" alır. Bu, programların, bunları koşturan kullanıcıdan daha fazla izinle çalıştırılmasını sağlar. su
Ve de dahil olmak üzere çok önemli sistem yardımcı programları tarafından kullanılır sudo
. Sizin chmod
komut kullanılamaz araçları bırakarak bu bitleri temizler.
İkincisi, bazı programlar (özellikle ssh
) dosya izinlerini kontrol eder ve güvensiz olarak gördükleri izinlere sahip dosyaları kullanmayı reddeder. Bu, dikkatsiz yöneticilerin yanlışlıkla güvenlik delikleri bırakma riskini azaltır, ancak silinen dosya izinleriyle uğraşmayı daha da acı verici hale getirir.
Kısa bir cevap.
Linux sistemi gibi bazı programlar için özel izinler gerektirir sudo
.
Çalıştırdığınızda chmod 777 -R /
tüm izinleri silin ve bunları ile değiştirin 777
. Bu, tüm izinleri manuel olarak geri yüklemediğiniz sürece sistemi kullanılamaz hale getirir.
Uygulamada yeniden kurmak çok daha hızlı ve kolaydır.
Sorun, pek çok sistem programının izinleri "beğenmedikleri" durumunda başlamayacakları şekilde tasarlanmış olmalarıdır. Bu güvenlik nedeniyle yapılır.
Her bir programın neden yanlış izinlerle çalışılamadığını açıklamak yerine, sistem tasarımını paragraf olarak nasıl kullanacağını açıklamanın daha önemli olduğunu düşünüyorum.
Ubuntu'da tüm kullanıcıların gerçekten sınırsız izinleri olmasını istiyorsanız, sudo
dosya ve dizin izinlerini değiştirmek yerine tüm kullanıcıları gruba ekleyebilirsiniz . Bu aynı etkiye sahip olacak, ancak sistemi mahvetmeyecek.
Başka bir yol (çok kötü bir hesap) root hesabını aktif hale getirmek ve herkesin root olarak giriş yapmasını sağlamak.
chmod
ince nüanslara sahiptir.
chmod 0777
farklı davranır chmod u+rwx,g+rwx,o+rwx
ki setuid ve Setgid , ilk olarak sıfırlama işlemi ve bunun tarafından korunur.
Bu yüzden sistem kullanılamaz hale geldi. Gerekli setuid'i birkaç programdan kaldırdınız .
İşte Linux Fedora 23 dizüstü bilgisayarımdaki setuid veya setgid dosyalarının listesi:
[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]#
Önbellek ve kayıtlardaki düzinelerce gürültü girişini kaldırdım.
chmod
yaptığını açıklamak ve başka yerlerde çok eksik olan bir şey için örnek kanıt sağlamak için uğraşıyordu .
chmod u+rwx,g+rwx,o+rwx -R /
, sistemi bozmayacağı anlamına mı geliyor ?
Diğer yanıtlara ek olarak: "yapışkan bit" i de kaldırdınız /tmp
(genellikle 1777'ye sahip) ve bu programlar diğerlerinin geçici dosyalarına yazabilecek veya silebileceklerinden diğer beklenmeyen sorunlara neden olabilir.
Yapışkan bit, herhangi birinin dosya oluşturmasına izin verirken /tmp
, yalnızca onu oluşturan kişinin taşınmasına veya kaldırmasına izin veren özel bir izindir .