【Linux命令】目录和文件的权限篇

chown命令:修改文件的属主

chown 命令的功能是修改命令的属主与属组,即修改文件的所属对象和所属组别
语法格式:

基本格式:chown [选项] 用户 文件名或者目录名称
特殊格式:chown [选项] 用户:用户组 文件名或目录名称(这个命令在修改文件属主的同时也修改文件的属组)

常用的参数有两个 -v : 显示修改的过程;-R : 对该目录下的所有文件进行过修改(修改整个目录和其中文件属主)
案例:将company目录和其下所有文件的属主与属组都修改为admin2

[root@2017120008ls ~]# ll
总用量 16
-rw-------. 1 root root 1695 2月  16 17:40 anaconda-ks.cfg
drwxrwxrwx. 6 root root   46 4月   6 19:28 company
...
# 查看company文件的属主与属组(这里都是root)
[root@2017120008ls ~]# tail /etc/passwd
yf02:x:6006:6006::/home/yf02:/bin/bash
admin:x:6007:6007::/home/admin:/bin/bash
admin2:x:6008:6008::/home/admin2:/bin/bash
# 查看admin2账户是否存在并检查它的UID和组ID(都是6008)
[root@2017120008ls ~]# chown -vR 6008:6008 company/
# 修改company文件的属主与属组并显示修改过程||其中属主与属组既可以写名称(admin2)也可以写ID(6008)
changed ownership of "company/fw/fw_back.txt" from root:root to 6008:6008
changed ownership of "company/fw/fw_front.txt" from root:root to 6008:6008
changed ownership of "company/fw/fw01" from root:root to 6008:6008
...
[root@2017120008ls ~]# ll
总用量 16
-rw-------. 1 root   root   1695 2月  16 17:40 anaconda-ks.cfg
drwxrwxrwx. 6 admin2 admin2   46 4月   6 19:28 company
# 检查结果 company 文件夹的属主与属组已经有原来的root变成了admin2
提醒:修改的用户名和属组一定要是系统中存在的(此乃废话)

chgrp命令:修改文件的属组

chgrp命令;功能是修改对应文件的属组
语法格式:

chgrp [选项] 用户组 文件名或者目录名

常用的参数 -v:显示修改的过程;-R:对该目录下的文件进行迭代修改(修改这个目录下所有文件的属组)
案例:修改company文件夹下所有文件的属组

[root@2017120008ls ~]# ll
总用量 16
-rw-------. 1 root   root   1695 2月  16 17:40 anaconda-ks.cfg
drwxrwxrwx. 6 admin2 admin2   46 4月   6 19:28 company
# 查看对应文件的属组
[root@2017120008ls ~]# ll company/
总用量 0
drwxr-x---. 4 admin2 admin2 69 4月   6 19:27 fw
drwxr-x---. 5 admin2 admin2 42 4月   6 21:21 js
drwxr-xr-x. 2 admin2 admin2  6 3月   4 20:44 sc
drwxr-x---. 4 admin2 admin2 30 4月   6 19:28 yf
# 检查对应目录内部文件的属组(发现都需要改)
[root@2017120008ls ~]# chgrp root -vR company
changed group of "company/fw/fw_back.txt" from admin2 to root
changed group of "company/fw/fw_front.txt" from admin2 to root
changed group of "company/fw/fw01" from admin2 to root
...
# 用迭代的方法(-R)修改文件的属组,并显示修改过程
[root@2017120008ls ~]# ll company/
总用量 0
drwxr-x---. 4 admin2 root 69 4月   6 19:27 fw
drwxr-x---. 5 admin2 root 42 4月   6 21:21 js
drwxr-xr-x. 2 admin2 root  6 3月   4 20:44 sc
drwxr-x---. 4 admin2 root 30 4月   6 19:28 yf
# 查看文件的修改结果
[root@2017120008ls ~]# ll
# 查看是否修改对应目录的属组

特殊权限值SUID

设置特殊权限值 SUID 可以让普通用户以 root 用户的身份执行特定的程序或者命令
语法格式:

chmod [选项] 文件名

常用的选项参数:
u+s : 给二进制文件设定特殊权限值(只对二进制文件起作用);4xxx:(xxx是数字)与 u+s 功能相同,对特定的二进制文件设置特殊权限;u-s:取消特定二进制文件的特殊权限值
原理是给予普通用户 root 用户的特殊权限
案例:开放touch 命令(文件)的特殊权限给普通用户

[root@2017120008ls ~]# su admin
# 切换到普通用户
[admin@2017120008ls root]$ touch /tmp/mnt/file1
[admin@2017120008ls root]$ ll /tmp/mnt/
总用量 0
-rw-rw-r--. 1 admin admin 0 4月   7 16:23 file1
# 创建并查看文件:此时的文件属主和属组都是 admin
exit   # 退回到 root
[root@2017120008ls ~]# chmod 4755 /usr/bin/touch 
[root@2017120008ls ~]# ll /usr/bin/touch 
-rwsr-xr-x. 1 root root 62480 8月  20 2019 /usr/bin/touch
# 退回到 root 用户;将touch文件的权限赋予普通用户(普通用户也可以用 root 的身份创建文件)
# 当出现-rwsr-xr-x(这个s是小写)的时候,意味着权限开放成功
[root@2017120008ls ~]# su admin 
[admin@2017120008ls root]$ touch /tmp/mnt/file2
[admin@2017120008ls root]$ ll /tmp/mnt
总用量 0
-rwsrw-r--. 1 admin admin 0 4月   7 16:23 file1
-rw-rw-r--. 1 root  admin 0 4月   7 16:27 file2
# 再次使用 admin 用户创建文件 file2 观察 file2文件的属主;(通过root身份创建的文件)

特殊权限值SGID

作用:让普通用户以其他用户组角色执行程序或者命令(以另一用户组角色运行只有另一用户组才能执行的文件或者命令)

语法结构:

chmod [选项] 文件名或者目录名称

常用选项:g+s : 增加用户组 SGID权限;2xxx(xxx:数字):与g+s用法相同,增加用户组SGID权限;g-s:除去用户组SGID权限

创建一个用户 user1要求其在对应位置下的目录和文件都具有admin用户组的属性

[root@2017120008ls mnt]# su admin
[admin@2017120008ls mnt]$ mkdir power1
# 在指定目录下(一般普通用户在/tmp目录下创建目录;不能在 /root 目录下创建)
[admin@2017120008ls mnt]$ chmod 777 power1
# 开放给所有用户读写权限
[admin@2017120008ls mnt]$ exit
exit   
[root@2017120008ls mnt]# useradd -u 6002 user1
# 退出到 root 用户并添加一个用户user1
[root@2017120008ls mnt]# su user1
[user1@2017120008ls mnt]$ cd /tmp/mnt/
[user1@2017120008ls mnt]$ cd power1/
# 使用user1 用户进入指定的 目录
[user1@2017120008ls power1]$ mkdir pw02
[user1@2017120008ls power1]$ ll
总用量 0
drwxrwxr-x. 2 user1 user1 6 4月   7 17:13 pw02
# 创建一个文件夹并查看(发现这里的文件夹属组是 user1:因为没有创建属组为admin 文件夹的权限)
[user1@2017120008ls power1]$ exit
exit
[root@2017120008ls mnt]# su admin
# 退出当前用户并切换到 admin 用户
[admin@2017120008ls mnt]$ cd /tmp/mnt/
# 给目标目录设置特殊用户组权限 SGID 
[admin@2017120008ls mnt]$ chmod g+s power1/
# 查看目标目录(确认设定了特殊用户组权限)
[admin@2017120008ls mnt]$ ll
总用量 0
-rwsrw-r--. 1 admin admin  0 4月   7 16:23 file1
-rw-rw-r--. 1 root  admin  0 4月   7 16:27 file2
drwxrwsrwx. 3 admin admin 18 4月   7 17:13 power1
---------------------------分割线---------------------------------------------------------
[admin@2017120008ls mnt]$ exit
exit
[root@2017120008ls mnt]# su user1
# 切换回 user1 用户
[user1@2017120008ls mnt]$ cd power1/
[user1@2017120008ls power1]$ mkdir pw03
[user1@2017120008ls power1]$ ll
总用量 0
drwxrwxr-x. 2 user1 user1 6 4月   7 17:13 pw02
drwxrwsr-x. 2 user1 admin 6 4月   7 17:14 pw03
# 在目标目录下新建一个目录并查看
# 新建的目录 pw03 的用户组是admin (因为admin开放了特殊用户组权限,其他用户访问这个文件的时候会获得admin用户组权限)

特殊权限值SBIT

防止其他用户修改本用户目录文件
语法格式:

chmod [选项] 文件名或者目录名

参数:o+t : 增加SBIT权限,1xxx : 增加SBIT权限的另一种写法,o-t:取消SBIT权限
案例:实现user1用户和admin用户无法删除对方在/tmp目录下创建的文件

[root@2017120008ls mnt]# su user1
[user1@2017120008ls mnt]$ touch /opt/file1
[user1@2017120008ls mnt]$ exit
exit
# 登录 user1用户创建一个演示文件 并退出
[root@2017120008ls mnt]# chmod 1777 -R /opt/
[root@2017120008ls mnt]# ls -ld /opt/
# 给对应的目录和它子目录下的文件设置(其他用户不可删除;参数:-R)权限
[root@2017120008ls mnt]# ls -ld /opt/
drwxrwxrwt. 3 root root 29 4月   8 08:42 /opt/
# 检查目录情况,当权限字符串的末尾出现小写 t 的时候,我们的权限就已经设定完成了
[root@2017120008ls mnt]# su admin 
[admin@2017120008ls mnt]$ rm -rf /opt/
rm: 无法删除"/opt/rh": 不允许的操作
# 登录admin用户,检查是否可以删除对应的目录或者目录下的文件
[admin@2017120008ls mnt]$ rm -rf /opt/file1 
rm: 无法删除"/opt/file1": 不允许的操作
# 不能删除目录下的文件(注意要设置 -R 参数)

我们转换用户再次进行类似的操作

[root@2017120008ls mnt]# su admin
[admin@2017120008ls mnt]$ mkdir /opt/ottest
[admin@2017120008ls mnt]$ touch /opt/ottest/file1
[admin@2017120008ls mnt]$ exit
# 使用 admin 用户创建文件之后退出到root用户
[root@2017120008ls mnt]# chmod o+t -R /opt/ottest/
[root@2017120008ls mnt]# ls -ld /opt/ottest/
drwxrwxrwt. 2 admin admin 19 4月   8 08:56 /opt/ottest/
# 通过 root 用户的 o+t 选项给对应的文件(和文件下的目录)设置其他用户不可删除的权限
# 用户目录权限字符串的末尾出现 t 的时候,说明我们的权限已经设置成功了
[root@2017120008ls mnt]# su user1
[user1@2017120008ls mnt]$ rm -rf /opt/ottest/
rm: 无法删除"/opt/ottest/file1": 不允许的操作
# 切换到其他用户尝试对文件进行删除(结果权限不够)

特殊权限值ACL

针对某一用户或某一用户组的特定目录文件进行特定的权限设置
语法结构:

setfacl [选项] 对应的用户(组)权限 目录名称

案例:创建一个目录,使得admin用户不能修改该目录

[root@2017120008ls ~]# mkdir /tmp/mnt
[root@2017120008ls ~]# mkdir /tmp/mnt/testacl
# 使用 root 用户创建一个目录
[root@2017120008ls ~]# setfacl -m u:admin:rx /tmp/mnt/testacl
[root@2017120008ls ~]# ls -ld /tmp/mnt/testacl
drwxr-xr-x+ 2 root root 6 4月   8 19:16 /tmp/mnt/testacl
# 给这个目录添加特殊权限并查看特殊权限
[admin@2017120008ls tmp]$ getfacl /tmp/mnt/testacl/
getfacl: Removing leading '/' from absolute path names
# file: tmp/mnt/testacl/
# owner: root
# group: root
user::rwx
user:admin:r-x   # 我们可以发现 admin 用户此时对于这个目录只有读取和执行权限,没有写入权限
group::r-x
mask::r-x
other::r-x
# 也可以通过 :getfacl + 目录名称的方式查看各个用户对于这个目录的权限
[root@2017120008ls ~]# su admin
[admin@2017120008ls root]$ cd /tmp/mnt/testacl/
[admin@2017120008ls testacl]$ touch file1
# 进入 admin 用户,在当前目录下尝试创建文件
touch: 无法创建"file1": 权限不够
# 因为权限不够无法创建

对某个目录及其子目录设置权限需要在参数 -m 之前加上参数 -R ;例如给manager用户设定整个company目录的所有权限 (rwx)

[root@2017120008ls /]# setfacl -m u:manager:rwx company/
# 如果我们仅仅设置对该目录的用户权限(没有加上参数 -R)则会发现
[root@2017120008ls /]# su manager
[manager@2017120008ls /]$ cd company/yf
bash: cd: company/yf: 权限不够
# 当我们在进入该目录的时候系统仍然会提示我们权限不够
[root@2017120008ls /]# setfacl -R -m u:manager:rwx /company/
[root@2017120008ls /]# su manager
[manager@2017120008ls /]$ cd company/yf
# 放我们加入了参数 -R 也就是这个目录和他的子目录都给了manager用户 (rwx)权限,这个时候后我们使用manager用户对其子目录进行操作就不会有权限不足的问题了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,377评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,390评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,967评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,344评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,441评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,492评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,497评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,274评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,732评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,008评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,184评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,837评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,520评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,156评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,407评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,056评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,074评论 2 352

推荐阅读更多精彩内容

  • 没有彻头彻尾的绝望。真正的成功,不是来自别人的认可和评价,而是由自我满足带来的满足宁静平和的心态,如果你在你自己力...
    BeautifulSoulpy阅读 1,286评论 0 2
  • Linux教程:http://www.fdlly.com/m/linux@[toc] 文件和目录的权限 简介:用户...
    7ed8e3680ebe阅读 466评论 0 0
  • 用户身份 UID(即User IDentification的缩写):每个用户都有对应的UID值,并且不相同,帐户名...
    Rancune阅读 1,523评论 0 0
  • 内容概要 为什么要进行权限管理? 在生产服务器上,所有用户都用管理员权限登录吗?显然这是不可以也是不可能的。 因此...
    若兮缘阅读 940评论 1 9
  • 公子世无双,陌上人如玉 晴时梅林处,雪落已成诗 能谈一场不分手的恋爱,也一定是,上辈子拯救了银河系吧。 对于大多数...
    小宝林子阅读 326评论 1 8