用户和组账户管理
用户管理
Linux操作系统是一个多用户操作系统,它允许多用户同时登录到系统上并使用资源。系统会根据账户来区分每个用户的文件,进程,任务和工作环境,使得每个用户工作都不受干扰。
用户账户分为普通用户账户和超级用户账户。
- 普通用户账户:普通用户在系统上的任务是进行普通操作
- 超级用户账户:管理员在系统上的任务是对普通用户和整个系统进行管理。对系统具有绝对的控制权,能够对系统进行一切操作。
账户的系统文件中保存着账户的基本信息,以及安全信息。
- /etc/passwd 每行定义一个用户账户,此文件对所有用户可读。每行账户包含如下信息,字段之间使用
:
分割:
用户名 口令 用户标示号 组标示号 注释 宿主目录 命令解释器 root x 0 0 RedHat Linux /root /bin/bash 用户名 口令被/etc/shadow文件保护 系统内唯一,root用户的UID为0,普通用户从1000开始,1-999是系统的标准账户 标注组号 注释信息 用户登录系统后所进入的目录 指定该用户使用的shell ,默认的是/bin/bash - /etc/shadow 为了增加系统的安全性,用户口令通常用shadow passwords保护。只有root可读。每行包含如下信息,字段之间使用
:
分割:
- /etc/passwd 每行定义一个用户账户,此文件对所有用户可读。每行账户包含如下信息,字段之间使用
用户名 | 口令 | 最后一次修改时间 | 最小时间间隔 | 最大时间间隔 | 警告时间 | 不活动时间 | 失效时间 | 标志 |
---|---|---|---|---|---|---|---|---|
root | 密码 | 14831 | 0 | 99999 | 7 | |||
用户名 | 加密后 | 从1970-1-1起,到用户最后一次更改口令的天数 | 从1970-1-1起,到用户可以更改口令的天数 | 从1970-1-1起,必须更改的口令天数 | 在口令过期之前几天通知 | 在用户口令过期后到禁用账户的天数 | 账户过期的时间 |
组管理
组账户
- 私有组:当创建一个用户时没有指定属于哪个组,Linux就会建立一个与用户同名的私有组,此私有组只含有该用户。
- 标准组:当创建一个用户时可以选定一个标准组,如果一个用户同时属于多个组时,登录后所属的组为主组,其他的为附加组。
/etc/group
将用户进行分组时Linux对用户进行管理及控制访问权限的一种手段。一个组中可以有多个用户,一个用户可以同时属于多个组。该文件对所有用户可读。
例如:组名 组口令 gid 组成员 root x 0 root 同样口令在gshadow文件下保存。
- /etc/gshadow
该文件用户定义用户组口令,组管理员等信息只有root用户可读。
相关命令介绍
- 管理账户 命令
命令 | 作用 |
---|---|
useradd 用户名 | 添加用户 |
useradd –u(UID号) | 指定UID |
useradd –p(口令) | 指定口令 |
useradd –g(分组) | 指定分组 |
useradd –s(SHELL) | 指定SHELL脚本 |
useradd –d(用户目录) | 指定用户目录 |
usermod –u(新UID) | 修改UID |
usermod –d(用户目录) | 修改用户工作目录 |
usermod –g(组名) | 修改用户所属组 |
usermod –s(SHELL) | 修改用户使用的SHELL |
usermod –p(新口令) | 修改用户口令 |
usermod –l(新登录名) | 修改用户登录名 |
usermod –L (锁定用户账号密码) | 锁定用户 |
usermod –U (解锁用户账号) | 解锁用户 |
userdel 用户名 (删除用户账号) | 删除用户 |
userdel –r | 删除账号时同时删除目录 |
- 组账户维护命令
命令 | 作用 |
---|---|
groupadd 组账户名 | 创建新组 |
groupadd –g | 指定组GID |
groupmod –g | 更改组的GID |
groupmod –n | 更改组账户名 |
groupdel 组账户名 | 删除指定组账户 |
- 口令维护命令
命令 | 作用 |
---|---|
passwd 用户账户名 | 设置用户口令 |
passwd –l 用户账户名 | 锁定用户账户 |
passwd –u 用户账户名 | 解锁用户账户 |
passwd –d 用户账户名 | 删除账户口令 |
gpasswd –a 用户账户名 组账户名 | 将指定用户添加到指定组 |
gpasswd –d 用户账户名 组账户名 | 将用户从指定组中删除 |
gpasswd –A 用户账户名 组账户名 | 将用户指定为组的管理员 |
- 用户和组状态命令
命令 | 作用 |
---|---|
su 用户名 | 切换用户账户 |
su -用户名 | 切换用户,加载配置文件 |
id 用户名 | 显示用户的UID,GID |
whoami | 显示当前用户名称 |
groups | 显示用户所属组 |
cat /etc/sudoers | 查看sudoers文件 |
系统权限
系统主要有三种基本权限:R 读权限,W 写权限,X 执行权限 。通过ls-l 文件名命令可以列出该文件的详细信息,其中包括了权限
显示的信息如下表:
文件类型 | 文件权限 | 目录子目录或文件的硬链接数 | 文件的属主 | 文件的所属组 | 文件的大小 | 文件的创建时间 | 文件的名称 |
---|---|---|---|---|---|---|---|
- | rw-r–r– | 1 | abner | users | 22 | 2015-05-25 18:25 | test.txt |
- 其中文件类型中,-代表普通文件,d代表目录,l代表链接文件。
文件权限分为3组,每组3个字符。分别是用户对该文件权限,同组用户对该文件权限,其他用户对该文件权限。权限记为rwx。可按照二进制数计数,x记为1,w记为2,r记为4。
更改权限的命令
chmod命令
- 所带参数:u ,代表属主, g 所属组用户 ,o 其他用户。a 所有用户
- 所进行操作:+ 加权限, – 减权限, =加权限同时将原有权限删除
- eg:chmod a+w test.txt:表示将test.txt文件所有用户都加上写权限。
- 也可以利用rwx的数字表示修改:chomd 777 test.txt,表示所有用户都有全部权限。
其他命令
命令 | 作用 |
---|---|
chown [ -R ] Owner [ :Group ] { File …Directory … } | 更改某个文文件夹的所属用户和所属组 |
Chgrp [-R] Group { File …Directory … } | 命令变更文件或目录所属群组 |
小结
本文简单讲解了Linux操作系统的用户管理和组管理的方法。对Linux对基本的权限做了一些介绍。并列出了用户操作,组操作,权限操作的基本命令
更详细的权限请参照Linux文件权限详解