2019-12-15 14:49:37 fyq2016 阅读数 7
  • Linux核心技能-用户及权限详解

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

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

Linux权限记录

Linux 权限

  • Linux下文件的权限类型一般包括读,写,执行。对应字母为 r、w、x。
  • Linux下权限的粒度有 拥有者 、群组 、其它组 三种。每个文件都可以针对三个粒度,设置不同的rwx(读写执行)权限。通常情况下,一个文件只能归属于一个用户和组, 如果其它的用户想有这个文件的权限,则可以将该用户加入具备权限的群组,一个用户可以同时归属于多个组。
  • Linux约定 r=4,w=2,x=1,因此 7 = 拥有所有权限

chmod abc file

a 是用户权限
b 是群组权限
c 是其它权限

chmod 777 file

意为让所有人拥有所有权限

2011-09-02 15:55:30 JIANDANQINXINILOVEYO 阅读数 216
  • Linux核心技能-用户及权限详解

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

    12479 人正在学习 去看看 马永亮
[size=large]接触linux一段时间了,有个权限问题让我一直郁闷。网上也没找到(估计是关键字不对),就是这个0777,最前面的0是什么意思。最近看到一本书(Linux与unix shell编程指南),终于找到答案了。
先说一下777什么意思吧,linux下文件权限分为所属用户权限、所属组权限和其他权限。
每一个又分为r(读)w(写)x(可执行)。如果你在linux中运行 ls -l就会显示权限如:[/size]

-rwxr-xr-x 1 root root 12 09-02 15:21 my_test.sh

[size=large]
“-”表示文件类型不用管。第一个rwx是所属用户的权限,表示所属用户(root)对本文件可读(r)可写(w)可执行(x)。第二个”-rx“表示属于同一组的用户的权限可读(r)不可写(-)可执行(x)。第三个表示其他用户的权限可读不可写可执行。
这些数字就分别对应针对不用用户的权限。第一个7表示第一个rwx,当然第二个就表示第二个,第三个就表示第三个。

下面就说说7表示什么权限
7换成2进制就是 111,这样就对了,正好对应rwx。当然都知道1表示true,所以,7的权限就是rwx了,如果上面的my_test.sh改成777的话,ls -l 那就显示:[/size]

-rwxrwxrwx 1 root root 12 09-02 15:21 my_test.sh

[size=large]
反过来,你知道上面的my_test.sh 的权限用数字应该是什么呢,
应该是 111101101 = 755
[color=red]下面说一下最前面的那个0是什么意思:[/color]
0777前面的0原来是叫个suid和guid的东西。
suid意味着如果某个用户对属于自己的shell脚本设置了这种权限,那么其他用户在执行这一脚本时也会具有其属主的相应权限。
guid则表示执行相应脚本的用户将具有该文件所属用户组中用户的权限。
是不是不大明白呀,下面举个例子:[/size]

-rwxr-xr-x 1 root root 12 09-02 15:21 my_test.sh

[size=large]上面的mysql_test.sh文件权限是所属用户(root)是7,如果设置了suid,那么其他任何用户的权限都是7,如果设置了guid,那么任何用户的权限都是5。
如何设置suid和guid:
设置suid就是把0变为4,设置guid就把0变为2,如果都设置那就是6了
chmod 4777 mysql_test.sh
[/size]
2018-12-24 11:31:03 sigmarising 阅读数 48
  • Linux核心技能-用户及权限详解

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

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

Linux 权限解读

Linux 系统上对文件的权限有着严格的控制,用于如果相对某个文件执行某种操作,必须具有对应的权限方可执行成功。

Linux的文件权限有以下设定:

  • Linux 下文件的权限类型一般包括读、写、执行,对应字母为rwx
  • Linux 下权限的属组有:拥有者 、群组 、其它组,总共三种

如果我们要表示一个文件的所有权限详情,有两种方式:

  • 十位二进制表示法,(三个属组每个使用二进制位,再加一个最高位共十位),可简化为三位八进制形式
  • 十二位二进制表示法(十二个二进制位),可简化为四位八进制形式

1. 十位权限

-rw------- (600)    只有拥有者有读写权限
-rw-r--r-- (644)    只有拥有者有读写权限;而属组用户和其他用户只有读权限
-rwx------ (700)    只有拥有者有读、写、执行权限
-rwxr-xr-x (755)    拥有者有读、写、执行权限;而属组用户和其他用户只有读、执行权限
-rwx--x--x (711)    拥有者有读、写、执行权限;而属组用户和其他用户只有执行权限
-rw-rw-rw- (666)    所有用户都有文件读、写权限
-rwxrwxrwx (777)    所有用户都有读、写、执行权限

# 其中:- 代表无权限,r 代表读权限,w 代表写权限,x 代表执行权限

1.1 第一位:表示文件类型

d 代表的是目录(directroy)
- 代表的是文件(regular file)
s 代表的是套字文件(socket)
p 代表的管道文件(pipe)或命名管道文件(named pipe)
l 代表的是符号链接文件(symbolic link)
b 代表的是该文件是面向块的设备文件(block-oriented device file)
c 代表的是该文件是面向字符的设备文件(charcter-oriented device file)

1.2 后九位:不同属组的三种操作权限

Linux 权限总共有三个属组,这里给每个属组使用三个位置来定义三种操作权限,后九位每个位置的意义(代表某个属组的某个权限)都是固定的,可以用三位二进制数表示为:

r-- = 100
-w- = 010
--x = 001
--- = 000

转换成八进制数,r=4, w=2, x=1, -=0(数字设置权限:4代表读,2代表写,1代表执行),所以文件的权限可以表示为三位八进制数。

1.3 chmod 修改权限

可以使用八进制数字或者字母形式修改:

# 使所有用户获取 a.sh 全权限
chmod ugo+r a.sh 
chmod a+r a.sh

# u g o 代表不同的属组
# a 可以指代全部属组
# +- 用于增加删除 rwx 权限

# 复杂案例
chmod a+r,ug+w,o-w a.conf b.xml

2. 十二位权限(Linux附加权限)

Linux 除了设置正常的读写操作权限外,还有一类 Linxu 附加权限,包括:

  1. SET位权限 suid, sgid
  2. 粘滞位权限 sticky

2.1 SET位权限

suid/sgid 是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的。 一般用于给可执行的程序或脚本文件进行设置。

其中 suid 表示对属主用户增加SET位权限,sgid 表示对属组内用户增加SET位权限。执行文件被设置了 suidsgid 权限后,任何用户执行该文件时,将获得该文件属主、属组账号对应的身份。

不恰当地使用这些位可能使系统的安全遭到破坏。所以应该尽量避免使用SET位权限程序。

  • suid(set User ID,set UID):进程执行一个文件时通常保持进程拥有者的UID。如果设置了suid位,进程就获得了该文件拥有者的UID
  • sgid(set Group ID,set GID):进程就获得了进程组的UID

2.2 SET位权限表示形式(10位权限)

如果一个文件被设置了 suidsgid 位,会分别表现在所有者或同组用户的权限的可执行位上:

  • 如果文件设置了 suid,还设置了x,则相应的执行位表示为s(小写)
  • 如果文件设置了 suid,但没有设置x位,它将表示为S(大写)
-rwsr-xr-x    表示设置了suid,且拥有者有可执行权限
-rwSr--r--    表示suid被设置,但拥有者没有可执行权限
-rwxr-sr-x    表示sgid被设置,且群组用户有可执行权限
-rw-r-Sr--    表示sgid被设置,但群组用户没有可执行权限

2.3 SET位权限修改

SET位权限可以通过chmod命令设置,给文件加suidsgid的命令如下(类似于上面chmod赋予一般权限的命令):

chmod u+s filename 	# 设置suid位
chmod u-s filename 	# 去掉suid设置
chmod g+s filename 	# 设置sgid位
chmod g-s filename 	# 去掉sgid设置

2.4 粘滞位权限

粘滞位权限即sticky。一般用于为目录设置特殊的附加权限,当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据。

设置了粘滞位权限的目录,使用ls查看其属性时,其他用户权限处的x将变为t

2.5 粘滞位权限表示形式(10位权限)

一个文件或目录被设置了粘滞位权限,会表现在其他组用户的权限的可执行位上:

  • 如果文件设置了sticky,还设置了x,其他组用户的权限的可执行位为t(小写)
  • 如果文件设置了sticky,没有设置x位,它将表示为T(大写)

2.6 粘滞位权限修改

使用chmod命令设置目录权限时,+t-t权限模式可分别用于添加、移除粘滞位权限。

2.7 十二位的权限表示方法

附加权限除了用十位权限形式表示外,还可以用用十二位字符表示:

11 10 9 8 7 6 5 4 3 2 1 0
S  G  T r w x r w x r w x

在这十二位的每一位上都置值。如果有相应的权限则为1, 没有此权限则为0

-rw-r-sr-- 的值为: 0 1 0  1 1 0  1 0 0  1 0 0
-rwsr-xr-x 的值为: 1 0 0  1 1 1  1 0 1  1 0 1
-rwsr-sr-x 的值为: 1 1 0  1 1 1  1 0 1  1 0 1 
-rwsr-sr-t 的值为: 1 1 1  1 1 1  1 0 1  1 0 1

如果将则前三位SGT也转换成一个二进制数,则:

  • suid 的八进制数字是4
  • sgid 的代表数字是 2
  • sticky 位代表数字是1

十二位权限便可以转化为4个八进制数。


假设 netlogin 是 root 用户创建的一个上网认证程序,如果其他用户要上网也要用到这个程序,
那就需要 root 用户运行 chmod 755 netlogin 命令,使其他用户也能运行 netlogin。

但假如 netlogin 执行时需要访问一些只有 root 用户才有权访问的文件,
那么其他用户执行 netlogin 时可能因为权限不够还是不能上网。

这种情况下,就可以用 chmod 4755 netlogin,
设置其他用户在执行 netlogin 也有 root 用户的权限,从而顺利上网。

参考链接 - Linux权限详解(chmod、600、644、666、700、711、755、777、4755、6755、7755)

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

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

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

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用户
2015-12-06 19:27:57 u010839779 阅读数 1790
  • Linux核心技能-用户及权限详解

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

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

一、先用ll命令看看linux下的每个目录的详情:


每个目录或者文件详情最左端都会有10个字母,我们将10个字母划分为如上图的4个小块来看:

上图1:即左数第一个字母,表示该文件性质,-表示文件  d表示目录  l表示软链接 等

上图的2、3、4都是文件目录权限的表示:2、3、4分别都是rwx的顺序排列。2表示该文件的所属者拥有的权限   3表示该文件所属者的所属组的权限  4表示该文件其它用户的操作权限. r表示读  w表示写  x表示执行  -表示没有对应的权限。

上图5:文件目录的所属者

上图6:文件目录的所属组

后面依次是文件的大小、最后修改日期、文件名等。


二、文件目录权限管理

简单理解linux文件、目录权限管理:

权限管理命令名称:chmod

命令英文原意: change the permissions mode of a file

命令所在路径:/bin/chmod

执行权限:所有用户  (文件目录权限修改只有root和所属者可以更改)

语法:

1、chmod [{ugoa}{+-=}{rwx}] [文件或者目录名]

2、chmod [权限值] [文件或者目录名]                         -- 实际中经常用,需要做到rwx和对应数字之间的转换

1和2语法均可以在chmod后加 -R 表示递归修改权限。例:chmod -R [mode=421] [文件或者目录名]

语法1参数详解:

ugoa:

u-文件或者目录所属者     g-文件或者目录所属组    o-其它用户   a-所有者(包括ugo)

+-=:

+ 表示对所修改文件或者目录追加ugoa角色之一或者多个追加权限

-  表示对所修改文件或者目录取消ugoa角色之一或者多个权限

表示对所修改文件或者目录赋予ugoa角色之一或者多个赋予权限

rwx:

file:r   可以使用cat、more、head、less、tail等读命令

 w  可以使用 vim、vi等编辑命令

 x   可以对script、command等使用执行命令

directory:

 r  可以使用ls、ll等查看命令

w  可以使用touch、mkdir、rmdir、mv 、rm等创建移动删除等命令

x   可以使用cd命令

语法1示例:

chmod u+x /temp  对根目录下的temp文件夹追加x执行命令

chmod u+x,g+w,g+x,o+r,o+w,o+x /temp  对根目录下的temp目录为所属者加X权限 为所属组追加wx权限 为其它用户追加 rwx权限 (同时对不同类型用户追加多个权限,中间用","分割开)

chmod a=rwx /temp  对根目录下的temp目录赋予所有人(ugo)读写执行权限  (注:=不管以前不同角色用户有什么鸟权限,将全部赋予等号后面的权限)

chmod u-x,g-w,o-w /temp  对根目录下的temp目录 对所属者取消x权限 对所属组取消w权限 其它用户取消w权限

chmod a-x /temp 对根目录下的temp目录取消所有人(ugo)的执行权限


语法2参数详解:

r的权限值:4     w的权限值:2     x的权限值:1   此三个值任意组合值范围都在0-7之间    0: 不给任何权限 1: x  2: w  3: wx   4: r  5: rx  6: rw  7: rwx

强烈建议都使用三位0-7之间的整数数字:如:777 、 765  542  等。赋予权限时,系统将会从右向左取权限值给对应的角色赋予权限。

语法2示例:

chmod 777 /temp   对根目录下的temp目录 给三种角色赋予所有权限

chmod  653 /temp    对根目录下的temp目录 给所属者rw权限   给所属组rx权限  给其它用户wx权限

chmod  760 /temp    对根目录下的temp目录 给所有者rwx权限  给所属组rw权限  给其它用户取消所有权限


最后示例:chmod -R 777 /temp 对/temp目录下的所有文件目录赋予各角色所有rwx权限   (linux区分大小写,不能将R写成r)


注:对某个文件目录是否有删除权限是看该角色是否对该文件目录所在的目录是否有w权限。而不是看该角色是否有对这个文件目录本身有w权限。


linux权限分配

阅读数 62

Linux权限详解

阅读数 460

Linux——Linux权限

阅读数 436

没有更多推荐了,返回首页