リモートcifsファイルシステムをマウントするためにLinuxパスワードを必要としない自動マウント

リモートcifsファイルシステムをマウントするためにLinuxパスワードを必要としない自動マウント

私のDebianホームディレクトリに/home/myuser/pchome/ディレクトリがあり、それをリモートcifsファイルシステムのマウントポイントとして使用したいと思います。そのため、myuserがログインするたびに実行されるbashスクリプトがあります。スクリプトには次のコマンドが含まれています。

mount -t cifs //192.168.1.2/myuser -o username=myuser,password=mypassword,uid=1000,gid=1000 /home/myuser/pchome

このコマンドは、コンソール自体の魅力のように動作します。しかし、問題は、マウントするにはsudoとパスワードの入力(またはroot権限で実行)が必要であることです。

Sudoers

私の心に浮かんだ最初の方法は、myuserがマウントを使用できるようにsudoerを設定することでした。それは次のとおりです。

myuser ALL=(ALL)    NOPASSWD: /bin/mount, /bin/umount

問題は、myuserが制限なくマウントを使用できることです。たとえば、/ etcにファイルシステムをマウントすることもできます。私はmyuserが自由にmountコマンドを使用できるようにすることに興味がありません。

システムテーブル

私が考えた2番目の方法は、fstabを使用してマウントを許可することでした。テストしていませんが、このソリューションを使用すると、マウントポイントとマウントするファイルシステムの両方を回復でき、他のマウントは完了できないと想定します。ただし、すべてのユーザーがインストールを実行できます(fstab行に「user」オプションが使用されている場合)。

私の観点からはどちらも正しいとは思わないのですが、もしこの問題を解決する効率的な方法をご存知の方がいらっしゃいます。セキュリティやパスワードの心配やシステムを悪意のあるマウントにさらすことなく、自宅のマウントポイントを使用してパブリックリモートファイルシステムをマウントできるようにしたいです。インストールポイントが私の家にあるので、これは簡単です。

よろしくお願いします。

ベストアンサー1

1つの可能性は、インストールコマンドをスクリプト(ルートのみ変更可能)として保存し、スクリプトに対するsudo権限を定義することです。

/home/bin/mymount:

#!/bin/sh
mount -t cifs //192.168.1.2/myuser -o username=myuser,password=mypassword,uid=1000,gid=1000 /home/myuser/pchome

sudoers:

myuser ALL=(ALL)    NOPASSWD: /home/bin/mymount # and maybe , /home/bin/myumount

参考までに、対応するCIFSパスワードを次の場所に保存することもできます。資格証明ファイル


エイリアスを定義するか、グループに権限を付与することで、個々のユーザーに権限を付与できます。

エイリアスの使用:

User_Alias CIFSUSERS = myuser, user2, user3 #, more users
CIFSUSERS ALL=(ALL)    NOPASSWD: /home/bin/mymount # ...

または、次の特定のグループに権限を付与しますfloppy

%floppy ALL=(ALL)    NOPASSWD: /home/bin/mymount # ...

おすすめ記事