Windowsネットワークドライブlinuxマウントには、マウント後にsudoが必要


1

sudoを使用して、Linuxボックスにドライブをマウントできます。

sudo mount \
    -t cifs \
    -o 'vers=3.0,username=myuser,domain=mydomain' \
    '//windows-ip/share-folder' ~/testmount/

〜/ testmountに移動して、次のように何らかの操作を行うと、問題が解決mkdirします。

mkdir: cannot create directory ‘bkup’: Permission denied

使用すれば動作sudoしますcronjobで自動化されたスクリプトを使用してこれらのマウントにファイルを書き込むため、なしでマウントに書き込むことができる必要がありますsudo

マウントした後、使用sudoしない限り、そのフォルダーにファイルを追加できません。それが問題です。

私の問題はこれに非常に似ているようですが、その問題の解決策は私にとってはうまくいきませんでした:

https://unix.stackexchange.com/questions/231230/mount-successful-directory-accessible-but-cannot-do-operations-cp-mkdir-etc

誰かが問題を示唆したのは、sudoを使用してマウントするため、sudoを使用してその中の何かを変更する必要があることです(たとえsudoを使用して内容を読み取る必要はありませんが)。

だから、私はこれらのような答えを見つけました:

https://unix.stackexchange.com/questions/365308/use-mount-o-with-a-non-root-user https://wiki.ubuntu.com/MountWindowsSharesPermanently

提案されたソリューションを実装しようとしましたが、それらのソリューションを機能させることもできませんでした。

私のetc / fstabには次の行があります。

//windows-ip/share-folder \
/home/mysuer/testmount \
cifs \ 
uid=myuser,credentials=/home/myuser/.smbcredentials,iocharset=utf8,domain=my-domain 0 0

上記のセットアップで、sudoなしでマウントを実行しようとすると、エラーが発生します。

$ mount ~/testmount
mount: only root can mount //10.1..../shared on /home/.../testmount

ファイルを保存する自動システムがあり、sudoを使用する必要があるとは思わないため、sudoを使用せずにこれらのマウントされたフォルダーに書き込むことができる必要があります。 。

私はcentos 7にいます。おそらく、あなたはfstabに「ドメイン」オプションを入れることができないでしょう、私は知りません。誰もこれで私を助けることができますか?

回答:


1

マウントとアクセスは2つの異なるものです。

ユーザーが自分の中で、4番目のフィールドをマウントできるようにするには、fstab含まれている必要がありますuser例えば、user,uid=myuser,…。をご覧くださいman 5 fstab。あなたはそれを必要としないかもしれませんが、読み続けてください。

あなたはuid=myuserオプションを与えます。からman 8 mount.cifs

uid=arg
サーバーが所有権情報を提供しないときに、マウントされたファイルシステム上のすべてのファイルまたはディレクトリを所有するuidを設定します。ユーザー名または数値uidとして指定できます。指定しない場合、デフォルトはuid 0です。mount.cifsヘルパーは、非数値形式のUIDを指定するサポートするために、バージョン1.10以降でなければなりません。

別のフラグメント:

mount.cifs -V コマンドは、cifsマウントヘルパーのバージョンを表示します。

uid=適切に指定された、との実装がsudoそれを上書きすべきではありません。のuserオプションは必要ないかもしれませんfstab。たぶん、あなたは使用しuid=たときにほとんどそこにいたが、使用しないことに固執したsudo。ただし、もう1つあります。さらに別のフラグメント:

コアCIFSプロトコルは、ファイルとディレクトリのUNIX所有権情報またはモードを提供しません。このため、ファイルやディレクトリは、通常uid=gid=オプションまたはオプションが設定されている値によって所有されているように見え、権限はデフォルトfile_modeおよびdir_modeマウントに設定されます。chmod/ chownを介してこれらの値を変更しようとすると成功を返しますが、効果はありません。

クライアントとサーバーがUNIX拡張機能をネゴシエートするとき、ファイルとディレクトリには、サーバーによって提供されるuid、gid、およびモードが割り当てられます。CIFSマウントは一般にシングルユーザーであり、どのユーザーがマウントにアクセスしても同じ資格情報が使用されるため、通常、新しく作成されたファイルとディレクトリには、共有のマウントに使用された資格情報に対応する所有権が付与されます。

使用されているuidとgidがクライアントとサーバーで一致しない場合、forceuidforcegidオプションが役立つ場合があります。

適切に設定すれば、クライアントとサーバー(適切にセットアップされている場合)uid=はサーバーに保存されている所有権を無視して使用できます。この場合、これは関連しています:

forceuid
ファイルとディレクトリに対してサーバーから提供されたuidを無視し、常に所有者をuid=オプションの値に割り当てるようにクライアントに指示します。

この行はfstabあなたにとってよりうまくいくようです:

//windows-ip/share-folder \
/home/mysuer/testmount \
cifs \ 
forceuid,uid=NUMBER,credentials=/home/myuser/.smbcredentials,iocharset=utf8,domain=my-domain 0 0

その後、マウントしますsudo(またはuser本当に必要な場合はオプションを追加します)。noautoオプションがない場合、OSは起動時に共有を自動的にマウントしようとします。ネットワークはまだ利用できない可能性があります。OSがこれを解決するかどうかはわかりません。ではsystemd、あなたが使用することができx-systemd.automount、4番目のフィールドで始まるでしょう:

x-systemd.automount,x-systemd.idle-timeout=1min,forceuid,uid=NUMBER,…

代替手段はautofsです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.