Điểm:0

luôn hỏi mật khẩu sudo khi khởi động lại/tắt hệ thống

lá cờ es

Cho nên,

Tôi nhận thấy rằng trên manjaro, nếu chỉ có một người dùng, hãy gõ khởi động lại không có sudo, sẽ không thành công và yêu cầu mật khẩu sudo, trong khi trên máy chủ ubuntu, gõ cái này không yêu cầu mật khẩu sudo và khởi động lại hệ thống thành công. Câu hỏi của tôi là làm thế nào tôi có thể làm cho nó để khi tôi gõ khởi động lại/tắt/tạm dừng, Ubuntu luôn hỏi mật khẩu sudo ngay cả khi chỉ có một người dùng hiện đang đăng nhập? Điều này có liên quan đến polkit không? Nếu vậy, làm thế nào tôi có thể thay đổi điều này?

Lý do tôi hỏi điều này là vì tôi muốn chắc chắn rằng tất cả những người có quyền truy cập vật lý vào máy chủ của tôi sẽ không thể khởi động lại (tất nhiên trừ khi rút cáp nguồn, đây là một thứ khác lol)

Cảm ơn bạn

Điểm:2
lá cờ in

Một trong những cách mà tôi đã làm điều này là bằng cách che giấu hệ thống mục tiêu, ngăn một số hành động nhất định được thực hiện, bất kể ai nhập lệnh. Ví dụ: để ngăn hệ thống bị tắt, bạn có thể thực hiện việc này:

Sudo systemctl mask poweroff.target

Bây giờ bất kỳ nỗ lực nào để tắt hệ thống thông qua sudo tắt máy hoặc sudo systemctl tắt máy sẽ âm thầm thất bại. Điều tương tự cũng có thể được thực hiện với việc tạm dừng và khởi động lại:

Sudo systemctl mask runlevel0.target
sudo systemctl mặt nạ dừng.đích
Sudo systemctl mask runlevel6.target
Sudo systemctl mask reboot.target

Ghi chú: runlevel6 tương đương với khởi động lại, và runlevel0 tương đương với tắttạm dừng lại.

Để hoàn tác điều này, các lệnh này có thể được chạy lại, nhưng với vạch mặt:

Sudo systemctl vạch mặt runlevel0.target
sudo systemctl unmask shutdown.target
sudo systemctl unmask pause.target
Sudo systemctl vạch mặt runlevel6.target
Sudo systemctl vạch mặt reboot.target

Với suy nghĩ này, bây giờ bạn có thể viết một tập lệnh có thể thực thi được chỉ có cho những người có sudo quyền:

#!/bin/bash

## Xác định thao tác sẽ chạy (mặt nạ | vạch mặt)
op=mặt nạ

nếu [[ $1 = vạch mặt ]]
sau đó
        op=vạch mặt
fi

## Đặt các mục tiêu mà chúng tôi muốn che dấu
khai báo -a arr=("runlevel0" "runlevel6" "shutdown" "reboot" "halt")

## Chạy các lệnh
cho tôi trong "${arr[@]}"
làm
        cmd=$( Sudo systemctl $op $i.target )
        tiếng vang "$i :: $op"
xong

CẢNH BÁO: Mã này sẽ hoạt động, nhưng nó khá thô. Hãy chắc chắn kiểm tra nó bằng máy ảo hoặc một nơi nào đó "an toàn" trước khi chạy nó trên hộp sản xuất.

Bây giờ bạn có thể chạy tập lệnh này để che giấu các mục tiêu sau khi khởi động và tắt/khởi động lại như thế này:

sudo ~./setTargetMask.sh vạch mặt
Sudo tắt máy ngay bây giờ

Ghi chú: Hãy gọi kịch bản bất cứ điều gì bạn muốn.

Liwinux avatar
lá cờ es
Đó chắc chắn là một cách mà tôi không thể tự mình nghĩ ra, cảm ơn bạn vì điều này, nó dễ dàng hơn rất nhiều! Một điều tôi đã phát hiện ra là với một hệ thống trần (có nghĩa là không có môi trường máy tính để bàn), cách duy nhất để thực hiện bảo trì là sử dụng Sudo, trong khi một hệ thống đã cài đặt xfce chẳng hạn, sẽ không yêu cầu bất kỳ lệnh sudo nào.Tôi nghĩ đó là vì xfce (hoặc bất kỳ DE nào) phải cài đặt gói bộ chính sách để nút khởi động lại/tắt máy hoạt động mà không có đặc quyền hệ thống nhưng điều này áp dụng cho toàn bộ hệ thống. Sửa lỗi cho tôi nếu tôi sai!

Đă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.