Tôi có quyền sudo trên một hộp redhat; một khi tôi đã sudo su -
trở thành root trong shell, có bất kỳ lệnh nào tôi có thể chạy để xem tên người dùng nào tôi đã TỪ không?
Tôi có quyền sudo trên một hộp redhat; một khi tôi đã sudo su -
trở thành root trong shell, có bất kỳ lệnh nào tôi có thể chạy để xem tên người dùng nào tôi đã TỪ không?
Câu trả lời:
Quá trình cha của shell là su
, vì vậy bạn cần tìm hiểu su
tiến trình cha của người dùng đang chạy :
ps -o user= $(ps -o ppid= $PPID)
Nhưng bạn không nên làm sudo su -
nếu phiên bản sudo của bạn không quá cũ để có sudo -i
. Sudo đặt biến môi trường SUDO_USER
thành tên của người dùng đã chạy sudo. Bạn sẽ không nhìn thấy nó sudo su -
vì su -
tẩy tế bào chết.
$ sudo -i
# echo $SUDO_USER
gilles
sudo -i
cho bạn một cái vỏ. Trên thực tế:sudo: you may not specify both the `-i' and `-s' options
Chạy lệnh whoami
nó sẽ trả về cho bạn một cái gì đó như thế:
gladimdim tty2 2011-01-27 23:54 (:0)
In đậm "joyimdim" là người dùng ban đầu được đăng nhập vào hệ thống.
who am i
không phải là một lệnh trên hệ thống của tôi và whoami
trả về "root"
whoami
trả về 'root', who am i
trả về tên người dùng của tôi
who
lệnh.
whoami
thay vì who am i
. who am i
không phải là một giải pháp đáng tin cậy vì nó không được cài đặt trên nhiều hệ thống theo mặc định, vì vậy các kịch bản shell có thể bị lỗi. Tôi không phiền nếu bạn không chấp nhận chỉnh sửa mặc dù. Đó là vấn đề 'sở thích cá nhân'.
Tôi nghĩ rằng anh ấy có nghĩa là:
$ who -am i
mà có thể (tùy thuộc) được phân tích cú pháp giống như:
$ who -am
"-A" liệt kê tất cả người dùng hiện đang đăng nhập và các bộ lọc "-m" chỉ dành cho những người dùng đó (thực sự phải là một) người có liên quan đến STDIN của ai, nghĩa là nó sẽ cho bạn biết ai đã đăng nhập tại thiết bị đầu cuối của bạn. Đó là những gì bạn đang tìm kiếm.
$ who -am
sudo -si
cung cấp cho bạn một vỏ vớiSUDO_USER
bộ.