Ubuntu 22.04のリリースに伴い、この最新のLTSリリースをCanonicalがサポートするLinuxディストリビューションの歴史の中で最高のものにするために、内部でいくつかの変更が行われました。しかし、少し騒ぎを引き起こした変更が1つあります。その問題は、ユーザーのホームディレクトリのデフォルトの権限です。
以前は、ユーザーのホームディレクトリのアクセス許可が755に設定されていたため、他のユーザーはディレクトリだけでなく、含まれているファイルやサブディレクトリも表示できました。このようなセキュリティの問題を回避するために、開発者はホームディレクトリへのアクセス許可を750に設定しました。これは、ホームディレクトリの所有者のみがコンテンツを表示できることを意味します。
〜/ Publicフォルダーを共有する傾向がある場合、ローカルまたはLANを介してフォルダーにアクセスまたはトラバースできるのはホームディレクトリの所有者だけであるため、Sambaで大きな問題が発生します。この変更は純粋にセキュリティ上の理由で行われたものであり、他のユーザーがお互いのホームディレクトリのコンテンツを表示できるようにする理由がないため、これが正しい方法だったと思います。
Sambaでは、public = yes
を使用しても 、そのホームディレクトリの所有者のみが共有を表示できます。つまり、Nautilusの[パブリックプロパティ]ウィンドウ(図A )を使用して、他のユーザーがこのフォルダー内のファイルを作成および削除することを明確に許可している場合でも、 )、動作しません。
図A
職業はなんですか?これには2つの可能な修正があります。掘り下げましょう。
必要なもの
従う必要があるのは、UbuntuLinux22.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に接続するときにログイン資格情報を使用して〜/パブリック共有のコンテンツを表示できるようになります。
やりがいのあるが最も安全な修正
パーミッション全体の問題を回避できるため、自宅の外でディレクトリを共有するのが最善のオプションです。次のコマンドで新しいディレクトリを作成しましょう:
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を追加して、共有への匿名アクセスを許可することもできます。
これで、SambaがUbuntuLinux22.04の新しいホームディレクトリのアクセス許可を回避できるようになりました。使用するソリューションがわからない場合は、より安全であるため、最後のオプションを選択します。いずれにせよ、ホームディレクトリにあるかどうかに関係なく、これらのユーザーにSamba共有のコンテンツへのアクセスを許可することができます。