誤ってコマンドを実行してしまったが、どうしたらよいか分からない

誤ってコマンドを実行してしまったが、どうしたらよいか分からない

誤ってコマンドを実行しました

sudo chmod -R o+x /home

私のUbuntu 12.10で。

さて、どうすればいいでしょうか?それは危険ですか?パーティションのバックアップがないので、このコマンドは元に戻せないと思います。この間違いのためにシステム全体を再インストールする必要があるのでしょうか?

答え1

これを修正する最善の方法は、システムの設定方法の詳細によって異なります。幸いなことに、これらの詳細はおそらくご存知でしょう。

ファイルの場合、+xプログラムのように実行できることを意味します。(実際には、試す. 実際の実行可能バイナリやスクリプトファイルでない場合は、ハッシュバンライン、それでも失敗します。

ディレクトリ(つまりフォルダ)では、+x 許可別の意味を持ちます。フォルダーの実行権限は、フォルダーとそのサブフォルダーに入る権限 (サブフォルダーにはこのために必要な権限がない場合があります) と、フォルダー内のファイルにアクセスしようとする権限 (ファイルには、この操作を成功させる権限がある場合とない場合があります) を付与します。

これはですo+xo他のこれは、ファイルまたはフォルダを所有していないユーザー、およびファイルまたはフォルダの「グループ所有者」のメンバーではないユーザーの権限を制御します。

他のローカルユーザーとファイルを共有する権限を現在使用していない場合

ユーザー(例えばあなた)が他のユーザーとファイルを共有する必要がない場合は、実行権限を取り除いても安全です。他の、あなたがそれをする限りホームフォルダ内のあらゆる場所ホームフォルダは/home/usernameusername実際のユーザー名に置き換えられます。/homeそれ自体はホームフォルダではなく、含むすべてのホームフォルダ。/homeそれ自体は実際にはコンピュータの人間ユーザーによって所有されていないため、実行権限は必須です他のそれ自体から削除されません/home

したがって、次のように実行できます:

cd ~

~ホーム フォルダーを表します。(シェルはそれをそのように解釈するので、そのまま入力できます。)

次に、次のコマンドを実行します。

chmod -R o-x .* *

または、他のユーザーがホーム フォルダー自体にディレクトリ変更できないようにしたい場合は、次のようにします。

chmod -R o-x ~

を書いていないのは意図的ですsudo。ホーム フォルダ内のファイルは引き続きあなたの所有物なので、 は必要ありませんsudo。 を省略しておくと、間違ったファイルやフォルダの権限を誤って変更してしまうことを防ぐことができます。(特に、/homeは によって所有されているrootため、 を省略しておくことでsudo、 の権限を誤って変更して/homeシステムが使用できなくなることがなくなります。)

もし、あんたがする現在、他のローカルユーザーとファイルを共有する権限を使用しています

マシン上で他のユーザーと共有しているフォルダがある場合(共有している場合は、ほぼ確実に共有していることがわかっているはずです)、上記の方法を使用して、それらの特定のフォルダに手動で実行権限を追加できます。ただし、フォルダが多すぎてこれが実用的でない場合は、特に他のユーザーがアクセスすべきでないものにアクセスすることを心配していない場合は、次の方法をお勧めします。ただ実行権限を剥奪するファイル、からではなくフォルダー。もちろん、これを実行した後、一部のフォルダーから実行権限を選択的に削除することもできます。

実行権限を剥奪するには他のすべてからファイル自分のユーザーのホーム フォルダー (ディレクトリではない) で、次を実行します。

find ~ -type f -exec chmod o-x \{\} \;

(これは、SEngstromの提案。 見るman find仕組みの詳細については、こちらをご覧ください。

答え2

すべてのユーザー ファイルに対するファイル権限を、すべてのユーザーに対して実行可能 (およびディレクトリをデフォルトの検索可能) に変更しました。これはおそらく望んでいる結果ではありませんが、特にマシン上の唯一のユーザーである場合は、それほど大きな問題ではないかもしれません。

1 つの方法としては、findドキュメント ディレクトリで を実行し、通常のファイルの実行可能フラグが気になる場合はオフにすることです。

システムが新しい場合は、きれいにするために再インストールを検討するかもしれません :)

関連情報