Правильный синтаксис для команды "id -r"

Правильный синтаксис для команды "id -r"

Я пытаюсь понять, id -rбудет ли выводиться UID или имя пользователя, вошедшего в систему, несмотря на любые su' или sudo'. Мне интересно сделать это, чтобы я мог немного повысить ответственность людей и соответствующим образом настроить работу скрипта (т. е. они запускают 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](что, по-видимому, так и есть), то это должно быть задокументировано таким образом. Авторы, похоже, не считали, что это стоит усилий. Однако, когда пользователь делает то же самое (как вполне разумно пытался сделать г-н Дэвис):

-ru, законное, интуитивное предположение, возвращает ошибку.

По поводу этого совета:

stat -c "%U" $(tty)

Вероятно, было бы полезно упомянуть, что это зависит от оболочки.

решение3

  • Печать идентификатора пользователя:id -u
  • Печать имени пользователя:id -u -n

Постарайтесь man idбольше наклоняться.

Связанный контент