专栏首页Ryan MiaoLinux中读写权限

Linux中读写权限

learn the auth of Linux.

Generally, r-x

w: write , modify and delete  -2

r: read   -4

x: execute  -1

A file has 3 auth show:

-owner

-group

-other

当时用sudo的时候表示使用root用户的身份,因此,新建的文件或者dir都是root用户的而不是你自己的。这时,自己反而没有权限:

我sudo创建了文件,然后想要修改的时候说没有权限。在脚本中,>输出这个命令就无法执行了。

the owner has the 7 with the file, group useually 5, other 5. If I don't want others read the file , just chmod 750, but there is a problem: how can the specific person get the auth?

That is I want someone or a specific group get the auth of a file but others can't. Then, the ACL is do this.

1.Auth to specificer

The following show auth to dir for user:st

//create a dir named project

mkdir project

chmod 770 project/

//add two uers to tgroup

useradd bimm

useradd cangls

groupadd tgroup

gpasswd -a bimm tgroup

gpasswd -a cangls tgroup

chown root:tgroup project/

//auth to user:st

useradd st

setfacl -m u:st:rx project/

//then the ll show +

[root@bogon temp]# ll -d project/

drwxrwx---+ 2 root tgroup 16 5月  14 21:14 project/

[root@bogon temp]# getfacl project/

# file: project/

# owner: root

# group: tgroup

user::rwx

user:st:r-x

group::rwx

mask::rwx

other::---

//auth to group:tgroup2

[root@bogon temp]# setfacl -m g:tgroup2:rwx project/  

[root@bogon temp]# getfacl project/

# file: project/

# owner: root

# group: tgroup

user::rwx

user:st:r-x

group::rwx

group:tgroup2:rwx

mask::rwx

other::---

2.change mask, the top effective auth

when auth to someone or somegroup by setfacl with a auth like rwx, it will &mask to get their auth.For instance, if

setfacl -m u:st:rw project

, and the project's auth is r-x, then, the auth of user:st to project is r--. Howerver, we can also change the mask:

[root@bogon temp]# setfacl -m u:st:rw project/

[root@bogon temp]# getfacl project/

# file: project/

# owner: root

# group: tgroup

user::rwx

user:st:rw-

group::rwx

group:tgroup2:rwx

mask::rwx

other::---

[root@bogon temp]# setfacl -m m:r-x project/

[root@bogon temp]# getfacl project/

# file: project/

# owner: root

# group: tgroup

user::rwx

user:st:rw-            #effective:r--

group::rwx            #effective:r-x

group:tgroup2:rwx        #effective:r-x

mask::r-x

other::---

3.delete ACL

  -x u:st file(s) , --remove=acl        remove entries from the ACL(s) of file(s)

  -b file(s) , --remove-all                remove all extended ACL entries 

[root@bogon temp]# setfacl -x u:st project/

[root@bogon temp]# setfacl -x g:tgroup2 project/

[root@bogon temp]# getfacl project/

# file: project/

# owner: root

# group: tgroup

user::rwx

group::rwx

mask::rwx

other::---

4.recursive set ACL and default ACL for dir

if you do it as step2, you just set ACL to the specify dir, not works with the sub-file of the dir.

if you want to do the same with the sub-file, set option -R

[root@bogon temp]# touch project/abc

[root@bogon temp]# ll project/abc

-rw-r--r-- 1 root root 0 5月  14 21:14 project/abc

[root@bogon temp]# ll -d project/

drwxrwx--- 2 root tgroup 16 5月  14 21:14 project/

[root@bogon temp]# setfacl -m u:st:rx project/

[root@bogon temp]# ll -d project/

drwxrwx---+ 2 root tgroup 16 5月  14 21:14 project/

[root@bogon temp]# setfacl -m u:st:rx project/

[root@bogon temp]# getfacl project/

# file: project/

# owner: root

# group: tgroup

user::rwx

user:st:r-x

group::rwx

mask::rwx

other::---

[root@bogon temp]# getfacl project/abc

# file: project/abc

# owner: root

# group: root

user::rw-

group::r--

other::r--

//-R just work with the exists files, but new file doesn't

[root@bogon temp]# setfacl -m u:st:rx -R project/

[root@bogon temp]# getfacl project/abc

# file: project/abc

# owner: root

# group: root

user::rw-

user:st:r-x

group::r--

mask::r-x

other::r--

[root@bogon temp]# touch project/newabc

[root@bogon temp]# getfacl project/newabc

# file: project/newabc

# owner: root

# group: root

user::rw-

group::r--

other::r--

You can see -R dosen't work with new file, if you want the new sub-file also has the auth, use the default ACL by orption d:

[root@bogon temp]# setfacl -m d:u:st:rx project/

[root@bogon temp]# getfacl project/newabc

# file: project/newabc

# owner: root

# group: root

user::rw-

group::r--

other::r--

[root@bogon temp]# touch project/newabc2

[root@bogon temp]# getfacl project/newabc2

# file: project/newabc2

# owner: root

# group: root

user::rw-

user:st:r-x            #effective:r--

group::rwx            #effective:rw-

mask::rw-

other::---

-R for the exists and d: for the future.

5.setUID

[root@bogon temp]# ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 27832 6月  10 2014 /usr/bin/passwd

s表示用户在执行时暂时获得文件owner的权限,因为passwd会操作shadow,而只有root才有shadow权限,因此需要在用户运行passwd的时候有权力写入shadow。

要求该文件必须是可执行文件。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 简单的使用ehcache

    之前一直感觉缓存是高上大的东西,没有心思去研究。做了之后发现,简单的使用还是很容易的。这里记录ehcache在jfinal中的简单使用。 1.ehcahe简介 ...

    Ryan-Miao
  • centos安装memcached和PHP php-pecl-memcached.x86_64

    Ryan-Miao
  • java并发编程(4)--线程池的使用

    转载:http://www.cnblogs.com/dolphin0520/p/3932921.html 一. java中的ThreadPoolExecutor...

    Ryan-Miao
  • JVM 如何处理未捕获异常

    继之前的文章 详解JVM如何处理异常,今天再次发布一篇比较关联的文章,如题目可知,今天聊一聊在JVM中线程遇到未捕获异常的问题,其中涉及到线程如何处理未捕获异常...

    技术小黑屋
  • Rust FFI 编程 - 手动绑定 C 库入门 05

    fn 是 Rust 中的函数指针类型。具体可参见标准库文档 fn,解释得非常详尽。

    MikeLoveRust
  • 自定义枚举 --- Gson转换

    实现上述步骤后,只要实现接口CodedEnum的自定义枚举都可以自动转换为其code值

    十毛
  • 推荐引擎所面临的终极挑战

    用户1737318
  • Binary Tree Level Order Traversal

    问题:从上到下打印二叉树的每一行 分析:先搜出二叉树的高度,然后遍历高度,每次搜索一个高度 class Solution { public: int d...

    用户1624346
  • Android 两步解决页面跳转不连贯问题

    和尚最近在处理适配方面的问题,今天发现在一些低版本且性能不佳的手机上,冷启动过程中,从 SplashActivity 到 MainActivity ...

    阿策
  • 使用GTD(Getting Things Done)打造整洁高效的办公环境

    估计办公室混乱是我们男人的专利,整个办公室里没有落脚的空隙时才能体现出大忙人的状态,彰显男人的价值。下面这张图是我前几天从同事的办公室随手照的,已经把关键信息进...

    申龙斌

扫码关注云+社区

领取腾讯云代金券