day10(权限)

一:文件权限

1.权限的概念

-rwxrw-r‐-1 root root 1213 Feb 2 09:39 abc

- 10个字符确定不同用户能对文件干什么

- 第一个字符代表文件(-)、目录(d),链接(l)

- 其余字符每3个一组(rwx),读(r)、写(w)、执行(x)

- 第一组rwx:文件所有者的权限是读、写和执行

- 第二组rw-:与文件所有者同一组的用户的权限是读、写但不能执行

- 第三组r--:不与文件所有者同组的其他用户的权限是读不能写和执行

也可用数字表示为:r=4,w=2,x=1  因此rwx=4+2+1=7

- 1 表示连接的文件数

- root 表示用户

- root表示用户所在的组

- 1213 表示文件大小(字节)

- Feb 2 09:39 表示最后修改日期

- abc 表示文件名


后三个有三个权限位(就是三个字符,r--或者rw-):
r:可读                         代号4
w:可写(修改)                  代号2
x:可执行(当成命令或者程序执行)   代号1

2.权限的归属

 u:代表自己

 g:代表组

 o:代表其他人

3.权限的设置  chmod

格式:chomd 数字 文件名称

chomd  664  6=4+2(r是4,w是2)

chmod u+r 文件  #自己添加一个可读权限

例题:545写出对应字母的权限
-r-xr--r--

 二:权限对⽂件or⽬录的意义

1.文件夹对文件权限的影响的三条结论

(1)目录下文件可读

         目录x权限的话,文件要有r'权限

(2)目录下文件可写

         目录须拥有可执行(x),文件可读权限(-r)

(3)目录下的文件可以被执行,

       目录必须拥有可执行权限,目录下文件拥有可执行的权限

总结:

首先需要对沿途的文件有-x权限,对目标文件要有r浏览,w创建修改移动,

3.设置权限 chmod 

(1)加减法(在原来基础上进行修改):

[root@localhost ~]# ll 1.txt
-rw-r--r-- 1 root root 0 Mar 15 20:49 1.txt
#源文件的权限
加法:
[root@localhost ~]# chmod u+x,g+x,o+w 1.txt
[root@localhost ~]# ll 1.txt
-rwxr-xrw- 1 root root 0 Mar 15 20:49 1.txt
减法:
[root@localhost ~]# chmod u-x 1.txt

参数: a

[root@localhost /]# chmod a-w /opt/a/b/c/1.txt #所有的都减去w权限
[root@localhost /]# ls -l /opt/a/b/c/1.txt
-r--r--r-x 1 root root 42 Mar 16 15:01 /opt/a/b/c/1.txt

(2)赋值法(在原来基础上进行覆盖):

chmod u=rwx,g=rwx,o=rwx 1.txt 
#u,g,o不是每次都要写的
a:属主属组属其他 一起设置

chmod u=-,g=-,o=- 1.txt
权限全部清空

(3)数字法:

chmod 777 文件路径(1.txt)
777 表示三个权限位置,不能单独改正,只能一起

(4)-R递归修改

chmod -R 777 /root/a
递归修改目录的权限

4. 设置用户和组

(1)chown

useradd libai
groupadd devops
chown libai.devops /root/a.txt
就是libai用户对文件有读权限,devops对文件有rwx权限

结果是:

 (2)chown -R

    格式:chown -R  属主.属组  目录 

5.权限的作用

对于文件:

r:读取文件内容

w:修改文件内容

x:可以把文件内容当作一个命令或者程序运行

针对目录:

r:可以浏览目录下文件名字和目录名字

w:创建删除和移动文件(rm和mv)

x:可以进入该目录,操作目录下的文件(cd)

 6.不切换到其他用户界面,进行一条命令的操作

su -lili  -c 'cat /a/b/c/1.txt'

三:文件管理之特殊权限

1.SUID

引子:etc/shadow 普通用户没有修改密码权限也可以实现更改密码------SUID

[root@localhost /]# ll `which passwd`    #反引号是tab上面的键
-rwsr-xr-x. 1 root root 27856 Apr  1  2020 /usr/bin/passwd

普通用户可以修改密码

 一旦一个文件设置成SUID后,其他用户访问该文件时获得root一样的权限;该权限仅在执行时候有效

2. SGID

(1)当SGID 作⽤于普通⽂件时,和 SUID 类似,在执⾏该⽂件时,⽤户将获得该⽂件所属组的权限。

(2)当⼀个⽤户对某⼀⽬录有写和执⾏权限时,该⽤户就可以在该⽬录下建⽴⽂件

        如果该⽬录同时⽤ SGID 修饰,则该⽤户在这个⽬录下建⽴的⽂件都是属于这个⽬录所属的组。
[root@localhost ~]# mkdir /test
[root@localhost ~]# chmod g+s /test/ # 等同于chmod 2755 /test/
[root@localhost ~]# ll -dl /test/
drwxr-sr-x 2 root root 6 811 17:06 /test/ [root@localhost ~]# [root@localhost ~]# chown .egon /test/ 
# 后期任何⼈在该⽬录下创建的⽂件or⽬录的属组都是egon

3. SBIT

其实 SBIT 与 SUID 和 SGID 的关系并不⼤,有时也称为Sticky。
SBIT ⽬前只对⽬录有效,⽤来阻⽌⾮⽂件的所有者删除⽂件。⽐较常⻅的例⼦就是 /tmp ⽬录:
[root@localhost ~]# ls -dl /tmp/
drwxrwxrwt. 13 root root 4096 811 17:09 /tmp/ 
[root@localhost ~]# chmod o+t /test/ # 或者 chmod 1755 /test

权限信息中最后⼀位 t 表明该⽬录被设置了 SBIT 权限。SBIT 对⽬录的作⽤是:当⽤户在该⽬录下创建
新⽂件或⽬录时,仅有⾃⼰和 root 才有权⼒删除,主要作⽤于⼀个共享的⽂件夹
新建⽂件、⽬录的默认权限是由umask决定的
1、uid>199并且属主与数组相等的⽤户下,umask: 0002
⽂件 664
⽬录 775
2、除1之外的其他⽤户下,⽐如root⽤户,umask: 0022
⽂件 644
⽬录 755
linux中⽂件默认权限为666、⽬录权限默认为777,在umask的影响下
⽂件权限计算⽅法:偶数位直接相减,奇数位相减后加1
总结:umask设置的越⼩,权限越⼤,慎⽤
临时设置umask
[root@localhost ~]# umask 000 //设置umask权限
永久设置umask
[root@localhost tmp]# vim /etc/profile # 或者/etc/bashrc内容⼀样
......
if [ $UID -gt 199 ] && [ "`id -gn`" = "`id -un`" ]; then
 umask 002 //表示uid⼤于等于199的默认umask值,表示普通⽤户
else
 umask 022 //表示uid⼩于199的默认umask值,表示root
fi
 
 
 
 
 
原文地址:https://www.cnblogs.com/dayday-up-a/p/14536895.html