有效群组与初始群组:
  groups:有效与支持群组的观察

  newgrp:有效群组的切换,后面接群组名称

  在passwd文件中记录的GID就是默认的GID,就是初始群组

/etc/passwd文件结构
  

  1. zabbix:x::::/home/zabbix:/bin/bash

  第一段:账号名称
  第二段:密码:该密码数据保存在/etc/shadow中,这里显示x
  第三段:UID
  第四段:GID
  第五段:使用者信息说明栏
  第六段:家目录
  第七段:Shell

/etc/shadow文件结构
  

  1. root:$$EQ2hnCMP$sQtLTSYZSXCzHx9XHOsm61:::::::

  第一段:账号名称

  第二段:密码
  第三段:最近修改密码的日期
  第四段:密码不可被修改的天数
  第五段:密码需要重新变更的天数
  第六段:密码需要变更期限前的警告天数
  第七段:密码过期后的账号宽限时间
  第八段:密码失效日期
  第九段:保留

  authconfig --test |grep hashing
  password hashing algorithm is sha512 #当前的密码加密机制

/etc/group文件结构
  root:x:0:
  第一段:群组名称
  第二段:群组密码
  第三段:GID
  第四段:次群组支持的账号名称

/etc/gshadow
  root:::
  第一段:群组名称
  第二段:密码栏
  第三段:群组管理员的账号
  第四段:与加入该群组支持的所属账号

账号管理常用命令:

  1. useradd:添加账号
  2.   -u:UID
  3.   -g:GID
  4.   -G:群组名称,还可以加入的群组
  5.   -M:强制!不创建家目录
  6.   -m:强制!创建家目录
  7.   -c:/etc/passwd第五栏说明信息
  8.   -d:指定一个目录作为家目录
  9.   -r:创建一个系统账号,UID有限制
  10.   -s:指定shell,默认/bin/bash
  11.   -e:失效日期日
  12.   -f:0表示立即失效,-1表示永不失效
  13.  
  14.   -D:列出创建时的默认值信息
  15.  
  16. passwd:修改密码
  17.   --stdin: 可以通过管道数据作为密码输入
  18.   -l: 加锁,是密码失效
  19.   -u: 解锁
  20.   -S: 列出密码相关参数,
  21.   -n: 后面接天数, 多久不可修改密码天数
  22.   -x: 后面接天数, 多久内必须要修改密码
  23.   -w: 后面接天数, 密码过期前的警告天数
  24.   -i: 后面接日期, 密码失效日期
  25.  
  26.   echo "abcd123" | passwd --stdin wios
  27.  
  28. chage:显示更详细的密码参数信息
  29.   -l:列出该账号的详细参数信息
  30.   -d:
  31.   -E:
  32.   -I:
  33.   -m:
  34.   -M:
  35.   -W:
  36.  
  37. usermod:修改账号信息
  38.   -c:修改说明
  39.   -d:
  40.   -e:
  41.   -f:
  42.   -g:修改初始群组
  43.   -G:修改支持的群组
  44.   -a:与-G何用,可增加支持的群组,而不是设置
  45.   -l:修改账号名称,重命名
  46.   -s:
  47.   -u:接UID
  48.   -L:加锁
  49.   -U:解锁
  50.  
  51. userdel:删除账号
  52.   -r: 连同家目录一起删除
  53.  
  54. id:查询用户的相关UID/GID等信息
  55.  
  56. chsh:change shell 切换shell的意思
  57.   -l: 列出目前系统上可以用的shell
  58.   -s: 设置修改自己的shell
  59.  
  60. groupadd:添加群组
  61.   -g:GID,指定ID
  62.   -r:创建系统群组
  63.  
  64. groupmod:修改group群组的相关参数
  65.   -g: 修改既有的GID数字
  66.   -n: 修改既有的群组名称
  67.  
  68. groupmod -g -n mygroup group1
  1.   groupdel:删除群组
  2.  
  3.   gpasswd:群组管理员功能(不常用)
  4.   群组管理员密码,作为该群组的管理员,操作账号加入/移除组
  5.  
  6. su:使用者身份切换
  7.   为什么身份切换:
  8.   使用一般账号:系统平时操作的习惯
  9.   使用较低权限启动系统服务
  10.   软件本身限制
  11.  
  12.   -: 如果后面没有用户名,表示切换到root
  13.   -m: -m与-p一样,使用当前的环境设置,而不读取新使用者的配置文件
  14.   -c:仅执行一次命令
  15.  
  16.   su - -c "head -n 3 /etc/shadow" 输入root的密码,执行一次命令
  17.  
  18. sudo:
  19.   -b: 将后续的命令放到背景中自动执行,不与当前的shell产生影响
  20.   -u: 后面可以接想要切换的使用者,如果无此项,表示切换身份为root
  21.  
  22.   sudo默认仅可以切换为root,
  23.  
  24.   执行流程:
  25.   .当使用sudo时,在/etc/sudoers中搜索是否有执行权限
  26.   .具有执行权限后,让使用者输入自己的密码来确认
  27.   .密码成功,执行后面的命令
  28.   .如果身份相同,不需要输入密码
  29.  
  30.   设置sudo: visudo
  31.   root ALL=(ALL) ALL
  32.   wios ALL=(ALL) /usr/bin/ls,/usr/bin/more 可以用!反向限制
  33.   使用者账号
  34.   登陆这来源主机名
  35.   可切换的身份
  36.   可执行的命令
  37.  
  38.   默认操作超过5分钟时,需要再次输入密码
  39.  
  40. w,who,last,lastlog 可以查看当前登陆的用户和每个账号最近登陆的时间
  41.  
  42. write,mesg,wall
  43.  
  44. mail:
  45.   mail -s "主题" 账号
  46.   最后一行单独一个.表示输入结束
  47.  
  48.   直接输入mail查看邮箱
  49.   操作指令:
  50.   h:列出信件表头,如果需要查询40份邮件左右可以输入h40
  51.   d:删除后续的信件,单独删除d10,批量d20-
  52.   s:将信件保存城文件
  53.   x:输入exit一样,表示退出
  54.   q:执行刚才的操作,例如删除
  55.  
  56. pwck:
  57.   检查账号信息是否正常(例如密码等不一致)
  58.  
  59. pwconv:检查群组信息是否正常
  60.  
  61. chpasswd:更新密码
  62.   echo "wios:wios" | chpasswd
  63.   passwd 支持--stdin后基本无用,但是其他linux版本可能会使用

批量创建账号操作:

  1. #!/bin/bash
  2. #
  3. #
  4.  
  5. export PATH=/bin:/sbin:/usr/bin:/usr/sbin
  6.  
  7. usergroup=""
  8. pwmech="openssl"
  9. homeperm="no"
  10.  
  11. action="${1}"
  12. if [ ! -f accountadd.txt ];then
  13. echo "There is no accountadd.txt file, stop here."
  14. exit
  15. fi
  16.  
  17. [ "${usergroup}" != "" ] && groupadd -r ${usergroup}
  18. rm -rf outputpw.txt
  19. usernames=$(cat accountadd.txt)
  20.  
  21. for username in ${usernames}
  22. do
  23. case ${action} in
  24. "create")
  25. [ "${usergroup}" != "" ] && usegrp=" -G ${usergroup}" || usegrp=""
  26. useradd ${usegrp} ${username}
  27. [ "${pwmech}" == "openssl" ] && usepw=$(openssl rand -base64 ) || usepw=${username}
  28. echo ${usepw} | passwd --stdin ${username}
  29. chage -d ${username}
  30. [ "${homeperm}" == "yes" ] && chmod /home/${username}
  31. echo "username=${username}, passwd=${usepw}" >> outputpw.tx
  32. ;;
  33. "delete")
  34. echo "delete ${username}"
  35. userdel -r ${username}
  36. ;;
  37. *)
  38. echo "Usage: $0 [create|delete]"
  39. ;;
  40. esac
  41. done

ACL的使用:
传统的权限管理只能针对拥有者,群组,其他的方式管理,无法针对某个人来实施管理,而ACL解决了该问题

查看是否支持ACL(默认大部分Linux系统都是支持的)

  1. [root@bogon ~]# dmesg | grep -i acl
  2. [ 1.436514] systemd[]: systemd running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
  3. [ 3.868425] SGI XFS with ACLs, security attributes, no debug enabled
  1. getfacl:获得某个文件/目录的ACL设置项目
  2. setfacl:设置某个文件/目录的ACL规范
  3.  
  4. setfacl:
  5.   -m:设置后续的acl参数给文件时,不可与-x合用
  6.   -x:删除后续的acl参数,不可与-m合用
  7.   -b:移除所有的acl设置参数
  8.   -k:移除默认的ACL参数
  9.   -R:递归设置ACL
  10.   -d:设置默认acl参数,只对目录有效
  11.  
  12.   touch acl_test1
  13.   setfacl -m u:wios:rx acl_test1
  14.  
  15.   setfacl -m u::rwx acl_test1 ::中间没有使用者,表示该文件的拥有者
  16.  
  17.   利用 u:使用者:权限 的方式来设置
  18.  
  19. getfacl:
  20.   参数与setfacl一样
  21.   [root@bogon wios]# getfacl a
  22.   # file: a
  23.   # owner: root
  24.   # group: root
  25.   user::rw-
  26.   user:wios:rw- #这里是区别,就是acl加上的
  27.   group::r--
  28.   mask::rw-
  29.   other::r--
  30.  
  31.   [root@bogon wios]# touch b
  32.   [root@bogon wios]# getfacl b
  33.   # file: b
  34.   # owner: root
  35.   # group: root
  36.   user::rw-
  37.   group::r--
  38.   other::r--
  39.  
  40. 针对单一群组的权限设置:g:群组名:权限
  41. 针对有效权限设置: m:权限 有效权限,只有在该权限范围内的权限才会生效,超出的部分不生效
  42.  
  43. setfacl -m mask::rxw a 修改mask的值,列出的属性可以当作一般用来操作即可
  44.  
  45. 使用默认权限设置目录中未来文件的ACL权限继承 d:[u|g]:[user|group]:权限
  46. setfacl -m d:u:wios:rx 目录名

PAM模块:
  PAM时一套应用程序接口,提供了一连串的验证机制,只要使用者将验证阶段的需求告知PAM后,
  PAM就能够汇报使用者验证的结果(成功或者失败)

PAM被调用的流程:
  1.使用者执行/usr/bin/passwd时,并输入密码
  2.passwd调用PAM模块进行验证
  3.PAM模块会到/etc/pam.d/中找与程序passwd同名的配置文件
  4.依据/etc/pam.d/passwd内的设置,引用相关的PAM模块逐步进行验证分析
  5.将验证结果回传给passwd这只程序
  6.passwd会根据PAM回传的结果决定下一步操作

常用模块介绍:
/etc/pam.d/login 登陆
/etc/pam.d/system-auth

/etc/pam.d/*:每个程序个别的 PAM 配置文件;
/lib64/security/*:PAM 模块文件的实际放置目录;
/etc/security/*:其他 PAM 环境的配置文件;
/usr/share/doc/pam-*/:详细的 PAM 说明文档

limits.conf:

  1. * soft nofile
  2. * hard nofile

设置限制
  ulimit -a: 查看所有限制信息
  ulimit -n: 设置最大可以打开的文件数量

/var/log/secure
/var/log/messages
如果发生登陆错误或者无法预期的错误时,PAM会把信息记录在文件中,可以查看日志

Linux 账号管理及ACL权限设置,PAM模块简介的更多相关文章

  1. 第14章 Linux账号管理与ACL权限设置

    Linux的账号与用户组 用户标识符:UID与GID 每一个文件都有一个所有者ID和用户组ID,当我们需要查看文件属性时,系统会根据/etc/passwd和/etc/group的内容,找到对应UID和 ...

  2. Linux账号管理与ACL权限设置

    1:UID和GID 用户ID:在/etc/passwd中 群组ID:在/etc/group中 2:有效群组与初始群组 初始群组:/etc/passwd文件里面的GID 有效群组: groups #查看 ...

  3. Linux 账号管理与 ACL 权限配置

    要登陆 Linux 系统一定要有账号与口令才行,否则怎么登陆,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以透过 user/group 的特殊权限配置, 来规范出不同的群组开发项 ...

  4. 第十四章、Linux 账号管理与 ACL 权限配置

    1. Linux 的账号与群组 1.1 使用者标识符: UID 与 GID 1.2 使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构 1.3 关于群组: /etc/gr ...

  5. linux 账号管理与ACL权限设定

    此文涉及命令:useradd.usermod.userdel.passwd.chage.setfacl.getfacl.su.sudo.fingr.chfn.chsh.id.groupadd.grou ...

  6. 别人的Linux私房菜(14)Linux账号管理和ACL权限设置

    用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...

  7. 鸟哥私房菜基础篇:Linux 账号管理与 ACL 权限配置习题

    猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php 1-root 的 UID 与 GID 是多少?而基于这个理由 ...

  8. Linux账号管理与ALC权限设定(二) 批量增加用户脚本

    接上篇.鸟哥提出了一个问题.就是 如果myuser1用户是这个项目的助理,他只能查看该目录下的内容,而无法修改删除.那该如何操作呢? 首先,不能将该用户加入projecta这个群组,否则他也可以修改删 ...

  9. linux备忘录-账号管理与ACL权限设定

    知识 账号管理中的一些文件结构 /etc/passwd 每一行的内容都为下面结构 账号名称:密码:UID:GID:用户信息说明:家目录:shell ---- UID ---- -- 0 -> 代 ...

随机推荐

  1. (转)mysql语句

    一.基础 1.说明:创建数据库 CREATE DATABASE database-name 2.说明:删除数据库 drop database dbname 3.说明:备份sql server --- ...

  2. iPhone到底能不能充一整夜电?

    其实在国内,手机充电一直是个"玄学问题".早在多年前就有大神向小白敦敦教导,"新买的手机要将电用完,并充12个小时,如此反复三次才能延长手机电池寿命".甚至直到 ...

  3. 洛谷 P2320 [HNOI2006]鬼谷子的钱袋

    题目传送门 解题思路: 对于每一个数i,我们都可以用i/2来表示,而对于i/2我们可以用i/4表示......(以此类推) 举个例子,对于10,我们可以用5 + 5来表示,而5可以用 3 + 2表示, ...

  4. Python说文解字_父类的继承

    1. 第一个问题: 我们知道类是可以继承其他类的,在继承的过程中我们不光可以继承父类的方法,还可继承父类的属性,另外还可以在父类的基础上添加自己的东西. 2. 第二个问题: 我们继承父类属性和方法的时 ...

  5. sklearn 模型评估

    原文链接 http://d0evi1.com/sklearn/model_evaluation/ 预测值:pred 真实值:y_test #### 直接用平均值 ``` mean(pred == y_ ...

  6. jquery 第一节 什么是jQuery

    简单来说,jQuery就是javascript的一个框架,也可以说是javascript的一个库.

  7. SSh三大框架的作用

    一.详细分析spring+hibernate+struts作用? 1.struts是框架的表现层,Struts是对MVC构架的具体实现 Struts的MVC三层结构: (1)视图层:Struts采用J ...

  8. 吴裕雄--天生自然MySQL学习笔记:MySQL 管理

    启动及关闭 MySQL 服务器 Windows 系统下 在 Windows 系统下,打开命令窗口(cmd),进入 MySQL 安装目录的 bin 目录. 启动: cd c:/mysql/bin mys ...

  9. oracle学习笔记(六)——函数&存储过程的异同

    我看的书上除了能看出来函数有返回值,存储过程没有,其他啥也看不出来... 网上大大的总结

  10. IDEA 安装破解

    打开IntelliJ IDEA的官网. https://www.jetbrains.com/idea/download/#section=windows 开始安装吧!傻瓜式安装,不多说 激活      ...