web-dev-qa-db-ja.com

他のユーザーがホームフォルダー内のファイルを表示できるのはなぜですか?

新たに特権のない「デスクトップユーザー」を追加したところ、ホームフォルダー内のファイルを表示できることに驚いた。

そのような緩い許可を設定する理由は何ですか?

36
ændrük

他のユーザーとファイルを共有するためのPublicフォルダーがホームディレクトリ(/home/user)に存在します。他のユーザーがこのPublicフォルダーへのアクセスを取得したい場合は、ホームディレクトリで 世界の実行ビット を設定する必要があります。

他の人があなたのホームフォルダにアクセスすることを許可する必要がない場合(他の人間やWebサーバーのwww-dataなどのユーザー)、chmod o-rwx "$HOME"(「他からの読み取り/書き込み/実行の削除"、デフォルトの許可は750であるため、chmod 750 "$HOME"と同等です)。そうでない場合は、 umask設定 も変更して、新しく作成されたファイルがデフォルトでワールドの読み取り許可を取得しないようにする必要があります。

システム全体の構成の場合、/etc/profile;を編集します。ユーザーごとの設定は、~/.profileで構成できます。すべてのユーザーに同じポリシーを使用するため、/etc/profileファイルを編集して次の行を追加します。

umask 027

シェルを使用している場合を除き、これらの変更を適用するには再ログインする必要があります。その場合、シェルでumask 027を実行できます。

既存のアクセス許可を修正するには、他のアクセス許可から読み取り/書き込み/実行のアクセス許可を削除する必要があります。

chmod -R o-rwx ~

~/Publicフォルダーを全員と共有することにした場合、次のコマンドを実行します。

  • chmod o+x ~-全員がディレクトリ内を下ることを許可する(x)が、ディレクトリ一覧を取得しない(rは追加しないでください)
  • find ~/Public -type f -exec chmod o+r {} \;-誰でも~/Publicのファイルを読むことができます
  • find ~/Public -type d -exec chmod o+rx {} \;-全員がディレクトリに降りて、その内容をリストできるようにします

GNU coreutilsを使用している場合(たとえば、busyboxのみを含む組み込みシステムではなくUbuntuで)、findおよびchmodを使用する前の2つのコマンドはフォルダーとファイルを再帰的に読み取り可能にする(およびディレクトリの実行(下降)ビットを追加するonly)この単一のコマンドに置き換えられます。

chmod -R o+rX ~/Public
31
Lekensteyn

buntuforms.orgのスタッフ によると、新しいユーザー間でファイルを共有しやすくするためです。

他のユーザーがファイルを読み取りおよび実行できないようにする場合は、アクセス許可を700または750に変更できます。

コマンドは次のとおりです。

chmod 750 $HOME

注:Ubuntuのデフォルトは755です

12
Jason Iverson

マーク・シャトルワースによる

「Ubuntuシステムのユーザーの大半は、マシンを独占的に使用している(個人のラップトップ)か、友人や親relativeと共有しています。マシンを共有している人は信頼されているか、 USBから!)些細なことです。その結果、ほとんど利益がありません。

...これらの権限を削除することから。

6
ignis

User ManagementUbuntu Server Guide のセクションを読むことができます必要な詳細をカバーしています。User Profile Security段落がおそらくあなたの質問に答えるでしょう-公式に。

5
Pavlos G.

Lekensteynの答えは、最後の2つのfindコマンドを-Xオプションを使用してchmodに置き換えることで改善できると思います(大文字のXに注意)。 2つのfindコマンドは次のように置き換えることができます

chmod -R o+rX ~/Public

これにより、ファイルとディレクトリが適切に区別されますが、他のユーザーが実行可能ファイルを実行できるようになるという追加の効果があります。

1
spinup

(適用されたタグから判断して)関心があるのはプライバシーであるため、許可の設定が不十分である可能性が非常に高くなります( ignis's answer を参照)。答えは 暗号化されたホームディレクトリ の行に沿ったものかもしれません。このソリューションは、コンピューターの別のユーザーによる攻撃に対して特別に設計されています。もちろん、別のユーザーがファイルに損傷を与えるのを止めることはできません(~/.Privateディレクトリを削除するだけで、すべてのファイルが消去されます)が、ディレクトリをマウントして、パスワード。

これを実現する最も簡単な方法は、インストールプロセス中です。「ホームディレクトリを暗号化する」というチェックボックスがあり、それを選択する必要があります。

そのためだけに再インストールする可能性は低いため(また、再インストールせずに実行することに伴うすべてのリスクを抱えているため)、以下を実行できます。

Sudo apt-get install encryptfs-utils
encryptfs-migrate-home
0
v010dya