"id -r"コマンドの正しい構文

"id -r"コマンドの正しい構文

あるいは、id -r私はより責任を持ち、スクリプト機能をカスタマイズできるようにすることに興味があります(例えば、スクリプトでsudoを実行し、ログインしたユーザーのホームディレクトリから情報を取得する)来ます)。susudo

sudo設定を知っていますが、SUDO_USERユーザーが変更できる変数であり、最近 sudo を発行したユーザーのユーザー名のみがあるため、これに依存したくありません (例えば、sudo -i ; sudo -iu randomUser ; echo $SUDO_USER出力) 実際のユーザーの代わりに「root」などです。

マニュアルページやオンラインで見つかった内容は、このコマンドの正しい使い方を示すようには見えず、明白な置換は機能しません。

[root@ditirlns03 ~]# id -r
id: cannot print only names or real IDs in default format
[root@ditirlns03 ~]# id -r jadavis6
id: cannot print only names or real IDs in default format
[root@ditirlns03 ~]# id -r root
id: cannot print only names or real IDs in default format

この時点で、私は私が欲しいものを印刷するかどうかはまだわかりませんid -r。主に何でも印刷する方法がわからないからです。

答え1

-r他のオプションと一緒に使用する必要があります。たとえば、

$ id -Gr
1000 4 24 27 30 46 109 124

マニュアルページを引用すると、次のようになります。

-r, --real
print the real ID instead of  the  effective  ID,  with -ugG

答え2

この手順と文書は標準的な慣行とは異なります。

それが-ugG実際に意図されたものであれば-u|g|G[modifier](そして明らかにそのようなものであれば)、そのように文書化する必要があります。作家は努力する価値がないと思うようです。しかし、ユーザーが同じことをした場合(Davis氏はかなり合理的に試しました):

-ru、合理的で直感的な仮定はエラーを返します。

このヒントについて:

stat -c "%U" $(tty)

シェルによって異なることに言及することが役に立つかもしれません。

答え3

  • ユーザーIDの印刷:id -u
  • ユーザー名印刷:id -u -n

もっと傾いてみてくださいman id

関連情報