私はデスクトップコンピュータのユーザーが多く、各ユーザーはリモートのSambaサーバーにフォルダを持っています。ここで説明されているように、これらのネットワークフォルダのユーザー固有のインストールを設定しようとしています。
https://askubuntu.com/questions/67405/auto-mounting-network-shares-per-user
この記事では、sudoersに次の行を追加することをお勧めします。
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred //server/music /home/user/MyMusicFolder
コマンドは正常に機能しますが、特定のグループが所有するように共有をマウントする必要があります。私は次のように行を変更してみました。
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred,gid=xxx //server/music /home/user/MyMusicFolder
ただし、gid = xxxを追加した後、sudoersファイルは正しく解析されなくなります。これは、NOPASSWDコマンドが実際にはコンマで区切られたパラメータのリストを使用しているためと思われるため、コマンドからコンマをエスケープする必要があります。次のようにバックスラッシュを使用してこれを実行できます。
user ALL= NOPASSWD: /bin/mount -t cifs -o cred=/home/user/.Music.cred\,gid=xxx //server/music /home/user/MyMusicFolder
sudoersファイルが解析され、パスワードを入力しなくてもsudoを使用してmountコマンドを実行できるようになりました。残念ながら、次のエラーが発生します。
Sorry, user is not allowed to execute '/bin/ls /home/' as root on ubuntu.
別のコマンドを実行しようとしたとき。\,gid=xxx
行から削除すると、このエラーは発生しません。もしそうなら、sudoersファイルからコンマをエスケープする正しい方法は何ですか?
答え1
sudoers(5)
マニュアルページから:
コマンド引数に使用される場合、「、」、「:」、「=」、および「\」文字は「\」にエスケープする必要があります。