/etc/fstab で次の内容を使用してネットワーク ドライブをマウントしています:
$ sudo nano /etc/fstab
//XXX.XXX.XXX.XXX /mnt/bilder cifs auto,username=XXXX,password=XXXX,vers=3.0,uid=1000,gid=1000,file_mode=0777,dir_mode=0777 0 0
これは完璧に動作します。/mntの権限を確認すると
$ ls -la /mnt
total 8
drwxr-xr-x 3 root root 4096 Jun 23 13:37 .
drwxr-xr-x 22 root root 4096 Jul 12 14:16 ..
drwxrwxrwx 2 pi pi 0 Aug 1 15:04 bilder
すると、pi ユーザー (私がログインしているユーザー) が所有者として rwx 権限を持っているようです。実際、誰もが rwx を持っているはずです。
しかし、今/mnt/bilderにアクセスしようとすると拒否されてしまいます
$ touch /mnt/bilder/test
touch: cannot touch '/mnt/bilder/test': Permission denied
それはなぜですか?
答え1
SMB共有をマウントするときには、実際のWindowsファイル権限は表示されません。表示されるのは、単にfstabfile/dir_mode
オプションがCIFSクライアントに指示するものだけです。見せるただし、これらのオプションではセキュリティをバイパスすることはできません。
(Windows/SMB ファイルのアクセス許可はこれよりも少し広範囲にわたるためrwx
、適切に表示するには「getcifsacl」などの別のツールが必要になります。)
ただし、実際のアクセス チェックは、Windows で設定されたファイル権限に従ってサーバーによって実行され、username=
共有をマウントするために使用したユーザー アカウント ( ) に対してチェックされます。
サーバーがLinux上でSambaを実行している場合でも、同じことが当てはまります。すべてのアクセスチェックはアカウントベースであり、クライアントはできた実際の Linux ファイル権限を表示します (この SMBv3 拡張をサポートする十分に新しいカーネルがある場合)。それを上書きすることはできません。