Vấn đề thực thi lệnh như một người dùng khác với sudo -u


12

Khi tôi đang cố thực thi lsvới tư cách là người dùng abcbằng lệnh sau, tôi gặp lỗi:

xyz@host:~/temp$ sudo -u abc ls
[sudo] password for xyz:
Sorry, user xyz is not allowed to execute '/bin/ls' as abc on host.

Nhưng nếu tôi làm su abcvà sau đó thực thi thì lstôi không có vấn đề gì

Câu trả lời:


17

Bạn nên cấu hình chính sách bảo mật sudo để cho phép người dùng xyz thực thi một cái gì đó như người dùng abc. Đọc 'man sudoers' và sử dụng lệnh visudo để cấu hình / etc / sudoers.

Ví dụ: hãy cho phép người dùng xyz exec / usr / bin / whoami làm người dùng abc mà không cần mật khẩu. Thêm chuỗi này vào / etc / sudoers (với visudo, không chỉnh sửa trực tiếp / etc / sudoers):

xyz ALL = (abc) NOPASSWD: /usr/bin/whoami

Và bây giờ hãy kiểm tra nó:

xyz@host:~$ sudo -u abc /usr/bin/whoami
abc

bạn có phiền giải thích tại sao nên tránh chỉnh sửa / etc / sudoers trực tiếp không?
Adi Prasetyo

Bởi vì khi bạn chỉnh sửa / etc / sudoers trực tiếp, bạn có thể mắc lỗi, phá vỡ tệp sudoers và (trong trường hợp xấu nhất) tự chặn mình bằng cách sử dụng sudo. 'Visudo' không chỉ là một trình soạn thảo, nó còn kiểm tra cú pháp của tệp sudoers và giúp tránh các lỗi, lỗi chính tả, v.v.
svq

4

Điều này là do sudokhác với su. Khi bạn su abc, bạn trở thành người dùng abckhi có liên quan đến hệ thống. Sau đó bạn có thể làm bất cứ điều gì abccó thể làm.

Mặt khác, sudođược sử dụng để cho phép người dùng khác thực thi một số lệnh bằng proxy. Nói cách khác, sudocấu hình của bạn cho phép bạn thực hiện một số lệnh thay mặt abc. Nếu lệnh bạn đang cố thực thi không phải là một trong số chúng, bạn sẽ gặp lỗi bạn đã báo cáo.


0

Trong trường hợp mọi thứ đều ổn, nhưng bạn vẫn nhận được Sorry user xxx cannot execute...tin nhắn và nó cứ hỏi bạn sudomật khẩu mọi lúc.

Bạn có thể làm được việc này:

  1. Trong /etc/sudoersdòng xóa với cài đặt người dùng của bạn
  2. Lưu tập tin
  3. Mở tệp, nhập (KHÔNG SAO) tùy chọn của bạn cho người dùng đó
  4. Lưu tập tin
  5. Thử nó.

Điều này làm việc cho tôi. Hóa ra kết thúc trong dòng đó là xấu vì tôi đã sao chép các lệnh cần thực thi từ email.


Chắc chắn nếu bạn đã từng visudochỉnh sửa nó ở nơi đầu tiên, bạn sẽ được thông báo điều đó?
Auspex

Không, bạn sẽ không.
borbar

À, tốt. Tôi thực sự đã nghĩ rằng ... Trong mọi trường hợp, tôi nghĩ rằng bạn có nhiều khả năng bị lỗi nhập bằng tay hơn là từ sao chép và dán. Chỉ cần lưu ý rằng kết thúc dòng khác nhau.
Auspex
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.