Linux基础——账号、群组管理

账号、群组管理

  • 账号、群组管理是什么?
  • 相关文件介绍
    • /etc/passwd
    • /etc/shadow
    • /etc/group
    • /etc/gshadow
    • 初始群组和有效群组
  • 账号管理
    • useradd
    • passwd
    • chage
    • usermod
    • userdel
    • id
    • finger
    • chfn
    • chsh
  • 群组管理
    • groupadd
    • groupmod
    • groupdel
    • gpasswd
  • 身份切换
    • su [username]
    • sudo
    • visudo 与 /etc/sudoers
      • 设定用户
      • 设定群组
  • 使用者信息
    • 查询当前使用者——w、who、last、lastlog
    • 与使用者对话——write、mesg、wall
    • 发送邮箱——mail
  • 其他
    • pwck
    • pwconv
    • pwunconv
    • chpasswd

账号、群组管理是什么?

账号、群组管理指的是对linux用户的账号、群组信息进行的操作

相关文件介绍

/etc/passwd

文件 /etc/passwd 记录了使用者的账号等信息
Linux基础——账号、群组管理_第1张图片
以 : 分割,分别为

  • 账号名
  • 密码(已放到/etc/shadow)
  • UID(0为系统管理员,1-999为系统预留,1000-6000为一般用户)
  • GID(与/etc/group第三列对应)
  • 账号说明
  • 家目录
  • Shell(nologin表示无法登陆shell)

/etc/shadow

文件 etc/shadow 记录了账号的密码等信息
在这里插入图片描述
以 : 分割,分别为

  • 账号名
  • 加密后的密码
  • 最近一次改变密码的日期(其值为1970/1/1到该日期的天数)
  • 密码下次可修改的天数(为0表示随时可修改,目的是避免频繁更新密码)
  • 密码必须修改的天数(目的是定期更换密码)
  • 密码必须修改前的警告天数(目的是在密码过期前给予提示)
  • 密码过期后的失效天数(用户密码未修改会过期,过期仍可登陆,过了失效时间则不可登陆)
  • 账号失效日期(其值为1970/1/1到该日期的天数,无论是否过期都无法使用)
  • 预留位暂未使用

/etc/group

文件 etc/group 记录了账号群组的相关信息
Linux基础——账号、群组管理_第2张图片
以 : 分割,分别为

  • 群组名
  • 群组密码
  • GID(与/etc/passwd第四列对应)
  • 加入该群组的账号(与/etc/gshadow第四列对应)

/etc/gshadow

文件 /etc/gshadow 记录群组密码、群组管理员等信息
Linux基础——账号、群组管理_第3张图片
以 : 分割,分别为

  • 群组名
  • 密码,为*或空时表示无群组管理员
  • 群组管理员的账号
  • 加入该群组的账号(与/etc/group第四列对应)

初始群组和有效群组

初始群组指的是/etc/passwd中指定的GID,且其无需在/etc/group第四列指定
Linux基础——账号、群组管理_第4张图片
而有效群组则是通过命令 groups 显示出来的第一个群组,每次新建的文件所属群组则是当前有效群组
Linux基础——账号、群组管理_第5张图片
使用命令 newgrp 可切换当前用户的有效群组,其会开启一个新的shell来变更当前用户的有效群组(若要回原本的shell则用命令exit)
Linux基础——账号、群组管理_第6张图片

账号管理

useradd

命令 useradd 可添加账号,-u指定UID,-g指定初始群组和GID,-G指定加入的群组,-M 不建立家目录,-m建立家目录,-c指定账号说明,-d指定家目录,-r建立系统账号,-s指定shell,-e指定失效日期,-f指定密码过期是否会失效(0失效,-1不失效)
Linux基础——账号、群组管理_第7张图片
如上,添加账号会在etc下的passwd、shadow、group文件新增相关信息,默认值参考etc下的default/useradd、login.defs、skel/*

passwd

新建立的账号是没有密码的,如上/etc/shadow中的第2位为!,可通过命令passwd设置密码,–stdin表示由管道输入,-l使密码失效,-u恢复密码,-S列出shadow相关信息,-nxwi设置shadow的第4567列
在这里插入图片描述
如上设置test的密码,若后面没有加账号则是设置当前登陆账号的密码

chage

命令 change 可显示或指定密码的相关信息,-l显示信息,-dmMWIE设置shadow的第45678列
Linux基础——账号、群组管理_第8张图片
如下设置账号第一次登陆时必须修改密码
Linux基础——账号、群组管理_第9张图片

usermod

命令 usermod 可修改账号的详细信息,-lucds修改passwd的第13567列,-gfe修改shadow的第478列,-G修改群组,-a增加群组,-LU冻结/解冻账号,如下修改账号名
Linux基础——账号、群组管理_第10张图片

userdel

命令 userdel 可删除账号,-r连同家目录等资料一起删除
在这里插入图片描述

id

命令 id 可查看账号UID等信息
在这里插入图片描述

finger

命令 finger 查看账号的一些额外信息
在这里插入图片描述

chfn

命令 chfn 设置账号的一些额外信息,-f 全名,-o办公室名称,-p办公室号码,-h接家里电话,实际修改passwd的第5列
Linux基础——账号、群组管理_第11张图片

chsh

命令 chsh 设置账号的shell,-l显示系统支持的shell,-s指定shell
在这里插入图片描述

群组管理

groupadd

命令 groupadd 可新建群组,-g指定GID,-r建立系统群组
在这里插入图片描述

groupmod

命令 groupmod 修改群组相关参数,-g修改GID,-n修改群组名
在这里插入图片描述

groupdel

命令 groupdel 删除群组,删除前需确保当前群组未被账号设置为初始群组
在这里插入图片描述

gpasswd

命令 gpasswd 可设置群组管理员(未加参数表示对群组设置密码),管理自己群组的增删情况,-A将群组交给某账号管理,-M将一些账号加入群组,-r移除群组密码,-R让群组密码失效,-a将某个账号加入群组,-d将某个账号移除群组
Linux基础——账号、群组管理_第12张图片
如上创建群组交由song管理,然后可看到gshadow的第34列有新增密码和管理员,如下将用户test添加到mygroup群组
在这里插入图片描述

身份切换

su [username]

命令 su 用于切换用户(后面不跟用户名表示切换到root),- 代表用login-shell设定的环境变量登陆,-l(与 - 类似)后面需加上用户,-m和-p表示使用当前环境,而不是新用户的设置环境,-c 以某一用户身份运行后续的指令
Linux基础——账号、群组管理_第13张图片
如下以root身份查看/etc/shadow
Linux基础——账号、群组管理_第14张图片

sudo

命令 sudo 可以让用户以其他用户身份执行命令(定义在/etc/sudoers内的用户才能执行,执行时需输入当前用户密码),-b 将后面的指令放到背景中让系统自行执行(不影响当前shell),-u 后面接其他用户(无则为root)
在这里插入图片描述
如上以 test 的身份新建 1.txt

visudo 与 /etc/sudoers

文件/etc/sudoers规定了sudo命令的使用规则

设定用户

可对单一用户设置sudo权限

  • root ALL=(ALL:ALL) ALL
  • 用户 可下达命令的主机名称=(可切换的身份) 可下达的指令
  • root ALL=(ALL:ALL) NOPASSWD: ALL 加入NOPASSWD: 可避免每次使用sudo都要密码

设定群组

可设置群组的sudo权限,加入群组的用户可使用sudo

  • %admin ALL=(ALL) ALL
  • 群组 可下达命令的主机名称=(可切换的身份) 可下达的指令

使用者信息

查询当前使用者——w、who、last、lastlog

命令 w 可显示目前登陆在系统上面的使用者

  • 第一行为时间、开机(up)多久、各个使用者的平均负载
  • 第二行为第三行的说明

在这里插入图片描述
命令 who 简略显示当前在线用户
在这里插入图片描述
命令 last 显示最近登陆的用户,而 lastlog 读取/var/log/lastlog文件中的信息
Linux基础——账号、群组管理_第15张图片

与使用者对话——write、mesg、wall

命令 write user 可向其他用户发送信息,输入完后按 Ctrl+d 结束输入

命令 mesg [y|n] 可选择是否接收其他用户(除root外)的信息

命令 wall 可向所有用户发送信息

发送邮箱——mail

上面的 write、wall 需在线才能使用,而命令 mail 可发送邮件给用户,每一个用户都有一个mailbox,其位置在 /var/spool/mail 中

mail -s "hello" song < 1.txt

如上命令发送一封标题为hello,内容在1.txt(结束的最后一行需输入小数点 . )的邮件,而查阅邮件直接输入 mail

其他

pwck

命令 pwck 用于检查 /etc/passwd 中的内容,还可对比/etc/passwd和/etc/shadow中的信息是否一致,相对应群组检查用grpck
Linux基础——账号、群组管理_第16张图片

pwconv

命令 pwconv 将/etc/passwd中的账号密码移动到/etc/shadow中

pwunconv

命令 pwunconv 将/etc/shadow内的密码写回到/etc/passwd,并删除/etc/shadow

chpasswd

命令 chpasswd 将未加密的密码,经过加密后,写回到/etc/shadow

你可能感兴趣的:(#,Linux基础,linux,服务器)