Làm thế nào để cấp quyền sudo trong một thời gian cụ thể? Có cách nào để trao quyền thực hiện một lệnh cụ thể trong 2 ngày chỉ trong tệp sudoers không?
Làm thế nào để cấp quyền sudo trong một thời gian cụ thể? Có cách nào để trao quyền thực hiện một lệnh cụ thể trong 2 ngày chỉ trong tệp sudoers không?
Câu trả lời:
Tệp sudoers không hỗ trợ hạn chế dựa trên thời gian nhưng có một phương pháp dễ dàng. Tạo một tệp với các thay đổi của bạn trong /etc/sudoers.d/
(với sudo visudo -f /etc/sudoers.d/yourfile
):
Thêm vào một tệp (ví dụ file.sh
:) sau đây
mv /etc/sudoers.d/yourfile /etc/sudoers.d/.yourfile
Và điều này sẽ vô hiệu hóa các thay đổi của bạn:
sudo at -f file.sh 2pm + 2 days
Thí dụ:
at -f file.sh 2pm + 2 days
warning: commands will be executed using /bin/sh
job 4 at Thu Oct 15 14:00:00 2015
Trong trường hợp này, nó sẽ di chuyển tệp vào lúc 2 giờ chiều 2 ngày sau khi bạn phát lệnh. Các at
nhãn hiệu có một số tùy chọn (bạn có thể sử dụng một thời gian, ngày, tuần, tháng, năm, các từ khóa như sau hoặc thêm / periodes trừ). Có một số thử nghiệm với tùy chọn để đảm bảo bạn hiểu nó (Một điều cần xem xét: nó quan trọng nếu bạn bắt đầu at
trước hoặc sau 2 giờ chiều trong ngày.)
at
cũng sống sót khi khởi động lại vì vậy là một công cụ tốt để sử dụng cho những thứ này. Và bạn có thể chuyển đổi quyền truy cập ...
sudo mv /etc/sudoers.d/.yourfile /etc/sudoers.d/yourfile | at 2pm + 2 days
sudo mv /etc/sudoers.d/yourfile /etc/sudoers.d/.yourfile | at 2pm + 4 days
sudo mv /etc/sudoers.d/.yourfile /etc/sudoers.d/yourfile | at 2pm + 6 days
sudo mv /etc/sudoers.d/yourfile /etc/sudoers.d/.yourfile | at 2pm + 8 days
và làm cho người dùng đó thất bại (wtf bây giờ tôi có thể làm điều này).
README trong /etc/sudoers/
:
# As of Debian version 1.7.2p1-1, the default /etc/sudoers file created on
# installation of the package now includes the directive:
#
# #includedir /etc/sudoers.d
#
# This will cause sudo to read and parse any files in the /etc/sudoers.d
# directory that do not end in '~' or contain a '.' character.
#
# Note that there must be at least one file in the sudoers.d directory (this
# one will do), and all files in this directory should be mode 0440.
#
# Note also, that because sudoers contents can vary widely, no attempt is
# made to add this directive to existing sudoers files on upgrade. Feel free
# to add the above directive to the end of your /etc/sudoers file to enable
# this functionality for existing installations if you wish!
#
# Finally, please note that using the visudo command is the recommended way
# to update sudoers content, since it protects against many failure modes.
# See the man page for visudo for more information.
Nếu tôi đọc chính xác, nó sẽ không thực thi bất kỳ tệp nào có dấu "." bất cứ nơi nào trong tên. Vì vậy, mv
lệnh 1 tôi đã đặt "." ở phía trước làm cho nó cũng vô hình. Nếu giả sử chính xác, bạn có thể đặt dấu "." bất cứ nơi nào Cẩn thận với "~", cái đó được sử dụng làm tính năng "sao lưu" bởi các biên tập viên như gEdit.
at
không được cài đặt theo mặc định. Để cài đặt
sudo apt-get install at
/etc/sudoers.d
mà những người dùng khác của bạn sẽ không sử dụng.
mv
, không phải cp
.