Linux 账号管理及ACL权限设置,PAM模块简介

摘要:
不要创建主目录-m:必填!

有效群组与初始群组:
groups:有效与支持群组的观察
newgrp:有效群组的切换,后面接群组名称
在passwd文件中记录的GID就是默认的GID,就是初始群组

/etc/passwd文件结构

zabbix:x:500:500::/home/zabbix:/bin/bash

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

root:$1$EQ2hnCMP$sQtLTSYZSXCzHx9XHOsm61:17541:0:99999:7:::

第一段:账号名称

第二段:密码
第三段:最近修改密码的日期
第四段:密码不可被修改的天数
第五段:密码需要重新变更的天数
第六段:密码需要变更期限前的警告天数
第七段:密码过期后的账号宽限时间
第八段:密码失效日期
第九段:保留
authconfig --test |grep hashing
password hashing algorithm is sha512 #当前的密码加密机制
/etc/group文件结构
root:x:0:
第一段:群组名称
第二段:群组密码
第三段:GID
第四段:次群组支持的账号名称
/etc/gshadow
root:::
第一段:群组名称
第二段:密码栏
第三段:群组管理员的账号
第四段:与加入该群组支持的所属账号
账号管理常用命令:

useradd:添加账号
  -u:UID
  -g:GID
  -G:群组名称,还可以加入的群组
  -M:强制!不创建家目录
  -m:强制!创建家目录
  -c:/etc/passwd第五栏说明信息
  -d:指定一个目录作为家目录
  -r:创建一个系统账号,UID有限制
  -s:指定shell,默认/bin/bash
  -e:失效日期日
  -f:0表示立即失效,-1表示永不失效

  -D:列出创建时的默认值信息


passwd:修改密码
  --stdin: 可以通过管道数据作为密码输入
  -l: 加锁,是密码失效
  -u: 解锁
  -S: 列出密码相关参数,
  -n: 后面接天数, 多久不可修改密码天数
  -x: 后面接天数, 多久内必须要修改密码
  -w: 后面接天数, 密码过期前的警告天数
  -i: 后面接日期, 密码失效日期

  echo "abcd123" | passwd --stdin wios

chage:显示更详细的密码参数信息
  -l:列出该账号的详细参数信息
  -d:
  -E:
  -I:
  -m:
  -M:
  -W:

usermod:修改账号信息
  -c:修改说明
  -d:
  -e:
  -f:
  -g:修改初始群组
  -G:修改支持的群组
  -a:与-G何用,可增加支持的群组,而不是设置
  -l:修改账号名称,重命名
  -s:
  -u:接UID
  -L:加锁
  -U:解锁

userdel:删除账号
  -r: 连同家目录一起删除

id:查询用户的相关UID/GID等信息

chsh:change shell 切换shell的意思
  -l: 列出目前系统上可以用的shell
  -s: 设置修改自己的shell




groupadd:添加群组
  -g:GID,指定ID号
  -r:创建系统群组


groupmod:修改group群组的相关参数
  -g: 修改既有的GID数字
  -n: 修改既有的群组名称

groupmod -g 201 -n mygroup group1
groupdel:删除群组

  gpasswd:群组管理员功能(不常用)
  群组管理员密码,作为该群组的管理员,操作账号加入/移除组


su:使用者身份切换
  为什么身份切换:
  使用一般账号:系统平时操作的习惯
  使用较低权限启动系统服务
  软件本身限制

  -: 如果后面没有用户名,表示切换到root
  -m: -m与-p一样,使用当前的环境设置,而不读取新使用者的配置文件
  -c:仅执行一次命令

  su - -c "head -n 3 /etc/shadow"输入root的密码,执行一次命令

sudo:
  -b: 将后续的命令放到背景中自动执行,不与当前的shell产生影响
  -u: 后面可以接想要切换的使用者,如果无此项,表示切换身份为root

  sudo默认仅可以切换为root,

  执行流程:
  1.当使用sudo时,在/etc/sudoers中搜索是否有执行权限
  2.具有执行权限后,让使用者输入自己的密码来确认
  3.密码成功,执行后面的命令
  4.如果身份相同,不需要输入密码

  设置sudo: visudo
  root ALL=(ALL) ALL
  wios ALL=(ALL) /usr/bin/ls,/usr/bin/more 可以用!反向限制
  使用者账号
  登陆这来源主机名
  可切换的身份
  可执行的命令


  默认操作超过5分钟时,需要再次输入密码



w,who,last,lastlog 可以查看当前登陆的用户和每个账号最近登陆的时间


write,mesg,wall
mail:
  mail -s "主题"账号
  最后一行单独一个.表示输入结束

  直接输入mail查看邮箱
  操作指令:
  h:列出信件表头,如果需要查询40份邮件左右可以输入h40
  d:删除后续的信件,单独删除d10,批量d20-40s:将信件保存城文件
  x:输入exit一样,表示退出
  q:执行刚才的操作,例如删除


pwck:
  检查账号信息是否正常(例如密码等不一致)

pwconv:检查群组信息是否正常

chpasswd:更新密码
  echo "wios:wios" |chpasswd
  在passwd 支持--stdin后基本无用,但是其他linux版本可能会使用

批量创建账号操作:

#!/bin/bash
#
#

export PATH=/bin:/sbin:/usr/bin:/usr/sbin

usergroup=""pwmech="openssl"homeperm="no"

action="${1}"
if [ ! -f accountadd.txt ];then
    echo "There is no accountadd.txt file, stop here."exit 1
fi
[ "${usergroup}" != "" ] && groupadd -r ${usergroup}
rm -rf outputpw.txt
usernames=$(cataccountadd.txt)

for username in${usernames}
do
    case ${action} in
        "create")
            [ "${usergroup}" != "" ] && usegrp="-G ${usergroup}" || usegrp=""useradd ${usegrp} ${username}
            [ "${pwmech}" == "openssl" ] && usepw=$(openssl rand -base64 6) || usepw=${username}
            echo ${usepw} | passwd --stdin ${username}
            chage -d 0${username}
            [ "${homeperm}" == "yes" ] && chmod 711 /home/${username}
            echo "username=${username}, passwd=${usepw}" >>outputpw.tx
            ;;
         "delete")
            echo "delete ${username}"userdel -r ${username}
            ;;
         *)
            echo "Usage: $0 [create|delete]";;
    esac
done

ACL的使用:
传统的权限管理只能针对拥有者,群组,其他的方式管理,无法针对某个人来实施管理,而ACL解决了该问题
查看是否支持ACL(默认大部分Linux系统都是支持的)

[root@bogon ~]# dmesg | grep -i acl
[ 1.436514] systemd[1]: systemd 219 running in system mode. (+PAM +AUDIT +SELINUX +IMA -APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 -SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[ 3.868425] SGI XFS with ACLs, security attributes, no debug enabled
getfacl:获得某个文件/目录的ACL设置项目
setfacl:设置某个文件/目录的ACL规范

setfacl:
  -m:设置后续的acl参数给文件时,不可与-x合用
  -x:删除后续的acl参数,不可与-m合用
  -b:移除所有的acl设置参数
  -k:移除默认的ACL参数
  -R:递归设置ACL
  -d:设置默认acl参数,只对目录有效

  touchacl_test1
  setfacl -m u:wios:rx acl_test1

  setfacl -m u::rwx acl_test1 ::中间没有使用者,表示该文件的拥有者

  利用 u:使用者:权限 的方式来设置


getfacl:
  参数与setfacl一样
  [root@bogon wios]# getfacl a
  # file: a
  # owner: root
  # group: root
  user::rw-user:wios:rw-#这里是区别,就是acl加上的
  group::r--mask::rw-other::r--
  [root@bogon wios]# touchb
  [root@bogon wios]# getfacl b
  # file: b
  # owner: root
  # group: root
  user::rw-group::r--other::r--
针对单一群组的权限设置:g:群组名:权限
针对有效权限设置: m:权限 有效权限,只有在该权限范围内的权限才会生效,超出的部分不生效

setfacl -m mask::rxw a 修改mask的值,列出的属性可以当作一般用来操作即可

使用默认权限设置目录中未来文件的ACL权限继承 d:[u|g]:[user|group]:权限
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:

* soft nofile 655350
* hard nofile 655350

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

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

免责声明:文章转载自《Linux 账号管理及ACL权限设置,PAM模块简介》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇解决 renren-fast-vue npm 下载依赖失败问题css position 属性下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Makefile的学习笔记 .

http://blog.csdn.net/edisonlg/article/details/7171641 1Makefile GNU make的工作分为两个阶段。在第一阶段,make读取makefile文件、内置变量及其值、隐含规则和具体规则、构造所有目标的依赖关系以及所有目标各自的依赖等。在第二阶段,make决定需要重新构造的目标并使用必要的规则进行工...

文件与目录差异对比模块filecmp

简介 当我们进行代码审计或校验备份结果时,往往需要检查原始与目标目录的文件一致性,python的标准库已经自带了满足此需求的模块filecmp。filecmp可以实现文件、目录、遍历子目录的差异对比功能。比如报告中输出目标目录比原始多出的文件或子目录,即使文件同名也会判断是否为同一个文件(内容级对比)等,python2.3以上版本自带了filecmp模块...

linux下调试C程序

正文:==================GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。于是UNIX下的软件比Windows下的软件更能...

Vue 开发规范目录及说明

Vue 开发规范目录及说明 Vue 开发规范目录及说明 命名规范 普通变量命名规范 常量 组件命名规范 views 下的文件命名 结构化规范 目录文件夹及子文件规范 vue 文件基本结构 多个特性的元素规范 元素特性的顺序 组件选项顺序 为组件样式设置作用域 注释规范 务必添加注释列表 单行注释 多行注释 模块 指令规范 Props 规...

04: gitlab安装与使用

1.1 gitlab安装(192.168.56.12中安装)   1、GitLab是什么?       1. GitLab实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。       2. GitLab拥有与Github类似的功能,能够浏览源代码,管理缺陷和注释。       3. 可以管理团队对仓库的访问,它非常易于浏览提交...

Linux内核:关于中断你需要知道的

1、中断处理程序与其他内核函数真正的区别在于,中断处理程序是被内核调用来相应中断的,而它们运行于中断上下文(原子上下文)中,在该上下文中执行的代码不可阻塞。中断就是由硬件打断操作系统。 2、异常与中断不同,它在产生时必须考虑与处理器时钟同步。异常被称为同步中断,例如:除0、缺页异常、陷入内核(trap)引起系统调用处理程序异常。 3、不同的设备对应的中断不...