それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

lvm 関連のコマンドをsudo で使えるように sudoers を編集する

lvm 関連のコマンドは root のみ

lvm コマンドを実行したいと思っても、root に制限されているので、使えないことがあり困ったので、一般ユーザーに開放することにした。

sudoers に許可したいコマンドのフルパスを列挙すればいい。

Cmnd_Alias LVM = /sbin/lvchange,/sbin/lvconvert,/sbin/lvcreate,/sbin/lvdisplay,\
                 /sbin/lvextend,/sbin/lvm,/sbin/lvmchange,/sbin/lvmconf,/sbin/lvmdiskscan,\
                 /sbin/lvmdump,/sbin/lvmetad,/sbin/lvmsadc,/sbin/lvmsar,/sbin/lvreduce,\
                 /sbin/lvremove,/sbin/lvrename,/sbin/lvresize,/sbin/lvs,/sbin/lvscan,\
                 /sbin/pvchange,/sbin/pvck,/sbin/pvcreate,/sbin/pvdisplay,/sbin/pvmove,\
                 /sbin/pvremove,/sbin/pvresize,/sbin/pvs,/sbin/pvscan,/sbin/vgcfgbackup,\
                 /sbin/vgcfgrestore,/sbin/vgchange,/sbin/vgck,/sbin/vgconvert,\
                 /sbin/vgcreate,/sbin/vgdisplay,/sbin/vgexport,/sbin/vgextend,\
                 /sbin/vgimport,/sbin/vgmerge,/sbin/vgmknodes,/sbin/vgreduce,\
                 /sbin/vgremove,/sbin/vgrename,/sbin/vgs,/sbin/vgscan,/sbin/vgsplit

takuya   ALL=(ALL) NOPASSWD: LVM

sudo lvs で使える。

sudo pvs 

コマンド一覧作り方

lvm 関連のコマンドは、lvm のサブコマンドや

takuya@:~$ lvm
  WARNING: Running as a non-root user. Functionality may be unavailable.
lvm> help
  pvremove        Remove LVM label(s) from physical volume(s)
  pvs             Display information about physical volumes
  pvscan          List all physical volumes
  segtypes        List available segment types
  systemid        Display the system ID, if any, currently set on this host
  tags            List tags defined on this host
  vgcfgbackup     Backup volume group configuration(s)
  vgcfgrestore    Restore volume group configuration
  vgchange        Change volume group attributes
  vgck            Check the consistency of volume group(s)
  vgconvert       Change volume group metadata format
  vgcreate        Create a volume group

sbin の中で lvm にエイリアスしているものを列挙すれば見つけられる、

takuya@:~$ ll /sbin/ | grep lvm
107:lrwxrwxrwx 1 root root      3 2017-03-18 01:29 lvchange -> lvm
108:lrwxrwxrwx 1 root root      3 2017-03-18 01:29 lvconvert -> lvm
109:lrwxrwxrwx 1 root root      3 2017-03-18 01:29 lvcreate -> lvm
110:lrwxrwxrwx 1 root root      3 2017-03-18 01:29 lvdisplay -> lvm

あとはこの結果を xargs などで配列にしてあげればいい

やり方はいくらでもあると思う。

takuya@:~$ ll /sbin/ | grep lvm | cut -d ' ' -f 13 | sort | uniq | xargs -I@ echo /sbin/@ |xargs echo | tr '  ' ' ,'
/sbin/lvchange,/sbin/lvconvert,/sbin/lvcreate,/sbin/lvdisplay,/sbin/lvextend,/sbin/lvmchange,/sbin/lvmconfig,/sbin/lvmdiskscan,/sbin/lvmsadc,/sbin/lvmsar,/sbin/lvreduce,/sbin/lvremove,/sbin/lvrename,/sbin/lvresize,/sbin/lvs,/sbin/lvscan,/sbin/pvchange,/sbin/pvck,/sbin/pvcreate,/sbin/pvdisplay,/sbin/pvmove,/sbin/pvremove,/sbin/pvresize,/sbin/pvs,/sbin/pvscan,/sbin/vgcfgbackup,/sbin/vgcfgrestore,/sbin/vgchange,/sbin/vgck,/sbin/vgconvert,/sbin/vgcreate,/sbin/vgdisplay,/sbin/vgexport,/sbin/vgextend,/sbin/vgimport,/sbin/vgimportclone,/sbin/vgmerge,/sbin/vgmknodes,/sbin/vgreduce,/sbin/vgremove,/sbin/vgrename,/sbin/vgs,/sbin/vgscan,/sbin/vgsplit

2019-09-27

このメモは随分前に書いていて、公開してなかったものなので、情報が古い可能性があります。昔LVMを触り始めたころに何故か sudo lvs が出来なくてこういうことをしました。今はできるはず。

sudoers のサンプル程度に使ってください。