第四节 账户和权限管理
一、用户账号和组账号
1.1、用户的分类
超级用户 :root用户史Linux操作系统中默认的超级用户账号,对本主机拥有最高权限,类似于windows操作系统中的Administrator。只有当进行系统管理、维护任务时,才建议使用root,用户登录系统,日常处理建议使用普通用户账号。
普通用户:普通用户账号需要由root用户或其他管理员用户创建,拥有的权限受到一定限制,一般只在用户自己的宿主目录中拥有完整权限。
程序用户:在安装Linux操作系统及部分应用程序时,会添加一些特定的地权限用户账号,这些用户一般不允许登录到系统,而仅用于维持系统或某个程序的正常运行,如 bin、daemon、ftp、mail等,
用户标识号:UID是一个数值,是Linux系统中唯一的用户标识,用于区别不同的用户,在系统内部管理进程和文件保护时使用UID字段。在Linux系统中,注册名和UID都可以用于标识用户,只不过对于系统来说UID更为重要。
root:拥有对系统的最高的管理权限UID=0
**普通用户 **:UID=1-999(centos7)/1-499(centos6)
1.2、组分类
组:基于某个特定连系将多个用户集合在一起,即构成一个用户组,表示该组内所有用户的账号称为组账号。
根据GID进行分类:
管理员组:root.GID=0
普通组:有分为,系统组组和普通组,
系统组:1-999(centos7)
普通组:1000+(centos7)
还有一种分类:
默认组:即创建一个用户则会根据与用户名相同名称创建一个组
基本组:随用户创建的组,组名同用户名,在passwd文件中该用户的gid就是他的基本组。每个用户账号至少属于一个组,这个组称为该用户的基本组。
附加组:除了基本以外,用户加入的其他组都是附加组,用户可以被附加组删除。
注:每个用户只能有一个基本组,可以有多个附加组
1.3、用户、组配置文件
用户账号文件/etc/passwd
文件位置和文件名 /etc/passwd
保存用户名称、宿主目录、登录Shell等基本信息
用户详细信息文件/etc/shadow
cd /etc/shadow
存放用户的用户名、密码、用户创建时间、用户到期时间
组账户信息:/etc/group
组详细文件信息 /etc/gshadow
二、 用户和用户组管理命令
2.1、chage 权限修改命令
chage 用来修改账号和密码的有些期限,针对目前系统已经存在的用户
-m:密码可更改的最小天数。
-w:用户密码到期前,提前收到警告信息的天数
-E:账号到期的日期。
-d:上一次更改的日期
-i:停滞时间。过期后的可用期限。
-l:列出当前的设置。
/etc/shadow和chage控制命令的关系
第三个字段为:密码最后一次修改的时间(chage -d)
第四个字段为:密码最小修改间隔时问( chage -m)
第五个字段为:密码的有效期( chage -M)
第六个宁段为:密码需要变更前的警告天数(chage -w)
第七个宁段为:密码过期后的宽限天数( chage -I)
第八个字段为:账号失效时间(chage -E)
2.2、useradd 添加新用户
useradd
-u:指定用户的UID好,要求UID唯一
-d:指定用户的宿主目录位置(与M一起使用无效)
-e:指定用户的账户失效时间,可使用 2022-5-16的日期格式
-g:指定用户的基本组名
-G:指定用户的附加组名
-M:不建立宿主目录,即使用/etc/login.defs系统配置中已设定建立宿主目录
-s:指定用户的登录Shell环境
// 添加一个新的用户账号后,useradd命令会在该用户的宿主目录中建立一些初始配置文件。这些文件来自于账号模板目录/etc/skel/,基本上都是隐藏文件,较常用的初始配置文件包括“.bash_logout”、“.bash_profile”和“.bashrc”。其中,".bash_profile"文件中的命令将在该用户每次登录时被执行:“.bashrc”文件中的命令会在每次加载“/bin/Bash”程序(当然也包括登陆系统)时执行;而“.bash_logout”文件中的命令将在用户每次退出登录时执行。
2.3、passwd命令
passwd
-d:清空指定用户的密码,仅使用用户名登录系统
-l:锁定用户账户
-S:查看用户账户的状态(是否被锁定)
-u:解锁用户账户
//为了方便系统管理,passwd命令提供了--stdin选项,用于批量给用户设置初始密码。例:echo "123" | passwd --stdin setting
2.4、usermod 修改用户
usermod
-l:更改用户账号的登录名称
-L:锁定用户账户
-U:解锁用户账户
-u:修改用户的UID
-d:修改用户的宿主目录位置
-e:修改用户的账户失效时间
-g:修改用户的基本组名
-G:修改用户的附加组名
-s:指定用户的登录Shell
2.5、 userdel 删除用户
userdel 用户名
-r:连用户的宿主目录一起删除
2.6、 groupadd 添加组账号
groupadd
-g 指定组账号
2.7、gpasswd 组密码
gpasswd
-a 添加用户到组
-d 从组中删除用户
-A 指定管理员
-M 指定组成员
-r 删除组密码
-R 限制用户登入组,只有组中的成员才可以用newgrp加入组
2.8、groupdel 删除组
groupdel 组账号
例:groupdel test
2.9、groups 查询组成员
groups 组名
例:groups test
2.10、finger 查询组详细信息
finger 组名
例:finger test
2.11、w、who、users 查询已登录到主机的用户信息
w查询用户近期登录信息
的
user 登录用户名
TTY 登录后系统分配的终端号
From 远程主机名,即从哪登录的
login@ 登录时间
IDLE 用户空闲时间。这个时计时器,一旦用户执行任何操作,该计时器会被重置
JCPU 和终端连接的所有进程占用时间,包括当前正在运行的后台作用占用时间
PCPU 当前进程所占用时间
WHAT 当前正在运行进程的命令行
三、权限管理
3.1、文件、目录的权限
访问权限
读取r:允许查看文件内容、显示目录列表
写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录
可执行x:允许运行程序、切换目录
归属(所有权)
属主:拥有该文件或目录的用户账号
属组:拥有该文件或目录的组账号
查看目录和文件的属性
如“lrwxrwxrwx.”和"-rw-r–r–"。权限字段由四部分组成,各组的含义如下所述。
第1字符:表示该文件的类型,可以是d(目录)、b(块设备文件)、c(字符设备文件)、“-”(普通文件)、字母“1”(链接文件)等。
第2~4个字符:表示该文件的属主用户(user)对该文件的访问权限。
第5~7个字符:表示 该文件的属组内各成员用户对该文件的访问权限
第8~10个字符:表示其他任何用户对该文件的访问权限。
第11个字符:这里的“。”于SELinnux有关。
上述格式中,字符组合“【ugoa】【±=】【rwx】”或数字组合的形式表示要设置的权限模式。
“t”就是粘着位t(有的资料中文也称为粘滞位),是Linux特殊权限中的第三个(另外两个是SetUID和SetGID),定义为:权限为777的目录设置粘着位t以后,具有写权限每个用户都可以在目录下创建文件,不同的是每个用户只能删除自己是所有者的文件,也就是说只能删除自己创建的文件。
3.2、 umask 权限掩码
umask作用
控制新建的文件或者目录的权限
默认权限去除umask的权限为新建的文件或者目录的权限
umask设置:umask 022
umask查看:umask
3.3、chmod 设置目录与文件权限
chmod 修改文件权限有两种使用格式:字母法与数字法。
字母法:chmod u/g/o/a +/-/= rwx(number) 文件
u user 表示该文件的所有者
g group 表示与该文件的所有者属于同一组者,即用户组
o other 表示其他以外的人
a all 表示这三者皆是
= 设置权限
- 撤销权限
+ 添加权限
3.4、chown 修改目录与文件归属
chown 选项 user[:group] 文件名
user : 新的文件拥有者的使用者 ID
group : 新的文件拥有者的使用者组(group)
-c : 显示更改的部分的信息
-f : 忽略错误信息
-h :修复符号链接
-v : 显示详细的处理信息
-R : 处理指定目录以及其子目录下的所有文件
--help : 显示辅助说明
--version : 显示版本