web-dev-qa-db-ja.com

パスワードをハードコーディングせずに端末からSambaネットワークドライブをマウントする

デフォルトのコマンドは次のようになります。

Sudo mount -t cifs -o username=YOUR_USERNAME,password=YOUR_PASSWORD,uid=YOUR_UBUNTU_USERNAME //networkNameOfRemoteComputer/path/to/my/folder /path/to/mounting/dir

ただし、パスワードをハードコーディングせずにsamba共有フォルダーをマウントしたい。パスワードが表示されている場合、セキュリティ上のリスクが高いと考えます。誰にもアイデアがありますか?

(この質問の以前のバージョンでは、Sudo権限なしでマウントするように頼みましたが、これは不可能だと思われます:()

4
mcExchange

代わりにmount.cifsコマンドを使用します。これにより、資格情報ファイルを指定したり、何も指定されていない場合にパスワードの入力を求められたりします。

インストール

まず、次のコマンドを発行して、必要なパッケージがインストールされていることを確認します。

Sudo apt-get install cifs-utils

方法1-クレデンシャルファイルの使用

マニュアルによると http://manpages.ubuntu.com/manpages/raring/man8/mount.cifs.8.html

オプション
[...]
credentials = filenameは、ユーザー名またはパスワード、あるいはオプションでワークグループの名前を含むファイルを指定します。ファイルの形式は次のとおりです。

ユーザー名=値
password = value
domain = value

使用法:

mount.cifs //<hostname_or_ip>/<cifs_share> <local_mountpoint> -o user=<user_to_connect_as>,rw,credentials=<path_to_the_credentials_file>

例:

Sudo mount.cifs //domain.com/share /mnt/domain_com -o user=admin,rw,credentials=/root/.credentials

「name_of_the_user_to_connnect_as」にはドメインまたはワークグループも含めることができることに注意することが重要です。

user=workgroup/user
user=domain/user

(環境に応じて、多少のオプションが必要になります)

セキュリティについては、資格情報ファイルを/ rootディレクトリに保存するだけで十分ですが、別の場所に保存する場合は、

  • Sudo chown root <file>を使用して、rootユーザーをその所有者として設定します
  • `Sudo chmod 600で所有者のみの権限を設定します

METHOD 2-パスワードプロンプト

前述のように、パスワードをまったく表示したくない場合は、mount.cifsコマンドで「パスワード」オプションを指定しないでください。

http://manpages.ubuntu.com/manpages/hardy/man8/mount.cifs.8.html のマンページから

password = arg

      specifies  the  CIFS  password. If this option is not given then the
      environment  variable  PASSWD  is  used.  If  the  password  is  not
      specified directly or indirectly via an argument to mount mount.cifs
      will Prompt for a password, unless the guest option is specified.

      Note that a password which contains the delimiter character (i.e.  a
      comma  ’,’)  will  fail  to be parsed correctly on the command line.
      However,  the  same  password  defined  in  the  PASSWD  environment
      variable  or  via  a  credentials file (see below) or entered at the
      password Prompt will be read correctly.

したがって、次のコマンドはパスワードを要求する必要があります。

mount.cifs //<hostname_or_ip>/<cifs_share> <local_mountpoint> -o user=<user_to_connect_as>,rw

期待どおりにテストされ、動作しています:

enter image description here

5
Eduardo López