Linux 账号管理及ACL权限设置,PAM模块简介
有效群组与初始群组:
groups:有效与支持群组的观察
newgrp:有效群组的切换,后面接群组名称
在passwd文件中记录的GID就是默认的GID,就是初始群组
/etc/passwd文件结构
zabbix:x::::/home/zabbix:/bin/bash
第一段:账号名称
第二段:密码:该密码数据保存在/etc/shadow中,这里显示x
第三段:UID
第四段:GID
第五段:使用者信息说明栏
第六段:家目录
第七段:Shell
/etc/shadow文件结构
root:$$EQ2hnCMP$sQtLTSYZSXCzHx9XHOsm61:::::::
第一段:账号名称
第二段:密码
第三段:最近修改密码的日期
第四段:密码不可被修改的天数
第五段:密码需要重新变更的天数
第六段:密码需要变更期限前的警告天数
第七段:密码过期后的账号宽限时间
第八段:密码失效日期
第九段:保留
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 -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, 执行流程:
.当使用sudo时,在/etc/sudoers中搜索是否有执行权限
.具有执行权限后,让使用者输入自己的密码来确认
.密码成功,执行后面的命令
.如果身份相同,不需要输入密码 设置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-
s:将信件保存城文件
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
fi [ "${usergroup}" != "" ] && groupadd -r ${usergroup}
rm -rf outputpw.txt
usernames=$(cat accountadd.txt) for username in ${usernames}
do
case ${action} in
"create")
[ "${usergroup}" != "" ] && usegrp=" -G ${usergroup}" || usegrp=""
useradd ${usegrp} ${username}
[ "${pwmech}" == "openssl" ] && usepw=$(openssl rand -base64 ) || usepw=${username}
echo ${usepw} | passwd --stdin ${username}
chage -d ${username}
[ "${homeperm}" == "yes" ] && chmod /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[]: 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.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参数,只对目录有效 touch acl_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]# touch b
[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
* hard nofile
设置限制
ulimit -a: 查看所有限制信息
ulimit -n: 设置最大可以打开的文件数量
/var/log/secure
/var/log/messages
如果发生登陆错误或者无法预期的错误时,PAM会把信息记录在文件中,可以查看日志
Linux 账号管理及ACL权限设置,PAM模块简介的更多相关文章
- 第14章 Linux账号管理与ACL权限设置
Linux的账号与用户组 用户标识符:UID与GID 每一个文件都有一个所有者ID和用户组ID,当我们需要查看文件属性时,系统会根据/etc/passwd和/etc/group的内容,找到对应UID和 ...
- Linux账号管理与ACL权限设置
1:UID和GID 用户ID:在/etc/passwd中 群组ID:在/etc/group中 2:有效群组与初始群组 初始群组:/etc/passwd文件里面的GID 有效群组: groups #查看 ...
- Linux 账号管理与 ACL 权限配置
要登陆 Linux 系统一定要有账号与口令才行,否则怎么登陆,您说是吧?不过, 不同的使用者应该要拥有不同的权限才行吧?我们还可以透过 user/group 的特殊权限配置, 来规范出不同的群组开发项 ...
- 第十四章、Linux 账号管理与 ACL 权限配置
1. Linux 的账号与群组 1.1 使用者标识符: UID 与 GID 1.2 使用者账号:/etc/passwd 文件结构, /etc/shadow 文件结构 1.3 关于群组: /etc/gr ...
- linux 账号管理与ACL权限设定
此文涉及命令:useradd.usermod.userdel.passwd.chage.setfacl.getfacl.su.sudo.fingr.chfn.chsh.id.groupadd.grou ...
- 别人的Linux私房菜(14)Linux账号管理和ACL权限设置
用户标识符UID.GID 用户的账号信息,主要是指UID对应.组和GID对应 检查系统中是否存在用户bin:id bin 登录shell验证账号密码的步骤:找到/etc/passwd核对是否存在账号, ...
- 鸟哥私房菜基础篇:Linux 账号管理与 ACL 权限配置习题
猫宁!!! 参考:http://cn.linux.vbird.org/linux_basic/0410accountmanager.php 1-root 的 UID 与 GID 是多少?而基于这个理由 ...
- Linux账号管理与ALC权限设定(二) 批量增加用户脚本
接上篇.鸟哥提出了一个问题.就是 如果myuser1用户是这个项目的助理,他只能查看该目录下的内容,而无法修改删除.那该如何操作呢? 首先,不能将该用户加入projecta这个群组,否则他也可以修改删 ...
- linux备忘录-账号管理与ACL权限设定
知识 账号管理中的一些文件结构 /etc/passwd 每一行的内容都为下面结构 账号名称:密码:UID:GID:用户信息说明:家目录:shell ---- UID ---- -- 0 -> 代 ...
随机推荐
- String 字符串拼接
字符串拼接有两个方法 第一中 var sad = "happy" var variable = "you"+sad +"" variable ...
- vue项目起步准备
1. 项目环境: node.js运行环境(不一定要最新特性的最新版本,用合适的版本即可) 2.项目放在git上管理(网上云仓库码云) 1.创建仓库:选择语言js 2.本地代码和线上代码通过git做成关 ...
- Maven--mirror 和 repository
参考:http://blog.csdn.net/isea533/article/details/22437511 http://www.cnblogs.com/xdouby/p/6502925.h ...
- 利用python分析泰坦尼克号数据集
1 引言 刚接触python与大数据不久,这个是学长给出的练习题目.知识积累太少,学习用了不少的时间.尽量详细的写,希望对各位的学习有所帮助. 2 背景 2.1 Kaggle 本次数据集来自于Kagg ...
- [FJOI2015]火星商店问题(线段树分治+可持久化Trie)
重新写一年前抄题解的那题,当时我啥都不会只是Ctrl+C,Ctrl+V写过的题,今天重新写一遍. 题解: 不会线段树分治,还是学一下这东西吧,这是我的第一道线段树分治. 首先对于特殊商品,可以直接可持 ...
- python 爬虫 多线程 多进程
一.程序.进程和线程的理解 程序:就相当于一个应用(app),例如电脑上打开的一个程序. 进程:程序运行资源(内存资源)分配的最小单位,一个程序可以有多个进程. 线程:cpu最小的调度单位,必须依赖 ...
- php速成_day3
一.MySQL关系型数据库 1.什么是数据库 数据库 数据存储的仓库,在网站开发应用当中,需要有一些数据存储起来. 注册的用户信息,使用PHP变量只是一个临时的存储,如果需要永久的存储起来,就把数据存 ...
- 题解-------P4053 [JSOI2007]建筑抢修
传送门 贪心+左偏树 贪心思路:先修快炸的楼 所以我们可以按照$T2$从大到小做一遍排序,然后从$1\cdots n$一个一个去修,如果这栋楼不能修(也就是当前时间已经超过$T2_{i}$),那我们就 ...
- 借助Nginx搭建反向代理服务器
一.反向代理:Web服务器的"经纪人" 1.1 反向代理初印象 反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网 ...
- C#通过窗体应用程序操作数据库(增删改查)
为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...