http://pig.made-it.com/ldap-sudoers.html

https://www.lisenet.com/2015/convert-openldap-schema-to-ldif/

http://qiita.com/T_Tsan/items/5ea2563450ed2d2ee20f

http://edo.blog.jp/archives/1538669.html

服务端

  1. yum -y install sudo

sudo-ldap方案

  1. cp /usr/share/doc/sudo-1.8.6p7/schema.OpenLDAP /etc/openldap/schema/sudo.schema

生成sudo.ldif

  1. echo 'include /etc/openldap/schema/sudo.schema' > /tmp/sudo.conf
  2. mkdir /tmp/sudo
  3. slaptest -f /tmp/sudo.conf -F /tmp/sudo
  1. # vim /tmp/sudo/cn=config/cn=schema/cn={0}sudo.ldif
  2. 替换
  3. dn: cn={0}sudo
  4. objectClass: olcSchemaConfig
  5. cn: {0}sudo

  6. dn: cn=sudo,cn=schema,cn=config
  7. objectClass: olcSchemaConfig
  8. cn: sudo
  9. 删除
  10. structuralObjectClass: olcSchemaConfig
  11. entryUUID: bd975dc0-1654-1036-9c97-c37d6a498779
  12. creatorsName: cn=config
  13. createTimestamp: 20160924034303Z
  14. entryCSN: 20160924034303.121340Z#000000#000#000000
  15. modifiersName: cn=config
  16. modifyTimestamp: 20160924034303Z
  1. cp /tmp/sudo/cn=config/cn=schema/cn={0}sudo.ldif /etc/openldap/schema/sudo.ldif

sudo功能生效

  1. vim /etc/openldap/slapd.conf
  2. 添加
  3. include /etc/openldap/schema/sudo.schema
  1. rm -rf /etc/openldap/slapd.d/*
  2. slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
  3. chown -R ldap:ldap /etc/openldap/slapd.d
  4. systemctl restart slapd

sudoer权限

  1. sudoer.ldif
  2. dn: ou=sudoer,dc=suntv,dc=tv
  3. ou: sudoer
  4. objectClass: top
  5. objectClass: organizationalUnit
  6. dn: cn=default,ou=sudoer,dc=suntv,dc=tv
  7. objectClass: sudoRole
  8. cn: defaults
  9. sudoOption: requiretty
  10. sudoOption: !visiblepw
  11. sudoOption: always_set_home
  12. sudoOption: env_reset
  13. sudoOption: env_keep = "COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS"
  14. sudoOption: env_keep += "MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE"
  15. sudoOption: env_keep += "LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES"
  16. sudoOption: env_keep += "LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE"
  17. sudoOption: env_keep += "LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY"
  18. sudoOption: secure_path = /sbin:/bin:/usr/sbin:/usr/bin
  19. sudoOption: logfile = /var/log/sudo
  20. sudoOption: %g01, %g02 !requiretty
  21. dn: cn=%g01,ou=sudoer,dc=suntv,dc=tv
  22. objectClass: sudoRole
  23. cn: %g01
  24. sudoUser: %g01
  25. sudoHost: ALL
  26. sudoRunAsUser: ALL
  27. sudoOption: !authenticate
  28. sudoCommand: ALL
  29. sudoCommand: !/bin/su*
  30. sudoCommand: !/usr/bin/vim /etc/sudoers*
  31. sudoCommand: !/bin/vi /etc/sudoers*
  32. sudoCommand: !/usr/sbin/visudo
  33. sudoCommand: !/usr/sbin/adduser*
  34. sudoCommand: !/usr/sbin/useradd*
  35. sudoCommand: !/usr/sbin/userdel*
  36. sudoCommand: !/usr/sbin/groupadd*
  37. sudoCommand: !/usr/sbin/groupdel*
  38. sudoCommand: !/bin/sh
  39. sudoCommand: !/bin/bash
  40. sudoCommand: !/usr/bin/login
  41. # g01组用户禁用su,禁用变更sudo权限,禁用用户组的操作
  42. dn: cn=%g02,ou=sudoer,dc=suntv,dc=tv
  43. objectClass: sudoRole
  44. cn: %g02
  45. sudoUser: %g02
  46. sudoHost: ALL
  47. sudoRunAsUser: ALL
  48. sudoOption: !authenticate
  49. sudoCommand: ALL
  50. sudoCommand: !/bin/su*
  51. # g02组用户禁用'sudo su',
  52. #
  1. ldapdelete -x -W -H ldaps:/// -D cn=manager,dc=suntv,dc=tv ou=sudoer,dc=suntv,dc=tv -r
  2. ldapadd -H ldaps:/// -W -x -D cn=manager,dc=suntv,dc=tv -f sudoer.ldif

客户端

/etc/sssd/sssd.conf

  1. [sssd]
  2. services = nss, pam, sudo, ssh # add
  3. config_file_version = 2
  4. domains = ldap
  5. [domain/ldap]
  6. debug_level = 9
  7. cache_credentials = True
  8. enumerate = false
  9. id_provider = ldap
  10. auth_provider = ldap
  11. chpass_provider = ldap
  12. sudo_provider = # add
  13. ldap_uri = ldaps://master.local,ldaps://slave.local
  14. ldap_search_base = dc=suntv,dc=tv
  15. ldap_sudo_search_base = ou=Sudoer,dc=suntv,dc=tv # add
  16. ldap_tls_cacertdir = /etc/openldap/cacerts
  17. ldap_tls_cacert = /etc/openldap/cacerts/ca.crt
  18. ldap_tls_reqcert = never
  19. ldap_id_use_start_tls = false
  20. entry_cache_timeout = 600
  21. ldap_network_timeout = 2
  22. [nss]
  23. homedir_substring = /home
  24. entry_negative_timeout = 20
  25. entry_cache_nowait_percentage = 50
  26. filter_users = root
  27. filter_groups = root
  28. [pam]
  29. [sudo]
  30. [autofs]
  31. [ssh]
  32. [pac]

/etc/nsswitch.conf

  1. sudoers: file sss

禁用su

  1. vim /etc/pam.d/su
  2. 去除以下行的注释
  3. auth required pam_wheel.so use_uid

测试

u01

  1. id
  2. uid=1001(u01) gid=2001(g01) groups=2001(g01)
  1. sudo -l
  2. Matching Defaults entries for u01 on this host:
  3. requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
  4. env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
  5. _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
  6. User u01 may run the following commands on this host:
  7. (ALL) NOPASSWD: ALL, !/bin/su*, !/usr/bin/vim /etc/sudoers*, !/bin/vi /etc/sudoers*, !/usr/sbin/visudo, !/usr/sbin/adduser*, !/usr/sbin/useradd*, !/usr/sbin/userdel*, !/usr/sbin/groupadd*,
  8. !/usr/sbin/groupdel*, !/bin/sh, !/bin/bash, !/usr/bin/login

u04

  1. id
  2. uid=1004(u04) gid=2002(g02) groups=2002(g02)
  1. sudo -l
  2. Matching Defaults entries for u04 on this host:
  3. requiretty, !visiblepw, always_set_home, env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR LS_COLORS", env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
  4. env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES", env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE", env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS
  5. _XKB_CHARSET XAUTHORITY", secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
  6. User u04 may run the following commands on this host:
  7. (ALL) NOPASSWD: ALL, !/bin/su*

openldap权限sudo的更多相关文章

  1. OpenLDAP权限配置

    安装好了openldap之后,就是对它进行配置了,其中一项就是设置访问控制,限制普通用户只能修改/访问他们能修改/访问的项.这就是ACL需要做的事情. 设置方法 1.可以将 include行放在/et ...

  2. Debian普通用户获取root权限|sudo的安装与配置

    Debian系统的普通用户需要安装软件时,往往会收到“Permission denied”的提示,这时候需要root权限.那么如何在不登陆超级管理员账户的前提下拥有root权限呢?对于大多数Linux ...

  3. 为linux普通用户添加超级用户权限sudo

    问题:假设用户名为:ali如果用户名没有超级用户权限,当输入 sudo + 命令 时, 系统提示: ali is not in the sudoers file.  This incident wil ...

  4. Linux普通用户如何获取root权限 sudo -i

    从下图中可以知道,xiaolai这个用户连接到服务器后它没有权限,更新代码都更新不了 那么我们作为一个普通用户要获取管理员权限,怎么办呢? 输入 sudo -i 然后再输入普通用户的这个密码 获取成功 ...

  5. linux普通用户权限设置为超级用户权限方法、sudo不用登陆密码

    以用户zato为例 普通用户权限设置为超级用户权限 进入有超级用户权限的账号 添加文件可写(w)权限 sudo chmod u+x /etc/sudoers 编辑/etc/sudoers文件 添加语句 ...

  6. Linux学习之文件属性chattr权限与sudo权限(十二)

    Linux学习之文件属性chattr权限与sudo权限 文件属性chattr Linux文件的隐藏属性在保护系统文件的安全性上非常重要,是防止误操作的,对root用户也同样有效.chattr命令只能在 ...

  7. 为什么sudo执行命令还是会提示权限不够

    安装openstack 的过程中需要执行以下命令,虽然使用了sudo,但是依然提示权限不够 $ sudo echo "deb http://ubuntu-cloud.archive.cano ...

  8. sudo控制用户对系统命令的使用权限

    sudo控制用户对系统命令的使用权限 sudo相关概念 普通用户涉及到超级权限的运用,管理员如果想让该普通用户通过su来切换到root获得超级权限,就必须把root权限密码告诉用户.但是如果普通用户有 ...

  9. 05-sudo权限配置

    阅读目录 基础环境准备 服务端配置 客户端配置 客户端验证 附:sudo常见属性介绍 常见错误分析 1. 基础环境准备 本文接文章openldap服务端安装配置 2. 服务端配置 导入sudo sch ...

随机推荐

  1. Python的平凡之路(8)

    (本文是对平凡之路(7)的补充等) 一.动态导入模块 import importlib __import__('import_lib.metaclass') #这是解释器自己内部用的 #importl ...

  2. 关于jsonp跨域过程中 cookie中的值一直为null的原因

    今天技术交流群里的小伙伴一直被一个问题而困扰,就是写入cookie里面的值 再次进行请求时 cookie 就为空了 他被问题纠结了一天  我也好奇了一天 终于在快下班的时候 他解决掉了 下面我来收一个 ...

  3. WCF 发布使用

    WCF发布,由于使用的是 net.tcp协议因此 需要在发布的WCF站点的管理网站-高级设置,连接协议中添加net.tcp的绑定 然后还需要在网站绑定编辑中添加net.tcp的绑定.否则访问的时候会出 ...

  4. php大力力 [037节] Iconfont-阿里巴巴矢量图标库

    Iconfont-阿里巴巴矢量图标库 从此不求人:自主研发一套PHP前端开发框架 Iconfont-中国第一个最大且功能最全的矢量图标库,提供矢量图标下载.在线存储.格式转换等功能.阿里巴巴体验团队倾 ...

  5. brute-force search

    #include <pcl/search/brute_force.h> #include <pcl/common/common.h> #include <iostream ...

  6. Python培训12期-day2作业-购物车

    #!/usr/bin/env python import sys import os import getpass 商品={ '图书': { "<Puppet实战>": ...

  7. RBL开发笔记一

    从这个系列开始  陆续记录整个RBL开发的过程   废话不多说   直入主题 10:54:53   2014-08-25 今天开发任务: RBL.h  的框架搭建出来   包括RBLServer RB ...

  8. sqlite3使用(一)

    最近工作接触到sqlite3了,于是用博客记录下,当然只是浅用哈! 参考资料:http://www.runoob.com/sqlite/sqlite-tutorial.html 概念: SQLite ...

  9. netfilter-IPv4实现框架分析(一)

    基于Linux-2.6.30版本,具体实现net\ipv4\netfilter目录下,入口文件为net\ipv4\netfilter\iptable_filter.c,入口/出口函数为模块的init函 ...

  10. Linux命令--系统中常用的查看命令

    摘自 http://my.oschina.net/syyzhan/blog/277536 1.查看日志文件 使用命令:cat 或者 tail -f(默认查看文件尾部10行) 相关日志文件: /var/ ...