diff options
| author | Joey Hess <joey@kitenet.net> | 2014-03-30 23:37:54 -0400 |
|---|---|---|
| committer | Joey Hess <joey@kitenet.net> | 2014-03-30 23:37:54 -0400 |
| commit | 380c1b0fd6c25dec3c924b82f1d721aa91a001da (patch) | |
| tree | 7d5b73309b73f13ac2be3f911318fe6a126264ff /Property/Sudo.hs | |
| parent | 02a7bf5f0e2de1d0dea71781ed0c1ae3a50e6425 (diff) | |
prepare for hackage
Diffstat (limited to 'Property/Sudo.hs')
| -rw-r--r-- | Property/Sudo.hs | 34 |
1 files changed, 0 insertions, 34 deletions
diff --git a/Property/Sudo.hs b/Property/Sudo.hs deleted file mode 100644 index f341a3eb..00000000 --- a/Property/Sudo.hs +++ /dev/null @@ -1,34 +0,0 @@ -module Property.Sudo where - -import Data.List - -import Common -import Property.File -import qualified Property.Apt as Apt -import Property.User - -{- Allows a user to sudo. If the user has a password, sudo is configured - - to require it. If not, NOPASSWORD is enabled for the user. - - - - TOOD: Full sudoers file format parse.. - -} -enabledFor :: UserName -> Property -enabledFor user = Property desc go `requires` Apt.installed ["sudo"] - where - go = do - locked <- isLockedPassword user - ensureProperty $ - fileProperty desc - (modify locked . filter (wanted locked)) - "/etc/sudoers" - desc = user ++ " is sudoer" - sudobaseline = user ++ " ALL=(ALL:ALL)" - sudoline True = sudobaseline ++ " NOPASSWD:ALL" - sudoline False = sudobaseline ++ " ALL" - wanted locked l - | not (sudobaseline `isPrefixOf` l) = True - | "NOPASSWD" `isInfixOf` l = locked - | otherwise = True - modify locked ls - | sudoline locked `elem` ls = ls - | otherwise = ls ++ [sudoline locked] |
