Linux用户与权限管理(一)
Linux用户与权限管理
目录
一、Linux用户介绍
Linux用户类型分为三类:超级管理员用户、系统用户和普通用户超级管理员用户(root用户)。
超级管理员用户(root用户):UID为0,具有一切权限,可以操作系统中的所有资源。Root用户可以进行基础的文件操作及特殊的系统管理,可以修改系统中的任何文件。
系统用户UID 为 1~999: Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会有独立的系统用户负责运行,进而有效控制被破坏围。
普通用户:UID 从 1000开始:是由管理员创建的用于日常工作的用户,能够使用Linux的大部分资源,一些特定的权限受到控制。用户只对自己的目录有写权限,读写权限受一定的限制,有效保证了系统安全性。
二、用户和组相关文件
/etc/passwd 文件,是用户配置文件,存储了系统中所有用户的基本信息,并且所有用户都可以读取此文件 内容。文件内数据格式如下
用户名:密码:UID(用户ID):GID(组ID):描述性信息:主目录:默认Shell 密码字段的"x"表示此用户设有密码,但不是真正的密码,真正的密码保存在 /etc/shadow 文件中
/etc/shadow文件,用于存储 Linux系统中用户的密码信息,又称为“影子文件”。由于/etc/passwd 文件允许所有用户读取,易导致用户密码泄露,因此 Linux 系统将用户的密码信息从 /etc/passwd 文件中分离出来,并单独放到了此文件中。/etc/shadow 文件只有 root用户拥有读权限,其他用户没有任何权限,这样就保证了用户密码的安全性。文件内数据格式如下
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数: 密码过期后的宽限时间:账号失效时间:保留字段
/etc/group文件,存放用户组的信息,此文件的格式也类似于/etc/passwd文件,由冒号(:)隔开若干个字 段,这些字段有:
组名:口令:组标识号:组内用户列表
三、用户和组管理命令
1. whoami
whoami
查看当前登录用户名
2.id
id 用户名
显示用户的ID,以及所属群组的ID
3.sudo
- sudo 以管理员身份执行命令,普通用户默认无法使用sudo命令,需要将用户添加到wheel组当中
4.su
- su - 用户名 改变当前用户,比如用了su - root之后,下面所有的命令就可以不用打sudo了,因为当前用户已经是管理员root了。注意:从 root用户切换到普通用户时不需要输入密码,而从普通用户切换成root用户需要进行验证。
5.useradd
useradd:创建新的用户
格式:useradd [选项] 用户
-
-u
指定该用户的默认 UID
-
-g
指定一个初始的用户基本组
6.passwd
passwd:修改用户密码、过期时间、认证信息等
格式:passwd [选项] [用户名]
-
-l
锁定用户,禁止其登录
-
-u
解除锁定,允许用户登录
-
-e
强制用户在下次登录时修改密码
7.userdel
userdel:删除用户
userdel可删除用户帐号与相关的文件。若不加参数,则仅删除用户帐号,而不删除相关文件。
userdel [选项] 用户名
需要先删除tom组下的用户jack
-r
同时删除用户及用户家目录
8.usermod
usermod:修改用户的属性
-
格式:
usermod [选项] 用户名
-
-g
修改用户的基本组
-
-G
修改用户的附加组
-
-u
修改用户的 UID
9.chage
chage:修改帐号和密码的有效期限
格式:chage [选项] 用户名
-M
密码保持有效的最大天数
-W
用户密码到期前多少天开始提醒
10.groupadd
groupadd:创建一个组
- 格式:
groupadd [选项] 组名
11.groupmod
groupmod:修改用户组的属性
-
格式:
groupmod [选项] 组名
-
-g
为用户组指定新的GID
-
-n
为用户组改名
-
例如:要将系统中已经存在的组class2组名修改为class1、组ID为1112,可执行命令:
groupmod -g 1112 -n class1 class2
12.gpasswd
gpasswd:将用户加入到某个组或从某个组移除
格式:gpasswd [选项] 用户名 组名
-
-a
将用户加入到组中
-
-d
将用户从组中移除
13.groupdel
groupdel:删除用户组
格式:groupdel 用户组
- 例如要将系统中已经存在的组class1删除,可执行命令:
groupdel class1
14.groups
groups:查看某个用户属于哪些组
格式:groups 用户名
四、Linux权限管理
在Linux服务器上有严格的权限等级,如果权限过高导致误操作会增加服务器的风险。
Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。
1.U、G、O
Linux权限授权,默认是授权给三种角色,分别是user、group、other,Linux权限与用户之间的关联如下:
- U代表User,G代表Group,O代表Other;
- 每个文件的权限基于UGO进行设置;
- 权限三位一组(rwx),同时需授权给三种角色,UGO;
- 每个文件拥有一个所属用户和所属组,对应UGO,不属于该文件所属用户或所属组使用O来表示;
-rw-r--r--. 1 root root
如下图所示,-
表示当前是文件如果是d
则为目录rwx
表示文件所有者所拥有的权限即对应U,r--
表示的是组用户所拥有的权限即对应G,r–表示的是其他用户所拥有的权限对应O,.表示1
表示文件的链接数in连接的数量,root
所有者,root
所属组,后面依次为文件的大小,文件的最后修改时间,文件名。
每个文件的权限针对三类对象进行定义
u
表示它的所有者g
表示它的所有组,代表该组的所有成员o
表示其他(除所有者和所有组的用户)a
表示所有的用户
每个文件针对每类访问者定义了三种主要权限
r
表示读w
表示写(或修改)x
表示执行
2. 读、写、执行对于目录和文件的意义
权限 | 权限值 | 对文件的影响 | 对目录的影响 |
---|---|---|---|
r (读取) | 4 | 可读取文件内容 | 可列出目录内容 |
w (写入) | 2 | 可修改文件内容 | 可在目录中创建删除内容 |
x (执行) | 1 | 可作为命令执行 | 可访问目录内容(目录必须拥有 x 权限,否则无法查看其内容) |
- rwx r-- r–
rwx
421 7r- -
400 4r- -
400 4
3.chmod
chmod 更改文件的权限
格式:chmod [选项] 要分配的权限 文件或目录名
-
-R
改变目录及目录下的文件和目录的访问权限 -
示例:
chmod o=w test.txt
表示将其他人对test这个文件的权限设置为只可写入
-
chmod a=rwx test.txt
表示将所有用户对test.txt这个文件的权限设置为可读的可写的可执行的
-
chmod a-rwx test.txt
表示将所有用户对test.txt这个文件的权限都删除也可u-w
或o+r
-
在权限修改时我们也可以采用数字来代替 rwx
-
r ------------4
-
w ------------2
-
x ------------1
-
例如:
chmod 765 test.txt
表示授予所有者 rwx 权限,授予所属组 rw 权限,授予其他人 rx 权限
-
所有者 = r+w+x = 4+2+1 = 7
-
所属组 = r+w- = 4+2 = 6
-
其他人 = r+x = 4+1 = 5
4.chown
chown 更改文件和目录的所有者
格式:chown 选项 用户名 文件或目录名
-R
改变目录及目录下的文件和目录的所有者- 示例:
chown -R yh dir/test
将dir/test目录及其子目录的所有者改为yh用
5.chgrp
chgrp 更改文件和目录的所属组
格式:chgrp 选项 组名 文件或目录名
-R
改变目录及目录下的文件和目录的所属组- 示例:chgrp -R dir/test 将dir/test目录及其子目录的所属组改为yh用户
更多推荐
所有评论(0)