细说Linux权限

目录:

  • 归属权与访问权
  • chmod:访问权限设置
  • chown:所属权限设置
  • umask:权限掩码
  • 隐藏属性
    • chattr:写保护、误删保护
  • 单独限权
    • setfacl

一、归属和访问权限简介

1、归属(所有权)

  1、u:文件拥有者(owner):拥有该文件或目录的用户帐号user

  2、g:属组(group):拥有该文件或目录的组帐号

  3、o:其它人(others):除了属主和属组的其他人

  4、a:所有的人(all)  :“公有财产”

2、访问权限

  1、r:可读(read):允许查看文件内容、显示目录列表

    1、对文件而言,就是查看里面的内容

      shell> cat,vim,less,more ....“file”

    2、对目录而言,就是查看目录里的内容

      shell> ls “dir”

  2、w---可写(write):允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

    1、对文件而言,就是修改里面的内容

      shell> vi “file”

    2、对目录而言,就是新建、删除、重命名、移动

      shell> mkdir 、touch 、rm、mv、cp  “dir”

  3、x---可执行(execute):允许运行程序、切换目录

    1、对文件而言,就是执行这个文件里的命令。例如执行脚本文件

      shell> ./timeover.sh (执行脚本文件)

    2、对目录而言,就是进入目录

      shell> cd  “dir”

操作者--->对象(自己、组、其他人)--->权限

二、chmod命令

作用:

  change file mode bits:修改权限(r、w、x)

修改对象:

  user、group、others、all

形式:

  +  增加权限

  -  去掉权限

  =  直接等于某些权限

-R:递归修改指定目录下所有文件、子目录的权限

1、普通权限修改

[[email protected] lianxi]# mkdir dasheng  //新建目录
[[email protected] lianxi]# ls
dasheng
[[email protected] lianxi]# ls -ld dasheng  //显示目录详细信息
drwxr-xr-x 2 root root 4096 Nov 10 11:06 dasheng
d:directory目录
rwx:root主有读写执行权限
r-x:root组有读执行权限
r-x:其他人有读执行权限
注:由此可见,默认新建目录的权限如上。

[[email protected] lianxi]# chmod u=rwx,g=rx,o=--- dasheng
  //user读写执行权限,group读执行权限,others没有权限
[[email protected] lianxi]# ls -ld dasheng
drwxr-x--- 2 root root 4096 Nov 10 11:06 dasheng

[[email protected] lianxi]# chmod o+rx dasheng  //others增加读执行的权限
[[email protected] lianxi]# ls -ld dasheng
drwxr-xr-x 2 root root 4096 Nov 10 11:06 dasheng

[[email protected] lianxi]# chmod o-rx dasheng  //others去掉读执行的权限
[[email protected] lianxi]# ls -ld dasheng
drwxr-x--- 2 root root 4096 Nov 10 11:06 dasheng

2、递归修改权限

[[email protected] lianxi]# cd dasheng/ ; mkdir huaguoshan shuiliandong
[[email protected] dasheng]# ls
huaguoshan  shuiliandong
[[email protected] dasheng]# ll
total 8
drwxr-xr-x 2 root root 4096 Nov 10 11:10 huaguoshan
drwxr-xr-x 2 root root 4096 Nov 10 11:10 shuiliandong
[[email protected] dasheng]# cd ..

[[email protected] lianxi]# chmod -R o-rx dasheng  //递归修改dasheng目录及子目录的others权限
[[email protected] lianxi]# cd dasheng/ ; ll
total 8
drwxr-x--- 2 root root 4096 Nov 10 11:10 huaguoshan
drwxr-x--- 2 root root 4096 Nov 10 11:10 shuiliandong

3、利用数值修改权限

  r=4

  w=2

  x=1

  -=0

由此即可通过数值的形式替代上述的修改操作

  7=4+2+1=rwx、6=4+2=rw-、……类推

[[email protected] lianxi]# chmod -R 757 dasheng
[[email protected] lianxi]# ls -ld dasheng
drwxr-xrwx 4 root root 4096 Nov 10 11:10 dasheng
[[email protected] lianxi]# ll  dasheng
total 8
drwxr-xrwx 2 root root 4096 Nov 10 11:10 huaguoshan
drwxr-xrwx 2 root root 4096 Nov 10 11:10 shuiliandong

三、chown命令

作用:

  change file owner and group:修改文件的属主和属组(u、g、o、a)

注意:

  1、所属修改的用户和组必须存在

  2、chown操作只有root用户可以执行(chmod操作是root和所属者可以执行)

格式:

  chown  属主  文件

  chown  :属组  文件

  chown  属主:属组  文件

  chown  -R  属主:属组  目录  #递归修改指定目录下的所有文件、子目录的属主和属组

1、普通归属权修改

[[email protected] zhang]# mkdir wudangshan  //新建目录wudangshan
[[email protected] zhang]# useradd zhangwuji  //创建用户zhangwuji,同时也创建了该组
[[email protected] zhang]# useradd zhaomin  //创建用户zhaomin,同时也创建了该组
[[email protected] zhang]# ll
total 4
drwxr-xr-x 2 root root 4096 Nov 10 13:29 wudangshan
  //默认归属是创建者,因为当前是root用户,所以该目录属于root用户,root组的。

[[email protected] zhang]# chown  zhangwuji  wudangshan/  //修改属主归属zhangwuji
[[email protected] zhang]# ll
total 4
drwxr-xr-x 2 zhangwuji root 4096 Nov 10 13:29 wudangshan
[[email protected] zhang]# chown :zhangwuji wudangshan/  //修改属组归属zhangwuji
[[email protected] zhang]# ll
total 4
drwxr-xr-x 2 zhangwuji zhangwuji 4096 Nov 10 13:29 wudangshan

//目前wudangshan目录,zhangwuji是除了root的最高所属,也是唯一所属者。也就是说现在wudangshan这个目录除了root和zhangwuji用户,其他人谁都不能动。

[[email protected] zhang]# su - zhangwuji
[[email protected] ~]$ cd /zhang/
[[email protected] zhang]$ ll
total 4
drwxr-xr-x 2 zhangwuji zhangwuji 4096 Nov 10 13:29 wudangshan

[[email protected] zhang]$ chown zhaomin:zhaomin wudangshan/
chown: changing ownership of `wudangshan/‘: Operation not permitted  //无修改归属权限

[[email protected] zhang]$ chmod 777 wudangshan/  //有修改rwx权限(作为拥有者)
[[email protected] zhang]$ ll
total 4
drwxrwxrwx 2 zhangwuji zhangwuji 4096 Nov 10 13:29 wudangshan
[[email protected] zhang]$ exit
logout

2、递归修改

[[email protected] zhang]# ll
total 4
drwxrwxrwx 2 zhangwuji zhangwuji 4096 Nov 10 13:29 wudangshan
[[email protected] zhang]# chown zhaomin:zhaomin wudangshan/ -R  //递归修改属主:属组归属
[[email protected] zhang]# ll
total 4
drwxrwxrwx 2 zhaomin zhaomin 4096 Nov 10 13:29 wudangshan

[[email protected] zhang]# chown zhangwuji.zhangwuji wudangshan/ -R  // : 和 . 形式不同而已
[[email protected] zhang]# ll
total 4
drwxrwxrwx 2 zhangwuji zhangwuji 4096 Nov 10 13:29 wudangshan

注意:

shell> ll  test.txt

-rw-r--r--. 1 502 root  247 Jan 12 10:20 test.txt

Q:这里为什么显示的是502?不是显示的用户名?

A:

  因为该文件原来的owner是UID为502这个用户;

  但目前该用户已经被删除了,所以这里显示的是原来用户的UID;

  owner和文件没有绑定的关系。

四、umask命令

作用:

  The user file-creation mask is set to mode.

  设置用户在创建文件的时候该文件有的默认的权限的一种权限掩码。

注:

  1、在内核级别,文件的初始权限666

  2、在内核级别,目录的初始权限777

[[email protected] /]# umask  //查看当前用户的权限掩码

0022

注意:前面的0是特殊权限位

Q:如何计算?

A:

  777-022=755:新建目录权限是755

  666-022=644:新建文件权限是644

也就是说group和others去掉了写的权限

[[email protected] /]# umask -S  //查看当前用户的权限设置

u=rwx,g=rx,o=rx

[[email protected] /]# mkdir weigai
[[email protected] /]# ll |grep weigai
drwxr-xr-x    2 root root  4096 Nov 10 14:07 weigai
  //未改,默认权限掩码022,新建目录777-022=755:rwxr-xr-x

[[email protected] /]# umask 077  //直接修改权限掩码,只是临时有效
[[email protected] /]# mkdir gaile
[[email protected] /]# ll |grep gaile
drwx------    2 root root  4096 Nov 10 14:08 gaile
  //改了,权限掩码077,新建目录777-077=700:rwx------ 

注意:

  除非有特殊需求,不推荐修改系统默认umask。

  若要永久修改:vim  /root/.bashrc等方式添加umask命令修改,让系统自动执行此条命令。

五、隐藏属性

1、chattr命令:设置文件的隐藏属性

格式:

  chattr  [+-=]  [a、i]  文件或目录

常用命令选项:

  R:递归修改

  a:可以增加文件内容,但不能修改和删除

  i:锁定保护文件,写保护,不能修改

+、-、=分别表示增加、去除、设置参数

2、lsattr命令:查看文件的隐藏属性

格式:

  lsattr  [Rda]  文件或目录

常用命令选项:

  -R:递归查看

  -d:查看目录

3、文件的写保护

[[email protected] lianxi]# touch biyao
[[email protected] lianxi]# ll
total 0
-rw-r--r-- 1 root root 0 Nov 10 17:30 biyao

[[email protected] lianxi]# chattr +i biyao  //biyao文件被锁定(写保护)

[[email protected] lianxi]# echo shangxinhua>>biyao
-bash: biyao: Permission denied

[[email protected] lianxi]# lsattr biyao  //查看文件的隐藏属性
----i--------e- biyao
[[email protected] lianxi]# ll biyao
-rw-r--r-- 1 root root 8 Nov 10 17:30 biyao

[[email protected] lianxi]# chattr +i /etc/passwd
[[email protected] lianxi]# useradd huqishan
useradd: cannot open /etc/passwd  
  //passwd文件被锁定,因为新建用户就需要向该文件插入新建用户信息,被锁定,所以就无法新建用户。

[[email protected] lianxi]# chattr -i /etc/passwd  //-i解锁
[[email protected] lianxi]# useradd huqishan
[[email protected] lianxi]# id huqishan
uid=921(huqishan) gid=922(huqishan) groups=922(huqishan)

4、目录的误删保护

[[email protected] lianxi]# mkdir zhangxiaofan
[[email protected] lianxi]# ls
biyao  zhangxiaofan
[[email protected] lianxi]# chattr +a zhangxiaofan  //添加a属性
[[email protected] lianxi]# lsattr -d  zhangxiaofan  //查看目录-d
-----a-------e- zhangxiaofan

[[email protected] lianxi]# cd zhangxiaofan/
[[email protected] zhangxiaofan]# touch dazhufeng  //可进入可建文件(或目录)
[[email protected] zhangxiaofan]# ls
dazhufeng
[[email protected] zhangxiaofan]# rm -rf dazhufeng
rm: cannot remove `dazhufeng‘: Operation not permitted  //无法删除

由上可见,添加隐藏属性a、i,亦有一定的保护数据的功效

六、单独限权

setfacl命令

  针对任意指定的用户/组使用权限字符分配rwx权限。

格式:

  setfacl  选项  规则  文件

常见选项:

  -m:新增或修改

  -x:删除

查看单独权限:getfacl  文件

[[email protected] ~]# mkdir dir
[[email protected] ~]# id zhaomin
uid=504(zhaomin) gid=504(zhaomin) groups=504(zhaomin)
[[email protected] ~]# setfacl -m u:zhaomin:--- dir
[[email protected] ~]# getfacl dir
# file: dir
# owner: root
# group: root
user::rwx
user:zhaomin:---
group::r-x
mask::r-x
other::r-x
[[email protected] ~]# setfacl -x u:zhaomin dir
[[email protected] ~]# getfacl dir
# file: dir
# owner: root
# group: root
user::rwx
group::r-x
mask::r-x
other::r-x
时间: 2024-10-25 21:32:40

细说Linux权限的相关文章

细说linux IPC(五):system V共享内存

system V共享内存和posix共享内存类似,system V共享内存是调用shmget函数和shamat函数.           shmget函数创建共享内存区,或者访问一个存在的内存区,类似系统调用共享内存的open和posix共享内存shm_open函数.shmget函数原型为: #include <sys/ipc.h> #include <sys/shm.h> int shmget(key_t key, size_t size, int shmflg); key: 函

细说linux IPC(三):mmap系统调用共享内存

前面讲到socket的进程间通信方式,这种方式在进程间传递数据时首先需要从进程1地址空间中把数据拷贝到内核,内核再将数据拷贝到进程2的地址空间 中,也就是数据传递需要经过内核传递.这样在处理较多数据时效率不是很高,而让多个进程共享一片内存区则解决了之前socket进程通信的问题.共享内存 是最快的进程间通信 ,将一片内存映射到多个进程地址空间中,那么进程间的数据传递将不在涉及内核.        共享内存并不是从某一进程拥有的内存中划分出来的:进程的内存总是私有的.共享内存是从系统的空闲内存池中

细说linux IPC(六):pipe和FIFO

在unix系统上最早的IPC形式为管道,管道的创建使用pipe函数: #include <unistd.h> int pipe(int pipefd[2]); 该函数创建一个单向的管道,返回两个描述符 pipefd[0],和pipefd[1],pipefd[0]用于读操作,pipefd[1]用于写操作.该函数一般应用在父子进程(有亲缘关系的进 程)之间的通信,先是一个进程创建管道,再fork出一个子进程,然后父子进程可以通过管道来实现通信.管道具有以下特点:管道是半双工的,数据只能向一个方向流

Linux权限管理及用户与用户组

第一部分:Linux权限管理 一.基本权限 linux权限机制采用UGO模式.其中 u(user)表示所属用户.g(group)表示所属组.o(other)表示除了所属用户.所属组之外的情况. u.g.o 都有读(read).写(write).执行(excute) 三个权限,所以UGO模式是三类九种基本权限. 用命令 ls -l 可列出文件的权限,第一列输出明确了后面的输出(后面一列代表 ugo权限).第一个字母对应的关系: "-"    普通文件 "d"   目录

linux 权限机制

系统每个文件都拥有特定的权限,所属用户及所属组,通过这样的机制限制哪些用户.哪些组可以对特定文件进行什么样的操作,一般分为读.写.执行三种权限. 每个进程都是以某个用户的身份运行,所以进程的权限与该用户的权限一样. 三种权限 目录必须拥有x权限,否则无法浏览其内容. UGO linux权限基于UGO模型进行控制: U代表User,G代表Group,O代表Other: 每个文件的权限都是基于UGO来进行设置: 权限三个(rxw)一组,对应UGO进行设置: 每个文件都一个对应的用户和用户组,对应UG

Linux基础概念-----Linux权限

权限对象: 属主:u 属组:g 其他人: o 所有人:a Linux基本权限 读:read 标识为:r 八进制标识为:4 写:write 标识为:w 八进制标识:2 执行:execution 标识为:x 八进制标识:1 特殊权限 setuid:仅对文件(可执行的二进制程序)有效,以文件的所有者身份执行 八进制表现为:4 [[email protected] tmp]# ls -l /usr/bin/passwd -rwsr-xr-x. 1 root root 30768 Feb 22  2012

linux入门基础——linux权限机制

linux权限机制 权限 权限是操作系统用来限制对资源访问的机制,权限一般分为读.写.执行.系统中每个文件都拥有特定的权限.所属用户以及所属组,通过这样的机制来限制哪些用户.哪些组可以对特定文件进行什么样的操作. 每个进程都以某个用户的身份运行,所以进程的权限与用户的权限一样,用户的权限越大,该进程拥有的权限越大. 文件权限 linux中,每个文件拥有三种权限: 权限        对文件的影响        对目录的影响 r读取    可读取文件内容    可列出目录的内容 w写入    可修

linux权限补充:rwt rwT rws rwS 特殊权限

众所周知,Linux的文件权限如: 777:666等,其实只要在相应的文件上加上UID的权限,就可以用到加权限人的身份去运行这个文件.所以我们只需要将bash复制出来到另一个地方,然后用root加上UID权限,只要用户运行此Shell就可以用用root的身份来执行任何文件了 一个文件都有一个所有者, 表示该文件是谁创建的. 同时, 该文件还有一个组编号, 表示该文件所属的组, 一般为文件所有者所属的组. 如果是一个可执行文件, 那么在执行时, 一般该文件只拥有调用该文件的用户具有的权限. 而se

【Linux】 Linux权限管理与特殊权限

Linux权限管理 权限管理这方面,非常清楚地记得刚开始实习那会儿是仔细研究过的,不知道为什么没有笔记留痕..除了一些基本的知识点早就忘光了,无奈只好从头开始学习一遍.. ■ 基本权限知识 这部分实在是比较基础,不想多讲了.主要就是9格权限的理解.搞清楚读权限.写权限和执行权限对于文件和目录来说分别以为着什么,就可以了.下面是一些以前没怎么注意,今天听完培训之后觉得有些意思的点: ●  管理权限的权限 文件权限信息和其他文件信息一样,并不属于文件内容的一部分,而基本的权限是针对文件内容而言的.比