找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 581|回复: 0

Linux用户权限&特殊权限实战

[复制链接]

31

主题

20

回帖

279

积分

管理员

积分
279
发表于 2024-1-13 10:11:25 | 显示全部楼层 |阅读模式
1.1  Linux权限管理

Linux权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户或用户组可以对特定文件进行相应的操作。

Linux每个进程都是以某个用户身份运行,进程的权限与该用户的权限一样,用户的权限越大,则进程拥有的权限就越大。

Lnux中有的文件及文件夹都有至少权限三种权限,常见的权限如表5-1所示:

图片2.png

表5-1 Linux 文件及文件及权限

Linux权限授权,默认是授权给三种角色,分别是user、group、other,Linux权限与用户之间的关联如下:

  • U代表User,G代表Group,O代表Other;
  • 每个文件的权限基于UGO进行设置;
  • 权限三位一组(rwx),同时需授权给三种角色,UGO;
  • 每个文件拥有一个所属用户和所属组,对应UGO,不属于该文件所属用户或所属组使用O来表示;

在Linux系统中,可以通过ls –l查看jfedu.net目录的详细属性,如图5-1所示:

drwxrwxr-x          2         jfedu1 jfedu1         4096         Dec 10 01:36                 jfedu.net
图5-1 Linux jfedu.net目录详细属性

图片3.png

jfedu.net目录属性参数详解如下:

  • d表示目录,同一位置如果为-则表示普通文件;
  • rwxrwxr-x 表示三种角色的权限,每三位为一种角色,依次为u,g,o权限,如上则表示user的权限为rwx,group的权限为rwx,other的权限为r-x;
  • 2表示文件夹的链接数量,可理解为该目录下子目录的数量;
  • 从左到右,第一个jfedu1表示该用户名,第二个jfedu1则为组名,其他人角色默认不显示;
  • 4096表示该文件夹占据的字节数;
  • Dec 10 01:36 表示文件创建或者修改的时间;
  • Jfedu.net 为目录的名,或者文件名。



1.2  
Chown属主及属组

修改某个用户、组对文件夹的属主及属组,用命令chown实现,案例演示如下:

(1) 修改jfedu.net文件夹所属的用户为root,其中-R参数表示递归处理所有的文件及子目录。
chown -R  root  jfedu.net

(2) 修改jfedu.net文件夹所属的组为root。
chown  -R  :root  jfedu.net或者chgrp  –R  root  jfedu.net

(3) 修改jfedu.net文件夹所属的用户为root,组也为root。
chown  -R  root:root  jfedu.net


1.3  Chmod用户及组权限

修改某个用户、组对文件夹的权限,用命令chmod实现,其中以代指ugo,、-、=代表加入、删除和等于对应权限,具体案例如下:

(1) 授予用户对jfedu.net目录拥有rwx权限
chmod  –R  u+rwx  jfedu.net

(2) 授予组对jfedu.net目录拥有rwx权限
chmod  –R  g+rwx  jfedu.net

(3) 授予用户、组、其他人对jfedu.net目录拥有rwx权限
chmod  –R  u+rwx,g+rwx,o+rwx  jfedu.net

(4) 撤销用户对jfedu.net目录拥有w权限
chmod  –R  u-w  jfedu.net

(5) 撤销用户、组、其他人对jfedu.net目录拥有x权限
chmod  –R  u-x,g-x,o-x  jfedu.net

(6) 授予用户、组、其他人对jfedu.net目录只有rx权限
chmod  –R  u=rx,g=rx,o=rx  jfedu.net


1.4  Chmod二进制权限

Linux权限默认使用rwx来表示,为了更简化在系统中对权限进行配置和修改,Linux权限引入二进制表示方法,如下代码:

Linux权限可以将rwx用二进制来表示,其中有权限用1表示,没有权限用0表示;
Linux权限用二进制显示如下:
rwx=111
r-x=101
rw-=110
r--=100
依次类推,转化为十进制,对应十进制结果显示如下:
rwx=111=4+2+1=7
r-x=101=4+0+1=5
rw-=110=4+4+0=6
r--=100=4+0+0=4
得出结论,用r=4,w=2,x=1来表示权限。

使用二进制方式来修改权限案例演示如下,其中默认jfedu.net目录权限为755:

(1) 授予用户对jfedu.net目录拥有rwx权限
chmod  –R  755  jfedu.net
(2) 授予组对jfedu.net目录拥有rwx权限
chmod  –R  775  jfedu.net
(3) 授予用户、组、其他人对jfedu.net目录拥有rwx权限
chmod  –R  777  jfedu.net
(4) 撤销用户对jfedu.net目录拥有w权限
chmod  –R  555  jfedu.net
(5) 撤销用户、组、其他人对jfedu.net目录拥有x权限
chmod  –R  644  jfedu.net
(6) 授予用户、组、其他人对jfedu.net目录只有rx权限
chmod  –R  555  jfedu.net


1.5  Linux特殊权限及掩码

Linux权限除了常见的rwx权限之外,还有很多特殊的权限,细心的读者会发现,为什么Linux目录默认权限755,而文件默认权限为644呢,这是因为Linux权限掩码umask导致。

每个Linux终端都拥有一个umask属性,umask熟悉可以用来确定新建文件、目录的默认权限,默认系统权限掩码为022。在系统中每创建一个文件或者目录,文件默认权限是666,而目录权限则为777,权限对外开放比较大,所以设置了权限掩码之后,默认的文件和目录权限减去umask值才是真实的文件和目录的权限。

  • 对应目录权限为:777-022=755;
  • 对应文件权限为:666-022=644;
  • 执行umask命令可以查看当前默认的掩码,umask -S 023可以设置默认的权限掩码。

在Linux权限中,除了普通权限外,还有如下表5-2所示,三个特殊权限:

图片4.png

表5-2 Linux三种特殊权限

Linux中设置特殊权限方法如下:
  • 设置suid:                 chmod u+s jfedu.net
  • 设置sgid:                 chmod g+s jfedu.net
  • 设置sticky:         chmod o+t jfedu.net

特殊权限与设置普通权限一样,可以使用数字方式表示:
q SUID           =         4
q SGID           =         2
q Sticky         =         1

可以通过chmod 4755 jfedu.net对该目录授予特殊权限为s的权限,Linux系统中s权限的应用常见包括:su、passwd、sudo,如图5-2所示:

图片5.png

图5-2 Linux特殊权限s应用


懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表