[Linux] あるユーザーの権限と同じ権限を別ユーザーに付与する
環境
OS: Ubuntu 16.04
背景
新しいユーザー(名前はansible)を作成したのですが、
ふと、、、この新ユーザーの権限は、
「vagrantユーザーと同等の権限を付与したいなー」
という風に思ったわけです。
ということで権限確認するわけですが、
$ id vagrant
uid=1000(vagrant) gid=1000(vagrant) groups=1000(vagrant),4(adm),24(cdrom),27(sudo),30(dip),46(plugdev),110(lxd),115(lpadmin),116(sambashare)
この結果から、group名を1つ1つ取り出して、
$ sudo gpasswd -a ansible adm
を手打ちで繰り返すの嫌だな、、、 と思い、
正規表現で何とかならないかなー
と考えたのが背景です。
(2019/2/4追記) コメントより抜粋
@angel_p_57 さんのご指摘により 1行のコマンドでまとめられる事を教えていただきました。
以下がスマートで良いです。
$ sudo usermod -a -G $(id -nG vagrant | tr " " ,) ansible
正規表現でなんとかしてみる(当初自分で考えたやり方)
普段、sedをあまり使わないので、手探りですが、
以下のように書いてみました。
$ echo `id vagrant` | sed -e 's/[0-9\(,\ ]//g'| sed -e 's/)/\n/g' > vagrant_group.txt
2回sedを噛ましてますが、
1回目は、数字と左括弧、カンマとスペースを消してます。
2回目は、右括弧を改行に変えてます
最後に、加工した内容を vagrant_group.txt に出力します。
結果
vagrant_group.txtは下記のようになります。
uid=vagrant
gid=vagrant
groups=vagrant
adm
cdrom
sudo
dip
plugdev
lxd
lpadmin
sambashare
最初の3行もsedで削除すべきですが、コマンドが長くなりそうだったので、やめました。
後は4行目からvagrant_group.txtを読み込んで、group_add するだけです。
$ tail -n +4 vagrant_group.txt | xargs -I {} sudo gpasswd -a ansible {}
参考
Author And Source
この問題について([Linux] あるユーザーの権限と同じ権限を別ユーザーに付与する), 我々は、より多くの情報をここで見つけました https://qiita.com/gano/items/2df357beea4907d69b61著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .