
Ubuntu 22.04のリリースに伴い、この最新LTSリリースはCanonicalが支援するLinuxディストリビューション史上最高のものの一つとなるよう、裏でいくつかの変更が行われました。しかし、ちょっとした騒動を引き起こした変更が1つあります。それは、ユーザーのホームディレクトリのデフォルトパーミッションに関する問題です。
以前は、ユーザーのホームディレクトリのパーミッションは755に設定されており、他のユーザーがディレクトリだけでなく、その中に含まれるファイルやサブディレクトリも閲覧できました。このようなセキュリティ問題を回避するため、開発者はホームディレクトリのパーミッションを750に設定しました。これにより、ホームディレクトリの所有者のみが内容を閲覧できるようになります。
~/Public フォルダを共有することが多い場合、Samba で大きな問題が発生します。これは、ホームディレクトリの所有者のみがローカルまたは LAN 経由でそのフォルダにアクセスしたり、移動したりできるという点です。この変更は純粋にセキュリティ上の理由から行われたもので、他のユーザーが互いのホームディレクトリの内容を閲覧できるべきではないため、正しい方法だったと考えています。
Sambaでは、 を使用した場合でも、そのホームディレクトリの所有者のみが共有を参照できます。つまり、Nautilusの「パブリックプロパティ」ウィンドウ(図Apublic = yes
)で他のユーザーがこのフォルダ内でファイルの作成と削除を明示的に許可したとしても、機能しません。
図A

どうすればいいですか? 2つの解決策があります。早速見ていきましょう。
参照: 知っておくべきオープンソースと Linux の用語 40 選 (TechRepublic Premium)
必要なもの
必要なのは、Ubuntu Linux 22.04のインスタンスとsudo権限を持つユーザーだけです。これら2つが準備できたら、Sambaを起動してみましょう。
最も簡単だが安全性が低い修正
この修正方法は、問題を回避する最も簡単な方法です。ただし、これは大きな注意点ですが、このオプションを使用すると、他のユーザーからホームディレクトリへの参照権限を剥奪することで、追加されたセキュリティを回避してしまうことになります。
問題がなければ、次のコマンドでホーム ディレクトリの権限を 755 に戻すことで、更新を回避できます。
chmod o+rx /home/USER
ここで、USER はユーザー名です。
それだけで問題は解決するはずですが、必ずしも最も安全な解決策とは言えません。
簡単ではないがより安全な解決策
それが不可能な場合は、Sambaのforce userディレクティブを使うこともできます。これにより、ゲストユーザーが強制的にあなたのユーザーになりすますようになります。これによりセキュリティ対策は維持されますが、他のユーザーが~/Publicディレクトリの内容を閲覧できるようになります。
この方法を使用するには、次のコマンドで Samba 構成ファイルを開きます。
sudo nano /etc/samba/smb.conf
そのファイルの下部に、パブリック共有のエントリがあります。これは次のようになります。
[Public]
path = /home/jack/Public
public = yes
guest only = yes
browsable = yes
writable = no
read only = no
force create mode = 0666
force directory mode = 0777
そのセクションの下部に次の行を追加します。
force user = USER
USERはユーザー名です。ファイルを保存して閉じます。次のコマンドでSambaを再起動します。
sudo systemctl restart smbd
この時点で、Linux システム上のすべてのユーザーは、Samba に接続するときにログイン資格情報を使用して ~/Public 共有の内容を表示できるようになります。
困難だが最も安全な解決策
最良の選択肢は、自宅以外の場所でディレクトリを共有することです。こうすることで、権限の問題を回避できます。以下のコマンドで新しいディレクトリを作成しましょう。
sudo mkdir /data
次のようにしてそのディレクトリの権限を変更します。
sudo chmod -R ugo+rw /data
それでは共有を作成しましょう。Sambaの設定を次のように開きます。
sudo nano /etc/samba/smbd.conf
そのファイルの下部に次の内容を貼り付けます。
[data]
path = /data
guest only = yes
browsable = yes
writable = no
read only = no
force create mode = 0666
force directory mode = 0777
ファイルを保存して閉じます。次のコマンドでSambaを再起動します。
sudo systemctl restart smbd
これで、新しいデータ共有が表示されるはずです。システムアカウントを持つすべてのユーザーがアクセスできるようになります。また、public = yes を追加して、共有への匿名アクセスを許可することもできます。
Ubuntu Linux 22.04の新しいホームディレクトリ権限をSambaが回避できるようにするための方法は以上です。どちらの方法が良いか迷っている場合は、より安全な最後のオプションをお勧めします。どちらの方法を選んでも、ホームディレクトリ内かどうかに関係なく、Samba共有のコンテンツへのアクセスを許可できるようになります。
Ubuntu に興味がありますか? TechRepublic Academy のThe Mastering Linux Development Bundle をチェックしてください。
Jack Wallen によるビジネス プロフェッショナル向けの最新のテクノロジー アドバイスをすべて知るには、YouTube で TechRepublic の How To Make Tech Work を購読してください。