私はLinux(rhel7)にWindows共有をマウントして使用しました
mount -t cifs -o username=<share user>,password=<share password> //WIN_PC_IP/<share name> /mnt
マウントに成功しました。 Linuxからマウントされたフォルダのアクセス許可を変更しようとしたところ、エラーが発生しました。
chmod:「/ mnt /」の権限を変更:権限が拒否されました
chmod -R 777 /mnt
Linuxでマウントされたフォルダーのアクセス許可を変更するにはどうすればよいですか?
Linuxコマンド(chmod)からマウントされたWindowsフォルダーの権限を変更することは可能ですか?
Linuxコマンド(chmod)からマウントされたWindowsフォルダーの権限を変更することは可能ですか?
いいえ。CIFSはNTFSと同様に仮想ファイルシステムであるため、chmodは影響しません。また、マウントポイントにアクセスする前にマウントポイントのアクセス許可を変更しても、影響はありません。マウント後のアクセス許可は、常にマウント前のアクセス許可を置き換えるためです。
必要な権限が777の場合は、mountコマンドを変更して、これらの権限を含めます:dir_mode=0777,file_mode=0777
。 nounix
オプションを追加する癖もついてきますが、Windows共有の場合はあまり効果がありません。
代わりにこれを試してください:
mount -t cifs -o username=<share user>,password=<share password>,dir_mode=0777,file_mode=0777,nounix //WIN_PC_IP/<share name> /mnt
そして、より良いマウントポイントは、/ mnt自体ではなく、/ mntの下にあることに同意します。
まず、ルート(デフォルトでは)のみが/mnt
ディレクトリ自体の権限を変更できます。これは、root:root
が所有しているためです。そのため、権限を変更しようとすると、非ルートとして失敗します。
/mnt
内にサブディレクトリを作成し、権限を変更してからマウントすることで、これを自分で簡単にしたいと思うでしょう。
まず、すでに何かをアンマウントします。
Sudo umount /mnt
次に、共有をマウントするサブディレクトリを作成します
Sudo mkdir /mnt/share
次に、変更するユーザーが所有するアクセス許可を変更します。
Sudo chown foo:foo /mnt/share
ここで、foo:foo
は、ユーザーfoo
のユーザー名です。
最後に、代わりに/mnt/share
の場所にマウントします。
Sudo mount -t cifs -o username=xxx,password=xxx //WIN_PC_IP/<share name> /mnt/share
それでも/mnt/share
内のファイルが正しいユーザーによって所有されていないという問題がある場合は、マウントオプションでuid=xxx,gid=xxx
を指定する必要がある場合があります。