2020/08/19

centos7 sambaサーバにcifsでマウントする

windowsユーザの為に、samba

接続したい名前を検索する。

 # smbclient -L 192.168.0.xxx -U%


        Sharename       Type      Comment
        ---------       ----      -------
        info            Disk      hogehoge Utilities
        share           Disk      hogehoge
        share2          Disk
        share3          Disk
        IPC$            IPC       IPC Service (hogehoge)
Reconnecting with SMB1 for workgroup listing.

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
        WORKGROUP            hogeFile


マウントしたい先は、//192.168.0.xxx/share2 と分かった。

# mount //192.168.0.2/share2 /home/hoge/mnt/ -o username=<sambaの登録ユーザ名>,password=<その人のパスワード>

 マウント先でシンボリックリンクを有効にしたい際は、

 # mount //192.168.0.2/share2 /home/hoge/mnt/ -o username=<sambaの登録ユーザ名>,password=<その人のパスワード>,mfsymlinks

と末尾に ,mfsymlinksのオプションを付加すること。

 接続先のcifsのヴァージョン古い場合は、ver2.0等の追記が必要とのことだが、

デフォルト値で接続できたので、このまま運用する。

 接続解除

# umount /home/hoge/mnt

 

 

ディレクトリのパーミッション一括変更処理

新たなユーザと新たなグループを作成し、既存のディレクトリのパーミッションを
数百個一括で変換したい事案が出たので、オボエガキ

findを使ってディレクトリを絞ってパイプでxargsに投げる方法

 

# find /home/hogehoge/test -type d -user nobody -perm 0755 -print | xargs chmod 644


『/home/hogehoge/test』配下にある『nobodyユーザ』の
パーミッション『0755』のディレクトリを『フルパス形式の標準出力』にして
『パイプ』以降の 『xargs』コマンドを使って『フルパス形式の標準出力』に対して、
パーミッション『644』を定義する。

findコマンド
find <処理したいディレクトリの先頭> <オプション>
オプション
-type d ディレクトリファイルを検索
-user nobody ユーザnobodyのファイルのみ検索
-perm 0755 パーミッションが755のものを検索
-print 見つけたファイルをフルパスで出力

| xargs chmod 644
パイプ『|』の右側へ左側のコマンドを投げる
xargs 標準入力やファイルからリストを読み込み、コマンドラインを作成して実行
chmod 644 パーミッションを644に変更

同じような操作方法として、パイプを使わずに パイプ以降を
-exec chmod 644 {} + と記述する方法もあるが、

xargsよりもexecのほうが処理の手順が多く、ファイル数が多くなるほど負荷がかかるため、
基本はxargsを推奨とのこと。
コマンドの分かりやすさからも、xargsのほうがよさそう。