linux学习日记十一 账号管理与ACL权限设置




linux学习日记十一 账号管理与ACL权限设置

2022-07-20 20:31:08 网络知识 官方管理员

====账号管理配置文件====

vim/etc/passwd,显示系统内所有账号内容,每一行代表一个账号,比如:

yidao:x:1000:1000:fedora17:/home/yidao:/bin/bash

解释下这7个字段的含义:

1:账号名称|2:密码|3:UID|4:GID|5:用户信息说明|6:主文件夹|7:shell

vim/etc/shadow,显示密码信息,每一行代表一个账号密码信息,比如:

yidao:$1$Bylot.Y3$kMjNj1.KyW9lS3TUuAIPd/:15614:0:99999:7:::

解释下这9个字段含义(以:隔开)

1:账号名称|2:密码|3:最近更改密码日期,与1970年1月1日比较的天数|4:密码不可被更改的天数(与第三个字段比较)|5:密码需重新更新的天数(与第三个字段比较)|6:密码需重新更新前的警告天数(与第五个字段比较)|7:密码过期后的账号宽限天数(密码失效日)(与第五个字段比较)|8:账号失效日期,也是与1970年1月1日比较的天数|9:保留

/etc/group文件:

yidao:x:1000:

用户组名称:用户组密码(已经移到/etc/gshadow中去,一般为x):GID:此用户支持的账号名称(只写改组不是其初始用户组的账号)

groups命令可以显示该用户的属于所有的用户组,第一个为有效用户组,新建文件的时候有用

newgrp命令切换有效用户组,新开子shell,用exit返回。

/etc/gshadow文件:

root:::

用户组名:密码列(开头为!代表无合法密码,所有无用户组管理员):用户组管理员账号:用户组下的账号

====新增用户useradd====

#useradd[-uUID][-gGID][-G次要用户组][-mM][-c说明][-d主文件夹][-sshell][-r]用户账号

-M:强制不创建用户主文件夹(系统账号默认值)

-m:强制创建用户主文件夹(一般账号默认值)

-r:创建一个系统账号

使用useradd创建账号至少会参考:

/etc/default/useradd

/etc/login.defs

/etc/skel/*这些文件。

详细的密码显示与修改命令chage:

#chage[-ldEImMW]帐号名

-l:列出详细密码信息

-d:后面接日期,修改shadow第三个字段(最新修改日期),格式YYYY-MM-DD

-E:后面接日期,修改shadow第八字段(账号失效日),格式YYYY-MM-DD

-I:后面接天数,修改shadow第七字段(密码失效日期)

-m:后面接天数,修改shadow第四字段(密码最短保留天数)

-M:后面接天数,修改shadow第五字段(密码最长保留天数)

-W:后面接天数,修改shadow第六字段(密码过期前几天开始警告)

====账号相关数据进行微调usermod====

#usermod[-cdegGlsuLU]username

-c:后面接账号说明,即/etc/passwd第五列说明

-d:账号主文件夹,/etc/passwd第六列

-e:后面接日期,YYYY-MM-DD格式,/etc/shadow第八字段(账号失效日期)

-f:后面接天数,shadow第七字段(密码失效日期)

-g:后接初始用户组,/etc/passwd第四字段,即GID字段

-G:后接次要用户组,修改这个用户能支持的用户组,修改的是/etc/group(赋值的意思,你懂的)

-a:与-G合用增加次要用户组的支持而非设置(append的意思,你懂的)

-l:后接账号名称,即修改账号名称,/etc/passwd第一列

-s:后接shell实际文件,例如/bin/bash、/bin/csh等

-u:后接UID,/etc/passwd第三列

-L:暂时将用户的密码冻结,让他无法登陆,其实仅仅改了/etc/shadow的密码列

-U:将/etc/shadow密码列的!去掉,解锁密码

几个小命令:

#finger[-s]username:类似指纹功能,将用户相关属性列出来

#chfn[-foph]username:修改finger属性,也就是个人信息

#chsh[-ls]:修改shell

#idusername:查阅相关的ID信息

====用户组管理命令====

#groupadd[-ggid][-r]用户组

-g:后接GID

-r:新建系统用户组

#groupmod[-ggid][-ngroup_name]用户组名

-g:修改GID

-n:修改组名

这东东一般没啥用,最好别用。

#groupdel用户组名

#gpasswdgroupname:给个组密码

#gpasswd[-Auser1,...][-Muser3,...]groupname

-A:将groupname主控器交由后面的用户管理(该用户组的管理员)

-M:将某些账号加入到这个组中

#gpasswd[-rR]groupname

-r:将groupname的密码删掉

-R:让groupname的密码栏失效

下面是组管理员命令:

#gpasswd[-ad]usergroupname

-a:add

-d:delete

====主机的具体权限规划ACL(AccessControlList)====

先查看是否支持acl

#sudodumpe2fs-h/dev/sda5|grepacl

设置acl权限:

#setfacl[-bkRd][{-m|-x}acl参数]目标文件名

参数:

-m:设置后续的acl参数给文件使用,不可与-x合用

-x:删除后续的acl参数,不可与-m合用

-b:删除所有的acl参数

-k:删除默认的acl参数,关于所谓的默认参数等等

-R:递归设置acl,亦包括子目录也

-d:设置默认的acl参数!只对目录有效,在该目录下新建数据会引用此默认值

设置用户规则:u:[用户账号列表]:rwx

#touchtext.txt

#setfacl-mu:yidao:rxtext.txt

#setfacl-mu::rxtext.txt==>代表对该文件的所有者(user)设置

#getfacltext.txt==>查看acl设置

里面有个mask:表示用户或者用户组的权限必须要存在于mask的权限范围内才会生效,即有效权限effectivepermission的意思

设置用户组规则:g:[用户组列表]:rxtext.txt

#setfacl-mg:yidao:rxtext.txt

设置mask的规则:m:[rwx]text.txt

#setfacl-mm:rxtext.txt

针对目录的ACL的权限设置能够被子目录所继承的话,设置规范:

d:[u|g]:[用户|用户组]列表:[rwx]

切换到root身份的时候使用:

====用户身份切换====

#su-

#su–-c‘head-n3/etc/shadow’==>执行完root命令后自动返回当前用户

#sudo[-b][-u新用户账号]command

-b:后续命令让系统自动执行,不与目前的shell环境产生影响

-u:后面接用户名,没有就代表root

#sudo-usshdtouch/tmp/mysshd

#sudo-utestusersh-cmkdir~testuser/www;cd~testuser/www;echo‘fuckyou’>index.html

visudo编辑/etc/sudoers文件:

yidaoALL=(ALL)ALL

用户账号登录者的来源主机号=(可切换的身份)可执行的命令

%yidaoALL=(ALL)ALL==>注意%代表对用户组设置

%yidaoALL=(ALL)ALLNOPASSWD:ALL==>免密码功能

通过别名设置visudo:

#visudo

User_AliasADMUSERS=myuser1,myuser2

Host_Aliaswww.springzoo.com,www.google.com.hk

Cmnd_AliasADMCMD=!/usr/bin/passwd,/usr/bin/passwd[A-Za-z]*,!/usr/bin/passwdroot

ADMUSERSALL=(Host_Alias)ADMCMD

sudo搭配su输入自己的密码变成root用户,然后以后就不用输入sudo了

#visudo

User_AliasADMINS=yidao,test

ADMINSALL=(root)/bin/su-

====PAM模块(PluggableAuthenticationModules)====

可以编辑/etc/nologin.txt让shell为/sbin/nologin的用户登录时候显示消息给他看

PAM会调用在目录/etc/pam.d/command文件对每个command进行认证,文件名与程序名一样

====查询用户:====

w/who/last/lastlog不解释

用户对谈:write,mesg,wall

先用w查看当前用户

#write用户账号[用户所在终端接口]

#writeyidao[pts/2]

最后按CTRL+D结束输入

#mesg[-n|y]==>查看自己的消息,-n禁止别人的弹出消息

#wallHelloeverybody==>广播

====用户邮件====

#mailusername@localhost-s邮件标题

正文结束时,最后一行输入一个.即可

==============================END==============================


发表评论:

最近发表
网站分类
标签列表