Linux账号管理与ACL权限设定。Linux账号管理与ACL权限设定
Linux的账号与群组————————————-
每个档案都有使用者ID(UID)和群组ID(GID)
/etc/passwd 结构——
每一行代表一个账号,每个账号用[:]隔开成七部分,分别是1.账号名称,2.密码,3.UID,4.GID,5.用户信息说明,6.根目录,7.Shell UID的限制如下:
/etc/shadow 结构
该文件用 [:] 分为九个字段,分别是:
1.账号名称,2.密码(只有root可以修改),3.最近更改密码的日期,4.密码不可被更改的天数,5.密码需要重新变更的天数,6.密码需要变更期限前的警告天数,7.密码过期后的账号宽限时间,8.账号失效日期,9.保留
Linux系统时间是从1970年1月1日累加的,通过天数计算时间
—————————————————————–
/etc/group 结构
分为四个字段,分别是:1.组名,2.群组密码,3.GID,4.此群组支持的账号名称
一个用户可以属于多个群组,所以分有效群组与初始群组:
groups:可以观察有效(第一个)和支持群组
newgrp可以在支持群组中切换有效群组
/etc/gshadow 结构
分为四个字段,分别是:1.组名,2.密码栏(开头为!表示无合法密码,也无群组管理员),3.群组管理员的账号,4.该群组的所属账号
—————————————————————-
账号管理
useradd——新建用户,密码的给予使用passwd指令
useradd -D可以调用查看useradd的默认值
passwd——设定密码
chage——显示密码参数
chage可以强制用户第一次登陆时必须修改密码才能使用系统资源,-d 后面指定天数为0
usermod——微调账号相关数据
userdel——删除用户相关数据
用户功能—————————————
finger——查阅用户相关信息
chfn——更改个人信息
chsh——更改个人信息
id——查询某人或自己的相关UID/GID等信息
groupadd——新增群组
groupmod——修改group相关参数
groupdel——删除群组
gpasswd——群组管理员
———————————————————————-
主机的细节权限规划:
ACL(Access Control List),目的是提供传统的owner,group,others的读写执行之外的权限。
如果系统没有(一般都会)默认支持ACL,可以按如下启动
ACL的设定技巧:getfacl取得setfacl设定
setfacl ——设定某个目录/文件的ACL规范
getfacl ——取得某个文件/目录的ACL设定项目
用法与setfacl基本相同
———————————————————————-
用户身份切换
su——最简单的身份切换,需要新切换的用户密码
su的用法总结:
1.若要完整的切换到新用户的环境,必须要使用【su -username】或者【su -| username】这才会连同PATH/USER/MAIL 等变量都转成新用户的环境。
2.如果仅想要执行一次root的指令,可以利用【su –c”指令串” 】的方式来处理
3.使用root切换成为任何使用者时,并不需要输入新用户的密码
sudo——仅需要自己的密码不需要新切换的用户密码
sudo默认只有root能使用,它执行的重点在于【能否使用sudo必须要看 /etc/sudoers的设定值,可使用sudo的用户是通过输入自己的密码来执行后续的指令串】
visudo的设定方式有:用vi将sudoers文件调用出来修改
1.单一用户可进行root所有指令,与sudoers档案语法
默认是root有这权限,你可以增加自己想要的用户的权限。(76行)
2.利用群组以及免密码的功能处理visudo
3.有限制的指令操作:
限定某些用户只能进行部分系统任务,比如用户只能用passwd指令(如下)帮root修改其他用户的密码,但是肯定不希望普通用户修改root的密码了,所以最好写成
4.通过别名建立visudo:
一些重复的操作,相当于将这些放到一个组里面,用组名处理这些操作
5.sudo的时间间隔问题:
为了防止其他人使用用户的sudo,所以隔几分钟就要输入密码。
6.sudo搭配su的使用方式:
可以让其他用户输入“ sudo su - ”并且输入自己的密码就变成root身份,这样root密码就不会外流
——————————————————————————–
用户的特殊shell 与PAM模块
特殊的shell,/sbin/nologin
有些shell是即使知道了系统密码,也无法使用bash或其他shell来登录系统。比如一个系统是不需要登录就可以使用的话,就可以拒绝试图用shell登录的用户了。
PAM(嵌入式模块)简介
是一个多个认证集合的应用程序编程接口。用户只需要将当前的认证需求告诉PAM,PAM就会提供结果。
*****这一块挺重要的,但是写起来好繁琐
—————————————————————————–
Linux主机的用户信息传递
查询用户:w, who, last, lastlog(最近登录时间)
用户对话:write, mesg, wall(这三个都是用户在线)
write对一个用户传播信息,如果不想接受可以写 mesg n,但是root传递过来的指令是无论如何都要接收的,如果又想要看被自己拒绝的信息,只要下达mesg y就行了。
wall是广播信息
用户邮件信箱:mail(mailbox一般在/var/spool/mail里面)
收信的话直接用mail就行了,message list比较常见的指令有
————————————————————————–
手动新增用户(不建议)
pwck检查 /etc/passwd 这个账号配置文件
pwconv 将 /etc/passwd内的账号密码移动到 /etc/shadow中
pwunconv 跟上一个相反,不过还会删除 /etc/shadow文件,最好不执行这个指令
chpasswd 读入未加密前的密码,并加密后写入/etc/shadow当中,现在很少用
纯数字账号的手工建立(不建议)
1.建立所需要的群组,2.将/etc/group与/etc/gshadow同步化(grpconv),3.建立账号的各个属性,4.pwconv,5.建立密码,6.建立根目录,7.更改根目录的属性
大量建立账号模板(适用passwd –stdin选项)
http://linux.vbird.org/linux_basic/0410accountmanager/account1.sh