账户配置文件
- /etc/passwd
- /etc/shadow
- /etc/group
- /etc/gshadow
/etc/passwd
mxx❌1000:1000:mxx,:/home/mxx:/bin/bash
账号名称,密码,UID,GID,用户信息说明列,主文件夹,shell
/etc/shadow
mxx:…:17034:0:99999:7:::
账号名称,密码,最近密码更改日期,密码更改多久后才能重新更改,密码多长时间需要重新修改,密码需要修改前多少天发送警告,密码过期后宽限时间,账号失效日期,(形式和密码更改日期一样),保留字段
/etc/group
用户组名称,用户组密码,GID,此用户组支持的账号名称
/etc/gshawod
用户组名,
密码列,开头为!表示无合法密码
用户组管理员的账号
该用户组的所属账号
UID | 用户 |
---|---|
0 | 系统管理员 |
1-99 | 系统账户 |
100-499 | 用户创建的系统账号 |
500-65535 | 一般用户 |
修改密码
一般账户:passwd
root账户:重启后进入单用户维护模式
忘记密码后,以各种方式清空/etc/shadow中root的密码字段。登陆后再用passwd修改密码
uesr管理
usermod -G group user将一个用户加入其他用户组
初始用户组用户的/etc/passwd的第四个字段即为该用户的初始用户组的GID
groups查看当前登陆用户的用户组。第一个为有效用户组
newgrp更改用户的有效用户组,但是用户组必须当前用户支持的用户组
UID/GID密码参数的设置在 /etc/login.defs
useradd添加用户
参数介绍
useradd [-ugGmMcdrsef] 调用/etc/default/useradd的数据
-u UID /etc/skel用户主文件加参考基准目录
-g initial group
-G 这个账户可以加入的其他用户组
-m 创建用户主文件
-M 不创建用户主文件
-s 接一个默认shell
-r 创建一个系统账户
-c /etc/passwd的第五列说明
-d 制定某个目录成为主文件夹
-e 后面跟一个日期YYYYMMDD写入shadow的第八字段,账号的失效日期从1970年来总日数,若账号失效,无论密码是否正确,都无法登陆
-f 后面接shadow的第七字段,判定密码是否会失效,0为立即失效,-1为永不失效(密码只会过期强制登陆时重新设置),大于0的表示如n,如果在n天后,没有登陆修改密码,那么在n天后密码会失效,再也无法登陆,但是在如果在n天内登陆并修改密码,就可以继续使用。
-D useradd的默认值
例子
~$:useradd -d /home/mxxhcm -k /etc/skel/ -m mxxhcm -s /bin/bash
passwd修改密码
参数介绍
passwd [账号] [–stdin] -[luSnxwi]
-l lock
-u unlock
-S 密码相关参数
-n next 多长时间不能修改第四个字段
-x 多少天必须修改 第五个字段
-w warn第六个字段
-i 失效日期 第七个字段
示例
~#:passwd 后面没有接密码,就是修改当前用户的密码
~#:echo “passwd” | passwd --stdin user
change修改user信息
参数介绍
chage [-ldEImMW] 账号名
-l 列出详细参数
-d 第三字段
-E 第八字段 账号失效
-I 第七字段 密码失效
-m 第四字段
-M 第五字段
-W 第六字段
示例
chage -d 0 user
user信息修改
参数介绍
usermod [-;cdefgGasuLU]
-l 修改账户名称
-L lock
-U unlock
修改/etc/shadow
-f 第七字段
-e 第六字段
-c /etc/passwd 第五字段
-d /etc/passwd 主文件夹第六字段
-g /etc/passwd 第四个字段GID
-G 后面接次要用户组,修改这个用户能支持的用户组,修改/etc/group
-a 与-G连用,增加次要用户组的支持而非设置
-u UID /etc/passwd的第三个字段,UID
-s 接shell的实际文件
示例
~#:usermod -l ‘my_usename’ username
user删除
参数介绍
userdel
示例
~#:userdel -r username # 删除主文件夹
~#:find / -user username
~#:userdel username
finger查看用户的数据
finger 查看当前用户的数据
finger username 查看某用户的信息
chfn
chfn 就是相当于-c参数,修改当前用户/etc/passwd的第五个字段值
chsh -s 修改当前用户的shell
chsh -s /bin/bash
id
id [username]
列出当前用户或者username的所有id
group操作
groupadd [-gr]
-g 指定GID
-r 新建系统用户组
groupmod [-gn]
-n 修改组名
groupdel [groupname]
尽量少修改GID否则会造成系统资源的混乱
当用户组为某个用户的初始用户组时,就无法删除该用户组
gpasswd修改group信息
gpasswd [-AMrR] groupname
-A 将groupname的控制权交给后面用户
gpasswd -A mxx groupname
-M 将某些账号加入到这个用户组中
-r 将groupname的密码删除
-R 将groupname的密码失效
gpasswd groupname 设置groupname管理密码
gpasswd groupname
-A 增加groupname的管理员
-r让密码删除
gpasswd -ad username groupname
-a增加
-d删除
ACL Acess Control List
针对单一用户或者目录来进行rwx的权限设置
setfacl [-m|-x] -m设置acl参数 -x删除后续acl参数
[-bkRd]
-b删除所有的acl参数;-k删除默认的acl参数;-R递归设置acl;-d设置默认的acl,只对目录有效
setfacl [-m|-x] [bkRd]
-b 删除所有ACL参数
-k 删除默认ACL参数
-R 递归设置ACL参数,包括子目录
-d 设置默认ACL参数,只对目录有效
-x 删除后续的ACL参数
-m 设置后续的ACL参数
-m u:mxx:rw my_file
getfacl my_file
针对有效权限mask的设置
setfacl -m m:rwx my_file
mask在此可以来规定最大允许的权限。取得是mask和用户以及用户组的权限交集。 若用户mxx的权限为rwx 但是mask为r–,那么mxx的权限只能为r–.
~#:setfacl -m d:u:mxx:rwx file 递归设置目录的acl
~#:setfacl -m m:rw acl_test
~#:setfacl -m g:mxx:rwx acl_test
~#:getfacl acl_test
~#:setfacl -b file 删除acl
切换用户,切换账号
su[- -l -m -c]
su - 切换到root用户以login shell变量的读取方式
su 切换到root用户,以nologin shell变量的读取方式登陆系统
`` su -l 加想要切换的账号login shell
su -c 只提升一次到root权限
su -m 使用目前用户的环境变量,不读取新用户的配置文件
su - -c cat /etc/shadow
sudo -u mxx …提升到mxx权限
visudo的设置
1.visudo 修改/etc/sudoers
其他用户使用root身份
root ALL=(ALL) ALL
用户账号
登陆者的来源主机名,
可切换的身份
可执行的命令
2.最左边加一个%表示用户组
利用用户组以及免密码
%wheel ALL=(ALL) ALL
usermod -a -G wheel user
免密
%wheel ALL=(ALL) NOPASSWD: ALL
3.mxx ALL=(root) /usr/bin/passwd
mxx可以切换到root的身份使用passwd命令
mxx ALL=(root) !/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*,
!/usr/bin/passwd root
4.别名设置
User_Alias MYUSER=mxx,mahuihui
Cmnd_Alias MYCOMMAND=!/usr/bin/passwd, /usr/bin/passwd [A-Za-z]*,
!/usr/bin/passwd root
MYUSER all=(root) MYCOMMAND
5.用自己的密码切换成root
sudo su -
用户信息传递
查询用户
- w
- who
- last
- lastlog
用户对谈
mesg y
mesg n
write
write mxx tty1
wall “hello” 每个人都会收到
mail mahuihui -s “Hi,mahuihui,nihaoa”
…
…
ctrl+d
mail 收信
?查看命令
q离开,离开后,会将该信件移动到~/home/mbox,收信箱
读取
mail -f /home/mxx/mbox
手工添加账号
-
pwck
pwconv将/etc/passwd相关信息移动到/etc/shadow,把在/etc/passwd中存在的账号 但是在/etc/shadow没有对应密码的列新增密码 -
grpconv
-
pwunconv
-
chpasswd 修改密码
echo “mxx:mypaswd” | chpasswd -m
新建账号
vim /etc/group
mygroup❌1020:
grpconv
vim /etc/passwd
myuser❌1200:1020::/home/myuser:/bin/bash
pwconv
passwd myuser
cp -a /etc/skel /home/myuser
chmod -R myuser:mygroup /home/myuser
chmod 700 /home/myuser
参考文献
1.《鸟哥的LINUX私房菜》