次のコマンドを使用して、あるCentOSサーバーから別のCentOSサーバーへのSamba共有をマウントします。
mount -t cifs -o blarg,password //10.151.170.170/events /var/blarg/copy-to
これにより、権限が/var/blarg/copy-to
admin:adminに変更されます。権限を使用して削除すると、umount //10.151.170.170/events
再び変更されます。他の機能に影響を与えるため、これは起こりたくありません。
権限が管理者に変更されるのを防ぐ方法は?
答え1
これは一般的なUNIXの動作ですが、cifにリモートユーザー情報を無視させることができます。
mount -t cifs -o \
user=blarg,password=blarg,nounix,uid=0,gid=0 \
//10.151.170.170/events /var/blarg/copy-to
これにより、すべてのファイルがroot:rootの所有者であるように見えます。生成されたすべてのファイルは、そのファイルをインストールしたユーザー(この場合はBragg)の所有者になります。
nounix
ユーザー情報を無効にするだけでなく、すべてのposix拡張も無効にします。これがWindowsインストールの場合は欲しいものです。そうでない場合nounix
に変更できますforceuid,forcegid
。
答え2
によるとman mount.cifs
:
uid=arg
sets the uid that will own all files or directories on the mounted
filesystem when the server does not provide ownership information.
It may be specified as either a username or a numeric uid. When not
specified, the default is uid 0. The mount.cifs helper must be at
version 1.10 or higher to support specifying the uid in non-numeric
form. See the section on FILE AND DIRECTORY OWNERSHIP AND
PERMISSIONS below for more information.
uid を期待値に強制するには、uid を使用します。グループ(gid)にも同様に適用されます。
例:
$ mount -t cifs //10.151.170.170/events /var/blarg/copy-to -o blarg,password -o uid=1000,gid=100
uidとgidを見つけるには、次のコマンドを使用できますgetent
。
$ getent passwd <username>
usrname:x:1000:1005:username,,,:/home/username:/bin/bash
最初の1000個はuid、1005番目はgidです(順序ではなく値が変更されます)。