Làm thế nào để tôi tìm ra nếu tôi là sudoer?


32

Làm thế nào để hệ thống Linux hoạt động khi tôi không sudoer? Đây là những gì xảy ra nếu tôi cố gắng sử dụng sudo:

server:/tmp>$ sudo cal
[sudo] password for user:
Sorry, try again.

Có thể là tôi không biết mật khẩu của mình hay điều này có nghĩa là tôi không sudoer? (Trên một hệ thống máy khác được in ra rằng tôi không có sudoer và sự cố sẽ được báo cáo)


Câu trả lời tốt hơn bất kỳ câu hỏi nào dưới đây: superuser.com/questions/553932/ từ
barnhillec

Câu trả lời:


40

Để biết liệu một người dùng cụ thể có quyền truy cập sudo hay không, chúng ta có thể sử dụng -l-Utùy chọn cùng nhau.

Ví dụ,

Nếu người dùng có quyền truy cập sudo, nó sẽ in mức truy cập sudo cho người dùng cụ thể đó.

   $ sudo -l -U pradeep
     User pradeep may run the following commands on this host:
     (ALL : ALL) ALL

Nếu người dùng không có quyền truy cập sudo, nó sẽ in rằng người dùng đó không được phép chạy sudo trên localhost.

   $ sudo -l -U pradeep.c
     User pradeep.c is not allowed to run sudo on localhost.

4
Điều này không làm việc cho tôi. Thay vì cung cấp cho tôi thông tin, nó hỏi tôi mật khẩu một lần nữa: server:/home/drasto>$ sudo -l -U drasto [sudo] password for drasto:Có bản phân phối Red Hat trên máy chủ đó nếu điều đó có ích
Rasto

9

Bạn có thể sử dụng -lcờ để liệt kê các đặc quyền của bạn.

-l[l] [command]
   If no command is specified, the -l (list) option will list the allowed (and forbidden)
   commands for the invoking user (or the user specified by the -U option) on the current
   host.  If a command is specified and is permitted by sudoers, the fully-qualified path
   to the command is displayed along with any command line arguments.  If command is
   specified but not allowed, sudo will exit with a status value of 1.  If the -l option
   is specified with an l argument (i.e. -ll), or if -l is specified multiple times, a
   longer list format is used.

Nếu bạn không ở trong tệp, bạn sẽ gặp lỗi "không có trong tệp sudoers" mà bạn đã thấy trên máy khác.


2
Điều này cũng không làm việc cho tôi. Nó chỉ hỏi tôi mật khẩu:server:/home/drasto>$ sudo -l [sudo] password for drasto:
Rasto

1
Nhập mật khẩu của bạn
Kevin

1
@Kevin @Michael Mật khẩu của tôi không hoạt động. Tôi chỉ biết về một mật khẩu cho máy chủ đó và đó là mật khẩu tôi sử dụng để đăng nhập vào máy chủ. Cái đó đơn giản là không hoạt động khi tôi hỏi mật khẩu sudo của tôi (tôi đã thử nó khoảng 100 lần, capslock, numlock, v.v.). Nhưng toàn bộ suy nghĩ không có ý nghĩa! Tôi muốn biết nếu tôi có đặc quyền sudo nhưng để tìm ra nó tôi cần đặc quyền sudo?! Để chạy sudo -ltôi cần mật khẩu sudo? Vì vậy, tôi phải root để biết nếu tôi root?!
Rasto

1
@drasto Như hóa đơn đã nói, sudođang tìm mật khẩu đăng nhập của bạn . Vì vậy, nếu bạn đã thử điều đó và nó không hoạt động, thì sudo bị cấu hình sai một cách khủng khiếp hoặc bạn đang ở trong một nhà tù nào đó mà nó không thể xem hoặc đọc các tệp thích hợp. Dù bằng cách nào, bạn không có quyền sudo.
Kevin

1
@Kevin Vậy thì có lẽ tôi đang ở trong nhà tù nào đó. Thật ra tôi nghĩ rằng tôi không nên có những quyền sudo trên máy đó. Vì vậy, tôi đã rất ngạc nhiên khi nó hỏi tôi mật khẩu sudo của tôi ngay từ đầu. Dù sao nó cũng giống như tôi đã viết: mật khẩu đăng nhập của tôi không hoạt động.
Rasto

-1

Bạn có thể kiểm tra xem bạn có thuộc nhóm sudo không, bằng cách sử dụng lệnh

groups

Trong shell-script bạn có thể muốn sử dụng:

if groups | grep "\<sudo\>" &> /dev/null; then
   echo yes
else
   echo no
fi

1
Nhóm này có thể là sudo, admin, wheel, hay cái gì khác hoàn toàn, và thậm chí cả với các thành viên trong một nhóm, một người dùng cá nhân có thể từ chối truy cập sudo qua quy tắc cụ thể (hoặc ngược lại).
muru

Điều này có quá nhiều tiêu cực sai cho mục đích của tôi (xác minh cứng). Câu trả lời của Kevin dứt khoát hơn.
StockB
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.