chmod 777 -R /がシステムを使用不可のままにするのはなぜですか?


52

すべての人に何かをする許可を与えるだけですが、許可だけを与えるとシステムがクラッシュするのはなぜですか?ファイルを変更せずに、許可を変更するだけです。



2
クラッシュしているのではなく、ある時点でブートプロセスを中止するだけだと思います。を見ると/var/log/syslog、その理由がわかります。
ハイエンジェル

7
これが物事を壊さなかったとしても、「すべての人に何かをする許可を与える」ことはないということを知っておくことが重要です。「ルート」(より正確には、有効なUIDがゼロのプロセス)しか実行できないアクションがまだ多数あります。
-zwol

6
@Glenが「関連」する場合、「サイト間で重複としてフラグを立てることができる理由を示す正確な複製」を意味します。素晴らしいリンク。;)
underscore_d

4
あなたの話がこの質問をするようになったのを聞いて本当にうれしいです。
デウィモーガン

回答:


104

いくつかの理由があります。

まず、通常の読み取り/書き込み/実行許可に加えて、ファイル許可に含まれる他のビットがいくつかあります。最も顕著なsetuidsetgid。これらの許可ビットのいずれかが設定されたプログラムが実行されると、プログラムを実行したユーザーではなく、プログラムの所有者の「実効UID」または「実効GID」が取得されます。これにより、プログラムを実行したユーザーよりも多くの権限でプログラムを実行できます。suおよびを含む多くの重要なシステムユーティリティで使用されますsudo。あなたのchmodコマンドが使用できないユーティリティを残して、これらのビットをクリアします。

第二に、一部のプログラム(特にssh)は、ファイルのアクセス許可の健全性チェックを行い、安全でないと見なされるアクセス許可を持つファイルの使用を拒否します。これにより、不注意な管理者が誤ってセキュリティホールを残してしまうリスクを軽減しますが、ファイルのアクセス権が完全に消去された場合の対処がさらに面倒になります。


41

短い答え。

Linuxシステムではsudo、などの特定のプログラムに特定の権限が必要です。

実行chmod 777 -R /すると、すべての権限が消去され、それらがに置き換えられます777。これにより、すべての権限を手動で復元しない限り、システムが使用できなくなります。

実際には、再インストールははるかに高速で簡単です。

問題は、多くのシステムプログラムが、アクセス許可が "気に入らない"場合に起動しないように設計されていることです。これはセキュリティ上の理由で行われます。

各プログラムが間違った許可で動作しない理由を説明するよりも、システム設計を実際に処理する方法を説明する方が重要だと思います。

Ubuntuですべてのユーザーに無制限のアクセス許可を本当に与えたい場合は、sudoファイルとディレクトリのアクセス許可を変更する代わりに、すべてのユーザーをグループに追加できます。それは同じ効果がありますが、システムを台無しにしません。

別の方法(非常に悪い方法)は、rootアカウントをアクティブにし、全員がrootとしてログインできるようにすることです。


11
誰かが時間をかけて詳細な回答をするかもしれません;-)
Pilot6

1
誰もがこのシステムですべてを実行できるようにするより良い方法を指すことができますが、各バイナリに特定のアクセス許可、設定、フラグが必要な理由に関する詳細な記事を書くのはちょっとやりすぎです。;-)
フィリップ-Zyan K Lee-ストックマン

4
Linuxシステムは、誰もがすべてを行えるように設計されていません。ルートアカウントを有効にすると、誰でもそのためにルートとしてログインできます。それは愚かですが、これは方法です。
Pilot6

9
Pilot6では、システムプログラムは、許可が間違った場合に許可されない/適切に機能しないように設計されているということですか。また、可能であればPilot6を使用して、特定のアプリケーションに制限付きのアクセス許可が必要な理由と例について、より深い回答を提供してください。ありがとう。
ブリジラジキーショア

13
@Goldnameクラッシュがあるエラー- 「私は中止だので、私はこの状態でシステムで重要な機能を実行することはできません」それは言って、プログラムの全体数だ
Shadur

32

chmod 微妙なニュアンスがあります。

chmod 0777setuidsetgidが最初のものによってゼロにされ、後者によって保持されるという点で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]# 

キャッシュとログから多数のノイズエントリを削除しました。


3
あえて、そのリストに小人と悪党がいるのだろうか?
WiseOldDuck

2
@WiseOldDuck:ゲームには、「ハイスコア」ファイルを更新できるが、特権のないユーザーは更新できないようにするためのビットがあると思います。
ウォリック

3
@WiseOldDuck wallykが言うように、さらに、setuidがrootを使用する必要はないことを覚えておいてください(そしてafaik setgidはrootにとって本当に有用ではありません)
StarWeaver

5
chmodをしているのかを説明し、他の場所では非常に不足している例の証拠を提供するためにわざわざ。
underscore_d

1
これchmod u+rwx,g+rwx,o+rwx -R /はシステムを壊さないということですか?
デニスJaheruddin

15

他の返信に加えて、「スティッキービット」も削除します/tmp(通常は1777のアクセス許可があります)。これにより、プログラムが互いの一時ファイルに書き込みまたは削除できるため、他の予期しない問題が発生する可能性があります。

スティッキービットは、誰でもファイルを作成できるようにする一方で/tmp、作成者だけが移動または削除できるようにする特別な許可です。


4
「これにより、root以外のユーザーがシステムの/ tmpディレクトリを使用できなくなります。」-それは正しくないようです。誰でもシステムの/ tmpディレクトリを使用できます。ユーザー、グループ、その他すべてにすべての権限がある場合、スティッキービットは必要ありません。ただし、だれでも他の人のファイルを削除できます。
hvd

1
そうベンもし私が、実行は1777年にchmod -R /私はスティッキービットをクリアしていないですと、問題があってはなりませんか?–
ブリジラジキーショア

@hvdに感謝します-あなたは正しいです。それを反映するために投稿を少し変更しました。
ベンXO

@BrijRajKishore、そもそもなぜこれをしているのかという疑問は残っています。Ubuntuとそれを構成するプログラムは、多くの理由で「許可なし」で実行されるようには設計されていません。代わりにルートに「su」する方が賢明です。
ベンXO

1
クラッシュするかどうかは不明です。突然、アプリケーションが一時ファイルを相互に処理できるようになる可能性があります(おそらく偶然)。これにより、クラッシュが発生する可能性があります。Ubuntuがこのようにテストされることは決してないので、おそらくあなたが最初に知る人になるでしょう。:-)一方、システム上のすべてのフォルダーにスティッキービットを設定すると、フォルダーのグループアクセス許可(つまり、2777のアクセス許可を持つフォルダー)のためにプログラムを操作できると期待していたアプリケーションで、他の多くの問題が発生する可能性があります。
ベンXO
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.