1.什么是权限

权限主要用来约束用户能对系统所做的操作。或者说,权限是指某个特定的用户具有特定的系统资源使用权力。

2.为什么要有权限

因为系统中不可能只存在一个root用户,一定会有多个用户,为了保护每个登陆用户的隐私和工作环境,所以就有了权限。

3.权限与用户之间的关系

在Linux系统中,权限是用来定义用户能做什么,不能做什么。
比如:针对文件定义了三种身份,分别是属主(owner)、属组(group)、其他人(others)
而为每一种身份又对应三种权限,分别是可读(readable)、可写(writable)、可执行(excutable)
Owner身份:文件所有者,默认为文档的创建者
Group身份:与文件所有者同组的用户
Others身份:其他人,相对于所有者所在组
Root用户:超级用户,管理着普通用户,具有所有权限

当一个用户访问文件流程如下:
1.判断用户是否为文件所有者,如果是则按所有者的权限进行访问
2.判断用户是否为文件所有组成员,如果是则按组的权限进行访问
3.如果不是所有者,也不是该文件所属组,则按匿名权限进行访问

4.权限中的 rwx 分别代表什么含义

drwxr-xr-x

字母 含义 对应权限
r(read) 读取权限 4
w(write) 写入权限 2
x(execute) 执行权限 1
-(没有权限) 没有权限 0

读权限(r)

1.对于文件夹来说,读权限影响用户是否能够列出目录结构
2.对于文件来说,读权限影响用户是否可以查看文件内容
3.只能使用查看类命令cat、head、tail、less、more

写权限(w)

1.对文件夹来说,写权限影响用户是否可以在文件夹下“创建/删除/复制到/移动到”文档
2.对于文件来说,写权限影响用户是否可以编辑文件内容,使用vim编辑会提示权限拒绝, 但可强制保存,会覆盖文件的所有内容
3.使用echo命令重定向的方式可以往文件内写入数据,>>可以进行追加

执行权限(x)

1.只能进入目录
2.不能浏览、复制、移动、删除
3.如果普通用户需要执行文件,需要配合r权限

十位字符表示含义
第1位:表示文档类型,取值常见的有“d表示文件夹”、“-表示文件”、“l表示软链接”、“s表示套接字”等等
第2-4位:表示文档所有者的权限情况,第2位表示读权限的情况,取值有r、-;第3位表示写权限的情况,w表示可写,-表示不可写,第4位表示执行权限的情况,取值有x、-。
第5-7位:表示与所有者同在一个组的用户的权限情况,第5位表示读权限的情况,取值有r、-;第6位表示写权限的情况,w表示可写,-表示不可写,第7位表示执行权限的情况,取值有x、-。
第8-10位:表示除了上面的前2部分的用户之外的其他用户的权限情况,第8位表示读权限的情况,取值有r、-;第9位表示写权限的情况,w表示可写,-表示不可写,第10位表示执行权限的情况,取值有x、-。

Linux权限总结与注意事项

文件r权限, 只给用户查看,无其他操作
文件rw权限, 可以查看和编辑文件内容
文件rx权限, 允许查看和执行文件、但不能修改文件(脚本文件、命令文件)
文件rwx权限, 能读,能写,能执行,但不能删除,因为删除需要看上级目录的权限有没有w
目录rx权限, 允许浏览目录内文件以及子目录, 不允许在该目录下创建文件、删除文件
目录rw权限, 能查看目录,能往目录写入文件,但无法进入目录
文件的 x 权限小心给予,目录的 w 权限小心给予
文件通常设定的权限是644,目录设定的权限是755

5.修改权限、修改属主和属组

chmod: 变更权限

-R:以递归方式更改所有的文件及子目录
-f:去除大部份的错误信息
-v:为处理的所有文件显示诊断信息

操作对像

u:文件属主权限
g:同组用户权限
o:其它用户权限
a:所有用户(包括以上三种)

权限设定

+:增加权限
-:取消权限
=:唯一设定权限

权限类别

r 读权限
w 写权限
x 执行权限
X 表示只有当该档案是个子目录或者该档案已经被设定过为可执行。
s 文件属主和组id
i 给文件加锁,使其它用户无法访问

使用chmod设定权限

1.ugo

创建文件

[root@dmxsp ~]# touch dm

给所有用户添加读写执行权限

[root@dmxsp ~]# ll
-rw-r--r-- 1 root root 0 May 28 13:22 dm
[root@dmxsp ~]# chmod a=rwx dm
[root@dmxsp ~]# ll
-rwxrwxrwx 1 root root 0 May 28 13:22 dm

取消所有权限

[root@dmxsp ~]# ll
-rwxrwxrwx 1 root root 0 May 28 13:22 dm
[root@dmxsp ~]# chmod a=-rwx dm
[root@dmxsp ~]# ll
---------- 1 root root 0 May 28 13:22 dm

属主读写执行,属组读写,其他人无权限

[root@dmxsp ~]# ll
---------- 1 root root 0 May 28 13:22 dm
[root@dmxsp ~]# chmod u=rwx,g=rw,o=- dm
[root@dmxsp ~]# ll
-rwxrw---- 1 root root 0 May 28 13:22 dm

属主属组读写执行,其他人读权限

[root@dmxsp ~]# ll
-rwxrw---- 1 root root 0 May 28 13:22 dm
[root@dmxsp ~]# chmod ug=rwx,o=r dm
-rwxrwxr-- 1 root root 0 May 28 13:22 dm

2.number

创建目录

[root@dmxsp ~]# mkdir dm

修改目录允许所有人访问

[root@dmxsp ~]# ll
drwxr-xr-x 2 root root 6 May 28 13:51 dm
[root@dmxsp ~]# chmod 777 dm
[root@dmxsp ~]# ll
drwxrwxrwx 2 root root 6 May 28 13:51 dm

修改目录及子目录权限

[root@dmxsp ~]# chmod -R 777 dm/
chmod 777
chmod 666
chmod -R 644

chown: 变更属主和属组

-R:递归处理所有的文件及子目
chown -R dmxsp:仅变更属主
chown -R .dmxsp:仅变更属组
chown -R root.dmxsp:同时变更属主和属组

6.用户提权

1.提权分为两部分:一永久提权、二临时提权

永久提权

su:在普通用户状态下,使用su命令,输入root的密码后可以直接切换到root用户中

临时提权

sudo:将当前用户切换到超级用户下,然后以超级用户身份执行命令,执行完成后,直接退回到当前用户。具体工作过程如下:当用户执行sudo时,系统会主动寻找/etc/sudoers文件,判断该用户是否有执行sudo的权限。确认用户具有可执行sudo的权限后,让用户输入用户自己的密码确认。若密码输入成功,则开始执行sudo后续的命令

sudo配置文件语法

语法:user MACHINE=COMMANDS
用户 登录的主机=(可以变换的身份)可以执行的命令

2.su和su-的区别

su:使用root密码,切换到root用户,但是并没有转到root用户家目录下
su -:使用root密码,切换到root用户,并转到root用户的家目录下

3.sudo如何提权

检查用户能提权的命令

[root@dmxsp ~]# sudo -l
Matching Defaults entries for root on dmxsp:
!visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin, env_reset, env_keep=”COLORS DISPLAY HOSTNAME HISTSIZE
KDEDIR LS_COLORS”, env_keep+=”MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE”, env_keep+=”LC_COLLATE LC_IDENTIFICATION
LC_MEASUREMENT LC_MESSAGES”, env_keep+=”LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE”, env_keep+=”LC_TIME LC_ALL LANGUAGE
LINGUAS _XKB_CHARSET XAUTHORITY”, secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User root may run the following commands on dmxsp:
(ALL) ALL

使用sudo中自带的别名操作,将多个用户定义成一个组,这个组只有sudo认可

[root@dmxsp ~]# visudo #也可以使用vim /etc/sudoers来配置

1.使用sudo定义分组,这个系统group没什么关系

User_Alias OPS = dm,all
User_Alias DEV = cc,oo

2.定义可执行的命令组,便于后续调用

Cmnd_Alias NETWORKING = /sbin/ifconfig, /bin/ping
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/yum
Cmnd_Alias SERVICES = /sbin/service, /usr/bin/systemctl start
Cmnd_Alias STORAGE = /bin/mount, /bin/umount
Cmnd_Alias DELEGATING = /bin/chown, /bin/chmod, /bin/chgrp
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall
Cmnd_Alias Grant = /bin/rm, /bin/ls

3.使用sudo开始分配权限

OPS ALL=(ALL) NETWORKING,SOFTWARE,SERVICES,STORAGE,DELEGATING,PROCESSES
DEV ALL=(ALL) SOFTWARE,PROCESSES

4.检查sudo是否配置错误

[root@dmxsp ~]# visudo -c 
/etc/sudoers: parsed OK

作者 dmxsp

发表回复

您的电子邮箱地址不会被公开。