2010-10-15 00:21:00 xxdyynn163 阅读数 247
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12295 人正在学习 去看看 马永亮

1.1、文件目录权限

1.1.1、普通权限

d或- rwx rwx rwx 1 root root
d 目录   - 文件 拥有者权限 拥有者同组用户的权限 其它用户权限 硬链接数  1:没有   2:有一个  依次类推 文件或目录的所有者 组名

目录

r 可以列出该目录下的所有文件
w 可以在该目录下添加或删除一个文件
x 允许在该目录下查找,并能用cd命令转换工作目录

文件

r 对此文件具有可读权限
w 对此文件具有可写权限
x 将该文件作为一个程序执行

 

1.1.2、特殊权限

s权限 setuid 使普通用户在执行文件或程序时,拥有文件所有者的权限
  setgid 针对目录,任何用户在该目录下创建的文件的所有组的名字为此目录的所有组的名字
t权限   禁止删除的权限(目录或文件)

 

setuid setgid  
s s t
4 2 1

 

chmod 1777 目录或文件 1代表增加t权限
umask 0022 第一个0代表设置s、t权限

 

ls命令查看文件权限(展示结果)

-r-s --s --t
setuid setgid  
s只能在此位置 s只能在此位置 只能在此位置,只对other用户
2019-12-20 21:44:23 qq_27828281 阅读数 12
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12295 人正在学习 去看看 马永亮

 在渗透测试过程,经常发现当前用户不能访问(read/write/execute)他们没有权限访问的文件。但是,超级用户(root)可以访问系统所有文件。为了修改任何重要的配置或执行进一步的攻击,我们需要获得root访问权限。

  • 修改基本权限
    修改所有者和所属组为root:
chown root:root <filename>
chown root: <filename>

将文件所有者修改为root:

chown root <filename>

将文件的所属组修改为root:

chown :root <filename>

修改文件权限,4,2,1分别对应r(读),w(写),x(执行)。
给当前用户赋予读,写,执行权限:

chmod u+rwx

取消当前用户的读,写,执行权限:

chmod u-rwx

取消文件所属组的读,写,执行权限:

chmod g-rwx

关于文件权限的详细操作,可参考网上其他文章,这里就不详细介绍。下面主要介绍下setuid和setgid。

  • suid
     通过对可执行文件设置suid位,当文件执行时,会以设置suid位时用户的权限执行,而不是当前用户的权限。
    下面的示例代码setuid_demo.c输出可执行程序执行时的实际uid和有效uid:
#include <stdio.h>
#include<unistd.h>

int main() {
int real = getuid();
int euid = geteuid();
printf("The real UID = %d\n",real);
printf("The effective UID = %d\n",euid);
}

对源文件进行编译:

gcc -o setuid_demo setuid_demo.c

设置suid位:

chmod u+s setuid_demo
或者
chmod 4755 setuid_demo

在下图,setuid_demo和setuid_demo_no_suid的属主为root,使用低权限用户执行时,setuid_demo的有效uid为0,即此时程序拥有root的权限,setuid_demo_no_suid的实际uid和有效uid都为1000:
在这里插入图片描述

  • sgid
    通过对可执行程序设置sgid位,当程序执行时,有效的组id变成文件所属的组的id,而不是当前执行程序用户所属的组的id。
    下面源代setgid_demo.c会打印程序执行时的实际gid和有效gid:
#include <stdio.h>
#include<unistd.h>

int main() {
int real = getgid();
int egid = getegid();
printf("The real GID = %d\n",real);
printf("The effective GID = %d\n",egid);
}

编译程序:

gcc -o setgid_demo setgid_demo.c

设置gid位:

chmod g+s setgid_demo
 或 
chmod 2755 setgid_demo

在下图,setgid_demo和setgid_demo_no_sgid的属主为root,使用低权限用户执行时,setuid_demo的有效gid为0,即程序此时拥有root组的权限,setuid_demo_no_suid的实际gid和有效gid都为1000:
在这里插入图片描述

  • 粘滞位(Sticky bit)
     sticky位指定只有属主能够删除文件,同一组之间不能删除/修改其他用户的文件。
    设置sticky 位:
chmod +t <dirname>
或者chmod 1777 <dirname>

例如,/tmp目录就设置了sticky位:
在这里插入图片描述

2019-04-14 20:39:06 beautyrain_zhang 阅读数 154
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12295 人正在学习 去看看 马永亮

Linux权限管理

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

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

Linux 中所有的文件及文件夹都有至少权限三种权限

r(读取) 可读取文件内容 可列出目录内容

w(写入) 可修改文件内容 可在目录中创建删除内容

x(执行) 可作为命令执行 可访问目录内容

注:目录必须拥有 x 权限,否则无法查看其内容

每个文件的权限基于 UGO 进行设置;

权限三位一组(rwx),同时需授权给三种角色,UGO;

jfedu.net 目录的详细属性
Drwxrwxr -x 2 jfedu1 jfedu1 4096 Dec 10 01:36 jfedu.net

1、 d 表示目录,同一位置如果为-则表示普通文件;

2、 rwxrwxr-x 表示三种角色的权限,每三位为一种角色,依次为 u,g,o 权限,如上则表示 user 的权限为 rwx,group 的权限为 rwx,other 的权限为 r-x;

 3、2 表示文件夹的链接数量,可理解为该目录下子目录的数量;

 4、 从左到右,第一个 jfedu1 表示该用户名,第二个 jfedu1 则为组名,其他人角色默认不显示;

 5、4096 表示该文件夹占据的字节数;

 6、Dec 10 01:36 表示文件创建或者修改的时间;

 7、Jfedu.net 为目录的名,或者文件名

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+2+0=6

r–=100=4+0+0=4
得出结论,用r=4,w=2,x=1 来表示权限.
默认 jfedu.net 目录权限为755
(1)授予用户对jfedu.net目录拥有rwx权限
chomd -R 755 jfedu.net
(2)授予用组对jfedu.net目录拥有rwx权限
chomd -R 755 jfedu.net
(3)授予用户、组、其他人对jfedu.net目录拥有rwx权限
chomd -R 777 jfedu.net
(4)撤销用户对jfedu.net目录拥有w权限
chomd -R 555 jfedu.net

2018-09-14 10:53:39 qq_33330687 阅读数 431
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12295 人正在学习 去看看 马永亮

Linux权限详解

Linux文件

在linux中一切都是文件

Linux下,分为这么几种文件类型

  • d:目录directory
  • l:符号链接link
  • s:套接字socket
  • c:字符设备char
  • p:命名管道pipe
  • -:其他,不属于以上几类

文件访问方式

文件创建后,有三种访问方式

  • 读(read):显示内容
  • 写(write):编辑内容,删除文件
  • 执行(execute):执行文件

文件权限

针对用户,文件有三类权限

  • 创建人(user)权限:创建文件的人
  • 组(group)用户权限:和拥有者处于同一用户组的其他人
  • 其他(other)用户权限

这个时候就能举个例子

-rwxrwxwxr

共有十个字符,分为四个部分:

  • 第1个字符表示文件的类型:[-]表示普通文件
  • 第234字符表示创建人的权限:[wxr]表示可读,可写,可执行
  • 第567字符表示组用户权限:[wxr]表示可读,可写,可执行
  • 第890字符表示其他用户权限:[wxr]表示可读,可写, 可执行

如何改变用户权限

chmod指令可以

第一种:chmod 【who】【operator】【permission】 filename

[who]

  • u:创建人
  • g:组用户
  • o:其他用户
  • a:所有用户(all)

[operator]

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

[permission]

  • r:读
  • w:写
  • x:执行

例子:

给一个a.txt增加可读权限

chmod u+r a.txt u本用户 +增加权限 r可读权限

让a.txt不让其他用户修改

chmod go-w a.txt go其他用户,组用户,-删除权限 w可写权限

第二种方法:chmod 【mode】 filename

mode是一个3位八进制数:

  • 第一位表示创建者权限
  • 第二位表示组用户权限
  • 第三位表示其他用户权限

权限

  • 4 可读
  • 2 可写
  • 1 可执行

例子

授予全部本用户a.txt全部权限

chmod 700 a.txt

授予本用户读写,组用户可读,其他用户全部权限

chmod 647 a.txt

2017-04-27 10:06:56 www_xue_xi 阅读数 445
  • Linux核心技能-用户及权限详解

    Linux起源,Linux架构和Linux形成历史开始逐步讲解,让你彻彻底底了解Linux的诞生,之后介绍了Linux相关文化和核心组成结构,以及Linux常用命令和基本用法,课程由浅入深,讲授方法受到98%学员一致好评!

    12295 人正在学习 去看看 马永亮

    最近,项目对Linux文件目录有要求:业务用户及其启动进程能对指定目录drwx,其中有一个用户对该业务用户的目录中的一个子目录能够rwx,

但是对该子目录以上的其他目录不能进行读写操作。其实实现很简单,假设root是业务用户,test是受限用户,/test/t1是root的业务目录,/test/t1/t2

是test用户能够访问并进行操作的受限目录,那么只需要给/test一个701,给t1一个701,给/test/t1/t2一个700并将t2的属组及宿主改为test:test就能

保证root能对/test下任何文件及目录的绝对操作权限又能把test用户限制在/test/t1/t2中,test用户不能对/test或/test/t1进行读写操作。

    示例如下:

[root@oratest /]# ls -l
total 192
...
drwx-----x   3 root   root      4096 Apr 26 17:21 test
...
[root@oratest /]# 

[root@oratest test]# ls -l
total 4
drwx-----x 3 root root 4096 Apr 26 17:21 t1
[root@oratest test]# 

[root@oratest t1]# ls -l
total 4
-rw-r--r-- 1 root root    0 Apr 26 17:21 t
drwx------ 2 test test 4096 Apr 27 09:30 t2
[root@oratest t1]# 

[test@oratest ~]$ cd /test
[test@oratest test]$ ls
ls: .: Permission denied
[test@oratest test]$ cd t1
[test@oratest t1]$ ls
ls: .: Permission denied
[test@oratest t1]$ cd t2
[test@oratest t2]$ ls
1  b
[test@oratest t2]$ touch a
[test@oratest t2]$ ls
1  a  b
[test@oratest t2]$ 


Linux 权限解读

阅读数 46

Linux——Linux权限

阅读数 431

Linux 权限相关命令

阅读数 129

Linux 权限

博文 来自: wu_boy
没有更多推荐了,返回首页