Я хочу отредактировать свой файл sudoers, чтобы у пользователей были разные привилегии в зависимости от того, откуда они входят в систему. Я хочу иметь 3 разных места: внешняя сеть (Интернет), внутренняя (локальная сеть) и консоль (пользователь сидит перед компьютером). определение внешнего и внутреннего будет примерно таким:
Host_Alias PRIVNET = 10.6.66.0/25, 10.6.67.128/28
Но как мне определить консоль?
Я не хочу, чтобы пользователь мог вносить изменения в брандмауэр или sudoers, например, если его нет на месте, если что-то пойдет не так или, возможно, даже если его учетная запись будет взломана.
Я просто хочу убедиться, что пользователь находится рядом, когда вносит критические изменения.
Определение хоста sudoers (и, следовательно, Host_Alias) предназначено для определения, к каким хостам применяется эта запись файла sudoers. Другими словами, он определяет, какие права есть у пользователей. на этот хозяин, а не из какие хосты имеют эти права. (IIRC)
Итак, короче говоря, то, что вы хотите сделать, нельзя сделать с помощью записи sudoers.
Если вы можете это сделать, я бы подумал, что это будет где-то с PAM (подключаемые модули аутентификации). Или, может быть, директива requiretty файла suoders (man sudoers
).
Однако я думаю, что вы можете упомянуть свою цель. Мне это кажется неправильным с точки зрения безопасности. Я думаю, было бы разумнее иметь разные учетные записи с разными уровнями доступа, а затем разрешать этим учетным записям входить только с определенного IP-адреса. Тогда у вас есть два уровня безопасности макросов, аутентификация по паролю и на основе IP. Первичный уровень - это учетная запись - я думаю, что учетная запись должна иметь возможность делать одни и те же вещи независимо от того, откуда они вошли в систему.
Использование файла sudoers для ограничения команд кажется мне немного сложным, поэтому я бы использовал его только как дополнительный уровень безопасности к тому, что я упомянул выше.
Итак, в конце концов, моя рекомендация: