目录
用户与组概念
1.用户
在信息时代,账号是每个人都离不开的东西,每个人都会注册自己的微信,支付宝等账号。而Linux系统作为一个多用户,多任务的系统,用户也是必不可少的一部分。通过建立不同权限的账户,我们可以合理控制系统的资源,拥有自己的私人空间。
在Linux系统中,有以下三种类型的用户:
- root用户:享有最高权限,UID为0
- 系统用户:无法登录系统,主要支持系统服务,UID为1~999(最新版本,红帽7以前到499)
- 普通用户:具有权限限制,日常使用,UID为1000~65535
如果想显示用户信息可以使用以下方式:
id //显示当前已登录用户信息
id 用户名 //其他用户信息
ls -l 文件名 //可以查看文件所属用户,第三列
ps -au //查看进程,a查看所有进程,u显示与进程关联用户(第一列)
所有用户详细信息均存储于/etc/passwd中 :
如图所示,以冒号分割的分别是:用户名,密码(加密),UID,GID,注释,用户主目录,默认的bash。
2.组
在生活中最常见的现象就是分组,例如分组讨论,向同组人分配一个课题等。Linux中亦是如此,将多个用户分到同一组中,那么这个组就可以向组内成员同时授予文件的访问权限,这是一个非常有用的方式,你完全可以想象成千上万的用户需要你赋予他们权限,如果没有组,那么是多么绝望!
因此在你创建用户时,系统会默认创建一个同名的组,将用户放入组中。
而组的信息则保存在/etc/group中:
从左至右分别是:组名,组密码(加密),组id
主要组与补充组
对于每个用户,他只有一个主要组(创建时产生),但是他可以存在多个补充组,在日常使用中,我们就是通过添加补充组来授予文件权限。
使用id命令之后,所产生的第一个组是主要组,后续皆为补充组。
切换用户
有时候你会发现因为权限原因,而无法执行一些操作,这是你可以尝试切换其他用户以得到权限,通常都是切换到管理员用户,因为它具有最高权限。切换命令有以下方式。
命令 | su 用户名(没有则默认为管理员) | su - 用户名(没有则默认为管理员) | sudo |
成为新用户 | 是 | 是 | 依据命令 |
环境 | 当前用户 | 新用户 | 当前用户 |
密码 | 新用户 | 新用户 | 当前用户 |
特权 | 新用户 | 新用户 | 根据配置 |
其中sudo -i命令一般用于当前用户使用管理员权限。
sudo后也可跟命令,区别是使用管理员权限执行。
sudo的配置文件为/etc/sudoers
管理用户
1.添加与修改用户
useradd 用户名 //添加用户
usermod 选项 用户名 //修改用户
这俩个命令选项作用差不多:
选项 | 作用 |
-a | 和-G一起使用,将补充组添加到用户组集合之中 |
-c | 添加/修改注释 |
-d | 为用户账户指定一个主目录 |
-g | 为用户账户指定一个主要组 |
-G | 为用户账户指定补充次要组 |
-L | 锁定用户组 |
-m | 移动主目录,与-d搭配使用 |
-s | 为用户指定shell |
-U | 解锁用户组 |
不同:
useradd -u UID 用户名 //指定UID
passwd 用户名 //设置密码,否则无法登录
2.删除用户
userdel 用户名 //会保留用户目录,不推荐
userdel -r 用户名 //推荐
管理组
1.添加组
groupadd 组名
groupadd -g GID 组名 //指定GID
2.删除组
groupdel 组名
注:如果此组是现有用户的主要组,那么无法删除。
3.修改组
usermod 选项 组名
选项 | 作用 |
-n 新组名 旧组名 | 更改组名 |
-g 新GID 旧GID | 更改GID |
管理密码
密码保存在/etc/shadow中,由专门的加密措施加密。
从左到右:用户名,加密密码,上次更改密码据1970-01-01天数,可以修改密码最小等待天数,密码过期需要的时间,过期前警告天数,密码过期后锁定前可以无活动天数, 密码到期时间据1970-01-01天数,保留未来使用。其中空代表永远。
chage 选项 用户 //管理上述内容
选项 | 作用 |
-m 时间 用户 | 可以修改密码最小等待天数 |
-M 时间 用户 | 密码过期需要的时间 |
-W 时间 用户 | 过期前警告天数 |
-I 时间 用户 | 密码过期后锁定前可以无活动天数 |
-E 时间 用户 | 时间过后账户过期 |
-d 0 用户 | 下一次登陆时修改密码 |