Ubuntu Ограничить пользователя sudo только сбросом пароля [дубликат]

Я хочу, чтобы один из моих пользователей sudo мог только сбрасывать пароль пользователя. Я не хочу, чтобы у них были другие административные привилегии, кроме этих.

Я знаю, как заблокировать определенный доступ, но как заблокировать все, кроме passwd .

1
задан 7 March 2019 в 09:03

1 ответ

В первую очередь, если Вы даже рассматриваете административные привилегии ограничения какого-либо пользователя, необходимо сначала сделать sudo gpasswd -d [username] sudo как можно скорее, потому что у них есть полный доступ к системе, пока не удалено из sudo.

Теперь, существует способ позволить этот тип задачи, но это все еще очень опасно и проблематично и может привести к катастрофическим ситуациям.

  1. Очевидно, Вы не можете позволить этому пользователю иметь неограниченный доступ к passwd потому что затем не будет ничего останавливающего его от passwd root .

  2. Однако Вы все еще хотите предоставить ему доступ для изменения паролей пользователей, не принадлежащих административной группе. Это - стратегия, о которой я могу думать:

Вам назвали продвинутого пользователя fakeboss это будет изменять пароли для пользователей. Вы делаете его специальной папкой, позволяет, называют его /usr/local/fakeboss/ то единственное его группа и sudo может получить доступ.

Корень создает названного рядового пользователя user1, и сценарий, который будет читать и выполнять разрешение, только названное user1pw.sh с:

chmod 755 user1pw.sh и вставляет его /usr/local/fakeboss/

в корневых записях сценария, (1$ является аргументом нового пароля, передал, и я проверил его быстро, но большая часть передачи по каналу других команд или привела к отклоненному разрешению или измененный user1 пароль к переданной по каналу строке, но тем не менее я должен буду проверить эту часть дважды),

#!/bin/bash
filtered=echo $1 | tr -d '[:cntrl:]'
echo "user1:$filtered" | chpasswd
echo "You just reset password for user1"

затем в /etc/sudoers корень добавляет

fakeboss ALL = NOPASSWD: /usr/local/fakeboss/user1pw.sh а также /usr/local/fakeboss/ к secure_path строке в/etc/sudoers

Вы завершаете его псевдонимом для fakeboss alias user1pw ='sudo /usr/local/fakeboss/user1pw.sh' и они теперь могут измениться user1 пароль к новому, с которым они отправляют как спор, позволяет, скажите:

user1pw IamYourBoss!

который установит user1 пароль на IamYourBoss!

и эта тактика может быть реализована для всех пользователей, выбранных корнем, и эти пользователи смогут разблокировать свои пароли fakeboss. Что еще более важно, fakeboss не имеет никакого доступа к сценариям сброса пароля, поскольку они являются незаписываемыми, и имеет нет passwd полномочия, ни любой sudo полномочия вне этих сценариев сброса пароля. Одной последней вещью, которую я добавил бы, является, конечно, некоторый серьезный механизм входа также, возможно, системное сообщение, отправленное в root утверждение этого user1 имел их сброс пароля в этом и на этот раз для безопасности и целостности.

Я записал это быстро и, возможно, пропустил деталь или два, но это - конечно, путь, более безопасный, чем разрешение pseudo-sudo пользовательского неограниченного доступа к passwd.

Править: Добавленная входная фильтрация,

0
ответ дан 7 December 2019 в 21:07

Другие вопросы по тегам:

Похожие вопросы: