다른 사용자 RHEL8로 wall 명령 실행

다른 사용자 RHEL8로 wall 명령 실행

루트(또는 다른 사용자)로 담벼락 메시지를 보내고 원래 사용자를 인식하지 못하게 하려면 어떻게 해야 합니까?

아래 내용을 보십시오. 벽에 루트의 메시지를 표시하고 싶지만 여전히 admin1이 표시됩니다. 무엇을 놓치고 있습니까?

-c, tmux, runuser로 명령을 보내 다양한 ​​sudo -i, -s를 시도했지만 결과는 항상 동일합니다. sudoers 또는 다른 것의 전역 설정입니까?

문맥상, 이것은 제가 알아낼 수 없고 답도 없는 테스트 문제입니다!

 [admin1@RHELPOC ~]$ sudo su - [root@RHELPOC ~]# id uid=0(root)
 gid=0(root) groups=0(root)
 context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
 [root@RHELPOC ~]# wall "whoisthis"
 
 Broadcast message from admin1@RHELPOC (pts/0) (Fri Jan  8 13:58:40
 2021): whoisthis

답변1

wallgetlogin메시지의 사용자 이름을 가져오고 호출이 실패한 getpwuid경우에만 getlogin대체하는 데 사용됩니다 (참조여기).

getlogin반품프로세스 제어 터미널에 로그인하기 위한 사용자 이름(에서getlogin 맨페이지) "로그인 셸"이 su아니더라도 사용자 및 그룹 ID가 0인 셸만 실행하므로 다음 su -결과는 변경되지 않습니다 getlogin.쉘을 로그인 쉘로 시작하십시오. 환경은 실제 로그인과 유사합니다.(에서소련 기계 도움말 페이지).

getpwuid(getuid())getlogin실제로는 "올바른" 사용자를 반환하지만 호출이 실패한 경우에만 호출됩니다.

따라서 wall"루트에서 시작"하려면 실제로 TTY에 루트로 로그인해야 합니다. 해당 명령을 사용하여 로그인 할 수도 있지만 loginFedora의 터미널에서는 작동하지 않는 것 같습니다.

편집: Fedora에 무슨 문제가 있는지 잘 모르겠습니다. loginUbuntu VM에서 예상대로 작동합니까?

vtrefny@ubuntu:~$ sudo login
ubuntu login: root
Password: 
Welcome to Ubuntu 20.04.1 LTS (GNU/Linux 5.4.0-58-generic x86_64)

...

root@ubuntu:~# wall "aaaa"
                                                                               
Broadcast message from root@ubuntu (pts/0) (Fri Jan  8 21:57:39 2021):         
                                                                               
aaaa

따라서 대답은 login작동하는 시스템에서 사용하는 것입니다 :-)

관련 정보