Linux中的用户和组相关概念:
用户(user):
Linux是一个多用户、多任务的操作系统,任何一个想要访问/使用系统资源的用户都要先像Linux的超级管理员申请一个账号,然后以这个账号登陆到Linux系统中使用系统资源。
Linux中的超级管理员(root),拥有对系统资源的最高权限,在日常企业的服务器中,不建议使用此账户以免造成系统紊乱,误操作等,导致服务器瘫痪,数据丢失等严重问题,根据不同的工作需要,我们可以创建不同的系统用户,给予他们不同的权限来执行各项工作内容。
用户组 (group):
在Linux系统中,不同的用户可以拥有不同的权限来操作系统的资源,而用户组这是具有某些相同权限用户的集合,在Linux系统中,每一个用户都至少属于一个用户组。
创建用户时,如果没有指定用户属于哪一个用户组,这系统会默认为该用户创建一个与该用户同名的用户组,并且把用户加到这个用户组中。
用户主目录(home directory):
在Linux系统中,每一个新建的用户,都会在home下为其创建一个目录,当用户登陆时,默认进入到这个目录下,这个目录就是用户的主目录。
使用 cd ~ 命令,可以快速切换到用户的home目录下。
用户相关指令:
- useradd [参数] 用户名 // 创建一个指定用户名的用户
常用参数:
(1) -g 用户组名 // 创建用户的同时,为其指定要添加到哪个用户组中去。
(2) -d 家目录名 // 创建用户的同时,为其指定家目录的位置。- passwd 用户名 // 为用户设置或修改密码,密码过于简单时,会有提示,可忽略
- userdel 用户名 // 删除指定用户,默认不会删除用户的home目录,若要删除用户的home目录,则需要加参数 -r。
- id 用户名 //查询指定用户信息,可返回 用户 id :uid 用户所在组 id: gid 和所在组名称: group
- usermod [参数] 用户名 // 修改用户信息
常用参数:
(1) -d 家目录: // 修改用户的home目录
(2) -g 用户组名 //修改用户的用户组- su - 用户名 //切换用户,从高权限用户切换到低权限用户时,不需要提供密码,否则需要提供密码。
- whoami //查看当前用户名,如果执行过切换,则显示的是切换后的用户名。
- who am i //查看实际登陆的用户名,即如果发生过用户切换,返回切换前用户名。
用户组相关指令:
- groupadd 用户组名 // 新建用户组
- groupdel 用户组名 // 删除用户组
用户和用户组相关文件:
Linux中一切都是以文件的形式来管理的,所以,用户和用户组也有着与其对应的文件。
1. /etc/passwd:
用户的配置文件,文件中存储着所有用户相关的各种信息:
在终端可以使用 cat /etc/passwd 查看该文件:
每一行数据代表着一个用户,其具体含义:
用户名:口令(加密的值):用户标识号:组标识号:描述:主目录:登陆shell
2. /etc/shadow:
用户口令配置文件:
与passwd文件类似,每一行代表一个用户,具体含义:
用户名:口令(加密值):上次修改时间:最小时间间隔:最大时间间隔:警告时间:不活动时间:失效时间:标识
3. /etc/group:
用户组配置文件,记录着系统中所有用户组的信息:
每一行代表一个用户组,具体含义:
组名:口令:组标示号:组内用户列表(全部为空)
Linux中权限说明:
一 在Linux中每个文件或目录,都有着具体的权限分配。
Linux中,每个文件或目录都有三个属性:
1. 所有者:用来标识该文件或目录属于哪个用户,默认文件的创建者为文件的所有者。
2. 所属组: 用来标识该文件或目录属于哪个组,默认为文件创建者所在的组。
3. 其他组: 除了文件所在组以外的用户组。
因此,在权限分配上,可以根据着三个属性来分别给与不同的用户,不同组内 用户不同的权限,从而达到权限管理的目的。
二 在Linux中,每个文件的权限类型可分为3种:
1. 可读权限( r): 可以对文件进行读取,查看的权限。
2. 可写权限(w):可以修改文件内容,但是不一定可以修改文件内容,只有在对文件所在的目录有写权限时,才可以删除文件或者子目录。
3. 可执行权限(x);可以执行文件的权限。
三 查看文件或目录的权限:
ls -l //以列表的形式查看目录下的文件:
返回结果中的前10位,标识了改文件或目录的权限信息。(-表示无权限)
- rw- r-- r–
文件类型 所有者 所属组 其他组
第一位表示文件的类型,常见的值有:
1. - 普通文件
2. d 目录
2、3、4位 表示文件/目录的所有者对该文件/目录的权限
5、6、7位 表示文件/目录的所在组用户对该文件/目录的权限
8、9、10位 表示其他组用户对该文件/目录的权限
四 修改文件的所有者,所在组:
1. 修改文件的所有者:
chown 用户名 文件/目录名 // 变更文件的 owner ,-R 表示递归将目录下所有文件/子目录的owner都变更为指定用户。
2. 修改文件的所在组:
chgrp 组名 文件/目录名 // 变更文件的所在组, -R 表示递归将目录下所有文件/子目录的所在组都变更为指定组。
3. 同时修改文件的所有者和所在组:
chown 所在组:所有者 文件名/目录名
五 修改文件的权限
修改文件的权限使用chmod命令,chmod命令常用方式如下:
1. chmod u+/-/= 权限值 g+/-/= 权限值 o+/-/= 权限值 文件/目录名
+ 表示在原有权限基础上追加权限
-表示在原有权限基础上移除权限
=表示重新把权限赋值,原有权限会被覆盖
u 表示给所有者赋权
g 表示给所在组赋权
o 表示给其他组赋权
使用时若不指定 u/g/o 则默认为 user,group, other group同时变更权限。
2. 在Linux种文件的权限也可以用数字来表示:
r = 4;w=2;x=1
使用chmod时,可以直接以三位数字来表示文件的权限,例如:
变更 文件test.sh 的权限,所有者: rwx 所在组: rw- 其他组: r–
rwx = 4+2+1 = 7;
rw- = 4+2+0 = 6;
r-- = 4+0+0 = 4;
执行 chmod 764 test.sh, 则可以完成对文件的权限修改