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