ホームが暗号化されていて 700 の場合、フォルダーを共有するにはどうすればよいでしょうか?

ホームが暗号化されていて 700 の場合、フォルダーを共有するにはどうすればよいでしょうか?

注: 私は Ubuntu 12 を使用しています。私は完全な初心者ではありません (強化された Web サーバーの設定などを行うことができます) が、デスクトップとして使用しようとしている今、基本を学んだことがないような気がします。

Linux には、ローカル ユーザー間でデータを共有するためのデフォルトのフォルダーがありますか? /usr/share がそのためのものだと思っていましたが、sudo を使用しない限りできません。

フォルダーを右クリックすると「共有オプション」項目があることに気づきましたが、それがバックグラウンドで何か望ましくない動作をするのではないかと心配しています。どのように動作するのでしょうか? CLI から同じことを行うのは複雑でしょうか?

答え1

そのために使用できる既製のフォルダは、/tmpと/var/tmpだけです。/tmpは再起動のたびにクリアされ、/var/tmpは1週間などの一定期間後に削除される可能性があります。いずれにしても、それらは一時的ファイル。Ubuntu 12.04 が /var/tmp を変更しなくても、次のバージョンで何が行われるかはわかりません。そのため、これらのディレクトリの内容は警告なしに削除される可能性があると常に想定する必要があります。

これらが一時的であることが問題である場合は、別の解決策が必要です。他のローカル ユーザーに自分のファイルへの読み取りアクセスを許可したい場合は、ホーム ディレクトリのモードを 755 に設定します (通常はこれを行います)。ただし、その場合は、ホーム ディレクトリ内の秘密のファイルまたはディレクトリがそれぞれ 600 または 700 に設定されていることを確認します。

一時ファイルと、誰でも読み取り可能なホーム ディレクトリの組み合わせで、通常は十分です。共有フォルダーが本当に必要な場合は、たとえば /home/shared を作成し、それを 777 または 1777 に設定する必要があります (1777 は 777 と同様に誰でも書き込み可能であることを意味しますが、ファイルの所有者だけがファイルを削除できます)。より高度な設定には、ディレクトリの setgid ビットの設定とユーザー グループの操作が含まれますが、これについては詳しく説明しません。

私は通常、ディレクトリの 711 モードが好きではありません。わかりにくく、どの程度安全なのかが明確ではないからです (アクセスするために名前を推測する必要がある場合でも、読み取り可能であれば読み取り可能であると想定しています)。

結論として、解決策は何をしようとしているかによって異なります。

答え2

ディレクトリに対して実行権限を与えて読み取り権限を与えない場合、プロセスはディレクトリを移動できますが、その内容を読み取ることはできません。これにより、ディレクトリ内のサブディレクトリへのアクセスが許可されます。つまり、簡単に言えば、0711 です。

答え3

ホーム ディレクトリへのアクセス権を他のユーザーに与えることに不安がある場合は、バインド マウントを使用できます。つまり、別のパスを使用してディレクトリにアクセスできるようにします。これはファイル システム内のリンクに似ていますが、パス内のすべてのディレクトリへのアクセス権をユーザーに与える必要はありません。

たとえば、/shares (または任意の名前) というディレクトリを作成し、共有する必要があるすべてのディレクトリをリンクします (/shares/user は事前に作成する必要があります)。

mount --bind /home/user/private/stuff/share /shares/user

したがって、共有自体のみが他のユーザーからアクセス可能で、/home/user は 0700 (プライベートなど) にすることができます。これを永続的にするには、/etc/fstab にエントリを追加する必要があります。

/home/user/private/stuff/share /shares/user none bind 0 0

マウント コマンドまたは /etc/fstab の編集には root 権限が必要なので、権限のないアカウントを使用する場合はコマンドの前に「sudo」を付けます。

関連情報