Чи є спосіб дозволити користувачеві виконувати команди лише протягом 2 днів


13

Як дати дозвіл команди sudo на певний час? Чи є якийсь спосіб дати права виконувати певну команду протягом 2 днів лише у файлі sudoers.?

Відповіді:


18

Файл sudoers не підтримує обмеження за часом, але існує простий метод. Створіть файл із внесеними змінами в /etc/sudoers.d/sudo visudo -f /etc/sudoers.d/yourfile):

Додайте до файлу (приклад file.sh:) наступне

mv /etc/sudoers.d/yourfile /etc/sudoers.d/.yourfile

І це відключить ваші зміни:

 sudo at -f file.sh 2pm + 2 days

Приклад:

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

У цьому випадку він перемістить файл о 14:00 через 2 дні після видачі команди. at Керівництво має кілька варіантів (ви можете використовувати час, дні, тижні, місяці, роки, ключові слова , як наступний або додати / відняти periodes). Проведіть кілька тестів з можливістю переконатися, що ви це розумієте (Щось врахувати: це важливо, якщо ви починаєте atдо або після 14:00 у день самого).

atтакож виживає перезавантаження, тому це хороший інструмент для використання в подібних речах. І ви можете переключити доступ ...

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

і змусити цього користувача зірватися (wtf зараз я можу це зробити).

README у /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.

Якщо я прочитав це правильно, він не виконає жодного файлу з "". в будь-якому місці імені. Отже, 1-ю mvкоманду я поставив "." попереду, роблячи це також непомітним. Якщо правильно припущено, ви можете розмістити "." де завгодно. Обережно з пунктом "~", що він використовується як "резервне копіювання" редакторами, такими як gEdit.


atне встановлено за замовчуванням. Щоб встановити

sudo apt-get install at

Дякую, я вже думав про це, але ситуація полягає в тому, що кілька користувачів використовують файл за власним призначенням, тому неможливо створювати резервні копії та відновлювати файл sudoers кожного разу, коли bcoz інші користувачі також змінюють той самий файл sudoers, щоб коли я відновив старий файл, усі зміни, внесені іншими користувачами, вже не будуть ...
Аббас Капасі

2
Як щодо цього сер? О, і я можу запропонувати вашим безліччю користувачів також використовувати sudoers.d зі своїм власним іменем файлу. Здається, набагато краще, ніж редагування судорів.
Rinzwind

@AbbasKapasi створити новий файл, /etc/sudoers.dякий не буде використовуватися іншими користувачами.
муру

Я думаю, що команда, яка використовується всією відповіддю, повинна була бути mv, ні cp.
Cthulhu

3
де ти бачиш cp? свистить невинно
Рінцвінд
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.