すべての人に何かをする許可を与えるだけですが、許可だけを与えるとシステムがクラッシュするのはなぜですか?ファイルを変更せずに、許可を変更するだけです。
/var/log/syslog
、その理由がわかります。
すべての人に何かをする許可を与えるだけですが、許可だけを与えるとシステムがクラッシュするのはなぜですか?ファイルを変更せずに、許可を変更するだけです。
/var/log/syslog
、その理由がわかります。
回答:
いくつかの理由があります。
まず、通常の読み取り/書き込み/実行許可に加えて、ファイル許可に含まれる他のビットがいくつかあります。最も顕著なsetuid
とsetgid
。これらの許可ビットのいずれかが設定されたプログラムが実行されると、プログラムを実行したユーザーではなく、プログラムの所有者の「実効UID」または「実効GID」が取得されます。これにより、プログラムを実行したユーザーよりも多くの権限でプログラムを実行できます。su
およびを含む多くの重要なシステムユーティリティで使用されますsudo
。あなたのchmod
コマンドが使用できないユーティリティを残して、これらのビットをクリアします。
第二に、一部のプログラム(特にssh
)は、ファイルのアクセス許可の健全性チェックを行い、安全でないと見なされるアクセス許可を持つファイルの使用を拒否します。これにより、不注意な管理者が誤ってセキュリティホールを残してしまうリスクを軽減しますが、ファイルのアクセス権が完全に消去された場合の対処がさらに面倒になります。
短い答え。
Linuxシステムではsudo
、などの特定のプログラムに特定の権限が必要です。
実行chmod 777 -R /
すると、すべての権限が消去され、それらがに置き換えられます777
。これにより、すべての権限を手動で復元しない限り、システムが使用できなくなります。
実際には、再インストールははるかに高速で簡単です。
問題は、多くのシステムプログラムが、アクセス許可が "気に入らない"場合に起動しないように設計されていることです。これはセキュリティ上の理由で行われます。
各プログラムが間違った許可で動作しない理由を説明するよりも、システム設計を実際に処理する方法を説明する方が重要だと思います。
Ubuntuですべてのユーザーに無制限のアクセス許可を本当に与えたい場合は、sudo
ファイルとディレクトリのアクセス許可を変更する代わりに、すべてのユーザーをグループに追加できます。それは同じ効果がありますが、システムを台無しにしません。
別の方法(非常に悪い方法)は、rootアカウントをアクティブにし、全員がrootとしてログインできるようにすることです。
chmod
微妙なニュアンスがあります。
chmod 0777
setuidとsetgidが最初のものによってゼロにされ、後者によって保持されるという点でchmod u+rwx,g+rwx,o+rwx
、異なる動作をします。
そのため、システムが使用できなくなりました。いくつかのプログラムから必要なsetuidを削除しました。
Linux Fedora 23ラップトップのsetuidまたはsetgidファイルのリストは次のとおりです。
[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]#
キャッシュとログから多数のノイズエントリを削除しました。
chmod
をしているのかを説明し、他の場所では非常に不足している例の証拠を提供するためにわざわざ。
chmod u+rwx,g+rwx,o+rwx -R /
はシステムを壊さないということですか?
他の返信に加えて、「スティッキービット」も削除します/tmp
(通常は1777のアクセス許可があります)。これにより、プログラムが互いの一時ファイルに書き込みまたは削除できるため、他の予期しない問題が発生する可能性があります。
スティッキービットは、誰でもファイルを作成できるようにする一方で/tmp
、作成者だけが移動または削除できるようにする特別な許可です。