staff
シンボルグループ名(例:)を数字に変換できる短いコードスニペットはありますか?グループ番号(例えば82
)?
コードはOS XとGNU / Linuxで同じように実行する必要があります。
ベストアンサー1
Pythonを使用するモジュールgrp
は十分簡単。初心者のための重要なアイデア:
import grp
print(grp.getgrnam("my_group_name").gr_gid)
ただし、より強力なソリューションを使用するには時間がかかりました。
echo $MYGROUPNAME | python -c 'import grp,sys; gn=sys.stdin.readline().strip(); [gid]=[g.gr_gid for g in grp.getgrall() if g.gr_name==gn][:1]; print(gid)'
まず、両方で動作するように書かれています。アナコンダ2とアナコンダ3。
第二:それ使用しないでくださいgrp.getgrnam()
ただし、すべてのグループをインポートして独自のフィルタリングを実行します。なぜ?getgrnam()
私がテストした1つ以上のMacではまったく機能しないからです。
第三:それ複数の結果を切り取る。なぜ?grp.getgrall()
私がテストした少なくとも1つのGentooでは、重複した結果が返されたためです。
最後に、そうです。存在しないグループは逆追跡を引き起こします。自分のニーズに合わせて調整してください。
気づく この問題いくつかのビットが提供されていますが、新しい回答は閉じられて移行できません。だからここに自己答えがあります。