Linux学习笔记(五)
Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统。
用户的账号一方面可以帮助系统管理员对使用系统的用户进行跟踪,并控制他们对系统资源的访问;另一方面也可以帮助用户组织文件,并为用户提供安全性保护。
每个用户账号都拥有一个唯一的用户名和各自的口令。
用户在登录时键入正确的用户名和口令后,就能够进入系统和自己的[^主目录]。
实现用户账号的管理,要完成的工作主要有如下几个方面:
- 用户账号的添加、删除与修改。
- 用户口令的管理。
- 用户组的管理。
Linux中的用户和用户组
Linux中用户分为三种:超级用户、普通用户和系统用户。
超级用户:又称root用户,每个Linux系统都必须有且只有一个,它拥有最高权限,可用删除终止任何程序,在安装时必须设置root账户和密码。另外,为了减少风险,要避免普通用户得到root用户权限。
普通用户:在系统安装后由超级用户创建。普通用户的权限相当有限,只能对自己拥有权限的文件或目录进行操作,也只能管理自己启动的进程。
系统用户:是与系统运行和系统提供的服务密切相关的用户,通常在安装相关的软件包时,自动创建并保持默认状态,系统用户是不能登录计算机的。
当用户被创建后,都拥有7项权限,它们由:
隔开,保存在 /etc/passwd 文件中。
打印第一条root用户权限信息来分析:
- root,用户名
- x,密码,是出于安全考虑而设置为 x,真正的密码经过MD5加密后保存在 /etc/shadow文件中
- 0:0,用户ID和用户组ID,用户ID是用户在Linux系统中唯一的用户标识,也交UID。超级用户的UID是0,系统用户的UID在 [0-1000),普通用户的UID大于等于1000;组ID,系统中每个用户属于某个组,组ID是Linux系统中每个组都拥有的唯一的数字标识。
- root,用户相关信息
- /root,用户主目录
- /bin/bash,用户登录环境(黑窗口),即用户登录后启动的Shell进程。
查看用户密码信息 vi /etc/shadow:
这个文件只有root用户才有权限查看和修改,普通用户是不能访问的,如果你当前是普通用户可通过 su - 来切换到root用户
这些 :分割的分别代表什么意思我就不写了,可用自行了解。
用户管理命令
- useradd, 添加新用户
- 增加用户账号就是在/etc/passwd文件中为新用户增加一条记录,同时更新其他系统文件如/etc/shadow, /etc/group等。
- userdel, 删除用户
- 如果一个用户的账号不再使用,可以从系统中删除。删除用户账号就是要将/etc/passwd等系统文件中的该用户记录删除,必要时还删除用户的主目录。
- usermod, 修改用户,修改用户账号就是根据实际情况更改用户的有关属性,如用户号、主目录、用户组、登录Shell等。
- passwd, 用户密码管理命令
大多数命令都有help选项。在不知道这个命令有什么选项时可以用 -h / --help 来查看详细说明
* passwd 命令修改密码时是直接覆盖原来的,不需要输入以前旧的密码,必须在root用户下操作。
也可用在useradd \<username\> 下指定 -p 选项直接添加密码
用户组管理命令
组是具有相同特性的用户集合,设置组的目的,是便于权限的统一组织和分配,对组操作等价于对组中的每个用户进行操作。组中的每个用户可用共享组中的资源。因此,只需要在组上设置对资源的访问权限,从而避免对每个成员的重复操作。但是要注意,组账户是不能原来登录计算机的。
组账户按性质分为系统组和私有组,系统组是安装Linux及部分服务程序时系统自动设置的组。私有组是系统安装完成后,有超级用户新建的组。超级用户可用根据需要向组中添加成员。另外,每当新建用户时,系统默认会创建一个与用户名完全相同的私有组。
同用户管理文件类似,组账户管理文件同样有两个,分别是组账户文件 /etc/group
文件和组密码(组影子)管理文件/etc/shadow
文件
执行 vi /etc/group 分析组账户文件信息:
- mail,组名称
- x, 组口令(密码),默认无密码
- 12,组ID
- postfix,用户列表,是组内所有成员的列表,成员之间用逗号隔开
执行 vi /etc/gshadow 分析组影子文件信息:
组影子文件中也包含四个字段,组名称,组口令,组管理员以及组内用户列表,通过设置组管理员,可以下放root权限,组管理员可用对组内的成员进行添加和删除。
- groupadd,用于新建组账户,该指令的执行将在 /etc/group文件和/etc/gshadow文件中分别增加一行记录。
- -g,使用-g选项,用于指定所创建组账户的组ID,不使用则分配默认组ID
- -r,使用-r选项,将创建系统组账户,他的组ID会小于1000
- groupmod,用于修改组信息
- groupdel,用于删除组
- 提示,在使用userdel命令删除用户时,与用户同名的私有组账户会被同时删除。
Linux文件和目录权限管理
Linux中的三种用户权限:
- Owner——文件的所有者,也是文件的创建者
- Group——文件的同组用户
- Others——其他用户
对于三种用户我们需要设置他们的读、写、可执行的权限,在Linux系统中有两种权限表示方案
chown命令
修改文件的所属用户和所属组
chown linux:root demo.txt
将demo.txt的用户所有者(owner)修改为linux用户,所属组修该为root组
chgrp命令
修改文件的所属组
chgrp root demo.txt
将demo.txt的文件所属组修改为root组
chmod命令
修改文件的权限
通过上面的两种权限表示法来进行修改
数字修改法:
- 格式: chmod abc 文件或目录
- a 表示owenr的权限
- b表示group的权限
- c表示others的权限
字母表示法:
- 格式: chmod {ugoa}{+-}{rwx} 文件或目录
- ugoa: 分别代表所有者、同组用户、其他用户、所有用户
- +-: 分别代表增加权限和删除权限
- rwx:分别代表可读、可写、可执行权限
[^主目录]: 也称家目录,root的家目录 /root , 普通用户的家目录 /home/username