用户账户与群组概念
- Linux操作系统是多用户多任务的操作系统,系统依据账户来区分属于每个用户的文件、进程,任务,并给每个用户提供特定的工作环境(例如,用户的工作目录、shell版本以及图形化的环境配置等)
- Linux系统下的用户分为三种:
(1)普通用户:在系统中只能进行普通工作只能访问他们拥有的或者有权限执行的文件。
(2)超级用户(root):也叫管理员账户,它的任务是对普通用户和整个系统进行管理。超级用户账户对系统具有绝对的控制权,能够对系统进行一切操作
(3)系统用户:与系统服务相关,但不能用于登录
一个用户账户可以同时是多个群组的成员,其中某个群组是该用户的主群组 (私有群组),其他群组为该用户的附属群组(标准群组)。 - 用户名,密码,用户标识(UID),用户主目录,登录shell,群组,群组标识(GID)
- root用户的UID为0:系统用户的UID从1到999;普通用户的UID可以在创建时由管理员指定,如果不指定,用户的UID默认从1 000开始顺序编号。在Linux系统中,创建用户账户的同时也会创建一个与用户同名的群组,该群组是用户的主群组。 普通群组的GID默认也是从1 000开始编号
用户账户与群组文件
- /etc/passwd文件:passwd文件的每一行用“:” 分隔为7个域,各域的内容如下:
用户名:加密口令:UID:GID:用户的描述信息:主目录:命令解释器(登录shell) - /etc/shadow文件:存放用户经过加密的口令,用“:”分割为九个域:
- /etc/group文件:存放用户的组账户信息,对于该文件的内容任何用户都可以读取。分为四个域:群组名称:群组口令(一般为空,用x占位):GID:群组成员列表
- /etc/gshadow文件:用于存放群组的加密口令、组管理员等信息,该文件只有root用户可以读取。4个域表示:群组名称:加密后的群组口令(没有就用!):群组的管理员:群组成员列表
用户账户与群组管理
- 新建用户:useradd username
- 账户创建过程
• 在 /etc/passwd 里面建立一行与帐号相关的资料,包括建立 UID/GID/家目录等;
• 在 /etc/shadow 里面将此帐号的密码相关参数填入,但是尚未有密码;
• 在 /etc/group 里面加入一个与帐号名称一模一样的群组名称;
• 在 /home 底下建立一个与帐号同名的目录作为使用者家目录,且权限为 700 - 查看账户信息:
• id username 查看用户的UID、GID和用户所属群组的信息,如果不指定用户,则显示当前用户的相关信息。
• whoami 查看当前用户名
• w 查看当前登录系统用户和详细信息 - 设置账户口令:passwd username 指定和修改用户账户口令。超级用户可以为自己和其他用户设置口令,而普通用户只能为自己设置口令。
- 修改用户账户: usermod username
• usermod -G root user1 把user1加入root组
• usermod -u 8888 user1 把user1的UID改为8888
• usermod -d /var/user1 -s /bin/tcsh 修改用户主目录和启动shell - 删除用户账户 userdel -r username 删除账户同时删除主目录及其下所有文件
- 禁用和恢复账户:
• passwd -l user1 锁定用户密码,passwd -u username解除锁定
• Usermod -L user1 禁用,usermod -U user1 解除锁定
• 修改/etc/passwd文件,passwd域添加* - 群组管理
• 添加群组: groupadd gname
• 删除群组: groupdel gname
• 修改群组: groupmod gname/-g x把GID改为x/ -n newname/改名
• 为群组添加用户:gpasswd -a 用户 组 /-d 把用户从组删除/ -r取消组的密码 /-A 给组指派管理员
• 初始群组:创建用户时被分配的群组;有效群组:创建文件时,文件的所属群组
• 切换有效群组:newgrp 群组 - 用户身份切换:su -username//会暴露管理员密码
• sudo 参数 命令(输入当前用户密码,5分钟内不用验证) -h列出帮助信息/-l 列出当前用户可执行的命令/-u 用户名或username 以指定身份执行命令/ -k 清空密码有效时间/-b在后台执行命令/-p 更改询问密码的提示语
• 普通用户使用sudo命令需要在/etc/sudoers中配置:谁可以用 允许使用的主机=(以谁的身份)可执行的命令表,例如:
test ALL=(ALL) ALL 表示test可在全部主机以所有人的身份使用全部命令;或者把用户加入wheel群组:1.visudo 去掉%wheel的注释符号“#” ,2.使用命令 usermod –G wheel user3 - 批量创建用户:newusers userlist.txt创建包含用户信息的文件
用户名❌UID:GID:用户说明:用户的家目录:所用SHELL - 批量改用户密码:chpasswd
• cat 密码文件 | chpasswd//密码文件内容为:用户名:密码