有効なユーザーのuidとgidを使用しても、リモートcifs共有はrootとしてのみマウントできます。
これした長年の作業の後でも、fstabは同じままです。私は継続的にパッチを適用しているので(openSUSE Leap 15.3)、何か問題があるか、もう使用されていないかどうか疑問に思います。明確な答えがなければ、この問題を最もよく解決する方法は何ですか?
# whoami
root
# uname -a
Linux my_user7 5.3.18-59.40-preempt #1 SMP PREEMPT Mon Jan 3 18:43:20 UTC 2022 (34edd9c) x86_64 x86_64 x86_64 GNU/Linux
# ls -lah /external/
total 0
drwxr-xr-x 1 root root 76 Apr 13 2021 .
drwxr-xr-x 1 root root 422 Sep 4 14:26 ..
drwxr-xr-x 1 my_user users 0 Jul 28 2018 Data1
drwxr-xr-x 1 my_user users 0 Nov 26 2019 Data2
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data3
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data4
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data5
drwxr-xr-x 1 my_user users 0 Apr 13 2021 Data6
# mount -v -t cifs -o username=my_user,password=my_pass,vers=1.0,uid=my_user,gid=users //192.168.1.1/Data5 /external/Data5
mount.cifs kernel mount options: ip=192.168.1.1,unc=\\192.168.1.1\Data5,vers=1.0,uid=1000,gid=100,user=my_user,pass=********
# ls -lah /external/
total 0
drwxr-xr-x 1 root root 76 Apr 13 2021 .
drwxr-xr-x 1 root root 422 Sep 4 14:26 ..
drwxr-xr-x 1 my_user users 0 Jul 28 2018 Data1
drwxr-xr-x 1 my_user users 0 Nov 26 2019 Data2
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data3
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data4
drwxrwxrwx 1 root root 0 Jul 27 14:14 Data5
drwxr-xr-x 1 my_user users 0 Apr 13 2021 Data6
# id my_user
uid=1000(my_user) gid=100(users) groups=491(cdrom),463(vboxusers),100(users)
私は何を見逃していますか?
よろしくお願いします。
編集:追加情報...
mount cifs は root としてのみ実行できます。
# whoami
my_user
# mount -v -t cifs -o username=my_user,password=my_pass,vers=1.0,uid=my_user,gid=users //192.168.1.1/Data5 /external/Data5
This program is not installed setuid root - "user" CIFS mounts not supported.
sudoはうまくいきます。
# sudo mount -v -t cifs -o username=my_user,password=my_pass,vers=1.0,uid=my_user,gid=users //192.168.1.1/Data5 /external/Data5
mount.cifs kernel mount options: ip=192.168.1.1,unc=\\192.168.1.1\Data5,vers=1.0,uid=1000,gid=100,user=my_user,pass=********
しかし、最終結果は同じです。ルートとしてマウントします。
# ls -lah /external/
total 0
drwxr-xr-x 1 root root 76 Apr 13 2021 .
drwxr-xr-x 1 root root 422 Sep 4 14:26 ..
drwxr-xr-x 1 my_user users 0 Jul 28 2018 Data1
drwxr-xr-x 1 my_user users 0 Nov 26 2019 Data2
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data3
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data4
drwxrwxrwx 1 root root 0 Jul 27 14:14 Data5
drwxr-xr-x 1 my_user users 0 Apr 13 2021 Data6
私のfstabは次のようになります
# cat /etc/fstab | grep Data5
//192.168.1.1/Data5 /external/Data5 cifs user,nofail,x-systemd.device-timeout=10,x-systemd.automount,x-systemd.idle-timeout=60,uid=my_user,gid=users,username=my_user,password=my_pass,vers=1.0 0 0
どちらが正常に実行されますか?
# sudo mount -a
しかし、まだrootとしてインストールされています
# ls -lah /external/
total 16K
drwxr-xr-x 1 root root 76 Apr 13 2021 .
drwxr-xr-x 1 root root 422 Sep 4 14:26 ..
drwxr-xr-x 1 my_user users 12K Nov 4 14:14 Data1
drwxr-xr-x 8 my_user users 170 May 6 2021 Data2
drwxr-xr-x 2 my_user users 4.0K Oct 4 10:04 Data3
drwxr-xr-x 5 my_user users 110 Nov 19 12:02 Data4
drwxrwxrwx 1 root root 0 Jul 27 14:14 Data5
drwxr-xr-x 1 my_user users 0 Apr 13 2021 Data6
まだ混乱しています!
編集2 ...
部分的な解決策。
forceuidとforcegid固定所有権を追加しましたが、file_modeとdir_modeを使用してもモードを設定できませんでした。
# mount -v -t cifs -o username=my_user,password=my_pass,uid=my_user,gid=users,forceuid,forcegid,file_mode=0755,dir_mode=0755,vers=1.0 //192.168.1.1/Data5 /external/Data5
mount.cifs kernel mount options: ip=192.168.1.1,unc=\\192.168.1.1\Data5,forceuid,forcegid,file_mode=0755,dir_mode=0755,vers=1.0,uid=1000,gid=100,user=my_user,pass=********
# ls -lah /external/
total 0
drwxr-xr-x 1 root root 76 Jan 25 14:20 .
drwxr-xr-x 1 root root 422 Sep 4 14:26 ..
drwxr-xr-x 1 my_user users 0 Jul 28 2018 Data1
drwxr-xr-x 1 my_user users 0 Nov 26 2019 Data2
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data3
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data4
drwxrwxrwx 1 my_user users 0 Jul 27 14:14 Data5
drwxr-xr-x 1 my_user users 0 Apr 13 2021 Data6
これでパターンだけを把握すればいいのに…
答え1
(a)共有にアクセスする唯一の人であり、(b)とにかくモード変更がCIFSファイルシステムに書き戻されないため、モードが777か755かは重要ではないと思いました。したがって、次の方法で問題を解決します。
# mount -v -t cifs -o username=my_user,password=my_pass,uid=my_user,gid=users,forceuid,forcegid,vers=1.0 //192.168.1.1/Data5 /external/Data5
mount.cifs kernel mount options: ip=192.168.1.1,unc=\\192.168.1.1\Data5,forceuid,forcegid,file_mode=0755,dir_mode=0755,vers=1.0,uid=1000,gid=100,user=my_user,pass=********
# ls -lah /external/
total 0
drwxr-xr-x 1 root root 76 Jan 25 14:20 .
drwxr-xr-x 1 root root 422 Sep 4 14:26 ..
drwxr-xr-x 1 my_user users 0 Jul 28 2018 Data1
drwxr-xr-x 1 my_user users 0 Nov 26 2019 Data2
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data3
drwxr-xr-x 1 my_user users 0 Jul 27 2018 Data4
drwxrwxrwx 1 my_user users 0 Jul 27 14:14 Data5
drwxr-xr-x 1 my_user users 0 Apr 13 2021 Data6
そしてfstabに対応する内容は次のとおりです。
# cat /etc/fstab | grep Data5
//192.168.1.1/Data5 /external/Data5 cifs user,nofail,x-systemd.device-timeout=10,x-systemd.automount,x-systemd.idle-timeout=60,uid=my_user,gid=users,credentials=/root/.data5cred,vers=1.0,forceuid,forcegid 0 0
これが誰かに役立つことを願っています。
注1:権利を修正する解決策を知っている人がいれば、学習の観点からまだ興味があります。
注2:突然forceuidとforcegidを指定する理由を知っている人がいる場合は、そうします。非常に聞きたいのなら!
みんな乾杯してください!
答え2
あなたのコメントによると、mount.cifs
SUIDではないため、root以外のユーザーとしてインストールを実行することはできません。/bin/mount
ただし、にリストされているパスのみを使用できます/etc/fstab
。
これが以前に動作していた場合、誰かがSUIDビットを設定した可能性が高く、/sbin/mount.cifs
これは人々が怒ってしまうでしょう。
/etc/fstab
制限されたファイルに含まれるログインの詳細とともに詳細を入力することをお勧めします。詳細についてはに記載されていますが、man mount.cifs
次のようになります。
//192.168.1.1/Data5 /external/Data5 cifs username=my_user,credentials=<some file>,user 0 0
これには、some file
ユーザー名、パスワード、ドメインを含める必要があります。詳しくはマニュアルページをご覧ください。
答え3
個人情報を使用して接続するには、誰もが見ることができるように、パブリックサーバーで個人情報を交換する必要があります。
sudo touch cred.txt
echo "USER hangbroktim PASS CreepyPoniesInTheNight34767248932654678497632785468932458769823584" >> cred.txt
mount -v -t cifs -o passloader cred.txt