Điểm:0

Trợ giúp với 'sudo --askpass' trên Máy chủ Ubuntu/Apache2

lá cờ no

tôi cần giúp đỡ với một sudo -A lệnh trong tập lệnh shell. Tùy chọn -A dành cho AskPass. Theo trang người đàn ông sudo:

Thông thường, nếu sudo yêu cầu mật khẩu, nó sẽ đọc mật khẩu từ người dùng phần cuối. Nếu tùy chọn -A (askpass) được chỉ định, một (có thể đồ họa) chương trình trợ giúp được thực thi để đọc mật khẩu của người dùng và xuất mật khẩu ra đầu ra tiêu chuẩn. Nếu SUDO_ASKPASS biến môi trường được đặt, nó chỉ định đường dẫn đến trình trợ giúp chương trình.

Tôi quan tâm đến AskPass vì tôi đang chạy apache2 (v 2.4.41) trên máy chủ Ubuntu 16.04. Trang web Apache cần thực thi tập lệnh shell. Trang web thực thi tập lệnh với tư cách là người dùng dữ liệu www. Nhưng tập lệnh cần chạy một chương trình khác chỉ có thể chạy với tư cách người dùng người dùng1. Vì vậy, tôi cần sudo --AskPass để người dùng đó dữ liệu www có thể chạy người dùng người dùng1mã của.

Thiết lập của tôi: Theo các ví dụ như đâyđây, tôi đã viết hai tập lệnh này trong /var/www/html/ danh mục:

user1@myUbuntu:/var/www/html$ ls -l
-rwxr-xr-x 1 www-data Người dùng thử 29 ngày 28 tháng 2 11:34 passwdScript.sh
-rwxrwxr-x 1 www-data TestUsers 2009 ngày 28 tháng 2 11:32 webpageScript.sh
user1@myUbuntu:/var/www/html$

(Tập đoàn người dùng thử nghiệm bao gồm người dùng dữ liệu wwwngười dùng1.) Một chút passwdScript.sh tập lệnh có nghĩa là gửi mật khẩu của user1 tới STD OUT:

user1@myUbuntu:/var/www/html$
user1@myUbuntu:/var/www/html$ thêm passwdScript.sh
#!/bin/sh
tiếng vang 'mật khẩu của tôi'
user1@myUbuntu:/var/www/html$
user1@myUbfox:/var/www/html$ ./passwdScript.sh
mật khẩu của tôi
user1@myUbuntu:/var/www/html$

(Vâng, tôi biết điều này rất không an toàn, nhưng tôi sẽ là người duy nhất sử dụng máy chủ này. Tôi chỉ lo lắng về chức năng.)

Được rồi: Bây giờ phần trên đã được thiết lập, đây là của tôi trangwebScript.sh kịch bản, có nghĩa là để gọi sudo --AskPass:

echo "Tập lệnh đang chạy."
xuất SUDO_ASKPASS="/var/www/html/passwdScript.sh"
tiếng vang "Kiểm tra :: $SUDO_ASKPASS"
cd /home/user1/path/to/other/thư mục
pwd
sudo -u user1 --askpass $SUDO_ASKPASS 'runUser1Script.exe'
echo "Chạy xong script."

Đây là đầu ra kém ấn tượng:

user1@myUbuntu:/var/www/html$
user1@myUbfox:/var/www/html$ sudo -u www-data ./webpageScript.sh
Tập lệnh đang chạy.
Kiểm tra :: /var/www/html/passwdScript.sh
/home/user1/path/to/other/thư mục
Xin lỗi, hãy thử lại.
Xin lỗi, hãy thử lại.
sudo: 3 lần nhập sai mật khẩu
Chạy script xong.
user1@myUbuntu:/var/www/html$
user1@myUbuntu:/var/www/html$

Vì vậy, rõ ràng là sudo --askpass lệnh không được chấp nhận người dùng1mật khẩu của. Tôi đã thử các biến thể của lệnh đó cả ngày. Có ai nhìn thấy những gì tôi đang làm sai?

waltinator avatar
lá cờ it
Ubuntu 16.04 đã qua Ngày hết hạn sử dụng và không còn được hỗ trợ trên AskUbfox nữa.
lá cờ hr
Tôi nghĩ vấn đề cơ bản là (ít nhất là trong cấu hình mặc định) `sudo` yêu cầu mật khẩu của người dùng *gọi* - không phải mật khẩu của người dùng *mục tiêu*
Pete avatar
lá cờ no
@steeldriver Vì vậy, khi tập lệnh của tôi chạy dưới dạng `www-data` và sau đó đến lệnh `sudo -u user1 --askpass $SUDO_ASKPASS 'runUser1Script.exe' `, AskPass sẽ thay thế mật khẩu của `www-data`, chứ không phải `user1 ``? Ồ. Bạn chỉ thổi tâm trí của tôi ...!
lá cờ hr
@Pete vâng, tôi tin như vậy - trừ khi bạn đã bật `targetpw` trong cấu hình sudo của mình. Xem `man sudoers`.
guiverc avatar
lá cờ cn
[Ubuntu 16.04 LTS đã hết thời hạn hỗ trợ *chuẩn*](https://fridge.ubuntu.com/2021/03/13/extended-security-maintenance-for-ubuntu-16-04-xenial-xerus -begins-april-30-2021/) do đó hiện không có chủ đề ở đây trừ khi câu hỏi của bạn dành riêng cho việc giúp bạn chuyển sang bản phát hành Ubuntu được hỗ trợ. Hỗ trợ Ubuntu 16.04 ESM có sẵn, nhưng không thuộc chủ đề ở đây, xem https://askubuntu.com/help/on-topic Xem thêm https://ubuntu.com/blog/ubuntu-16-04-lts-transitions- to-extend-an ninh-bảo trì-esm

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.