chmod,chown,umask,lsattr,chattr命令

本文深入讲解Linux系统中文件和目录的权限管理,包括chmod、chown、umask、lsattr和chattr命令的使用方法。从文件所有者、所属组和其他用户的角度,详细解释了rwx权限的作用,以及如何通过各种命令修改文件权限、所有者和组,设置文件隐藏属性,查看特殊权限。

[toc]

chmod,chown,umask,lsattr,chattr命令

文件和目录权限chmod

在linux中的每个用户必须属于一个组,不能独立于组外。每个文件有所有者、所属组、其它组的概念。

  • [ ] ==所有者== 一般为文件的创建者,谁创建了该文件,自然成为该文件的所有者,也可以使用chown来修改文件的所有者。

  • [ ] ==所属组== 当某个用户创建了一个文件后,这个文件的所属组就是该用户所属的组,也可以使用chgrp来修改文件所属的组。

  • [ ] ==其它组== 除了文件的所有者和所属组的用户外,系统的其它用户都是文件的其它组。

  • [ ] ==文件和目录权限== 文件权限规定了文件所有者对文件/目录的权限、文件所属用户组的成员对文件/目录的权限、其他用户对于文件/目录的权限。 r:可读权限 w:可写权限 x:可执行权限

对于目录和文件来说,这些权限代表的意义是不同的。

  • [ ] ==对于文件==: r:可以读取文件的内容。 w:可以写入文件内容,不能删除文件,如果要赋予删除文件的权限,则需要指定目录权限。 x:执行文件,不是每个文件都需要这个权限的,比如txt文件不需要。

  • [ ] ==对于目录:== r:可以读取目录下的目录结构,即能够执行ls查看目录下的文件名。 w:能够改变目录的结构,即添加、删除目录下的文件、对文件重命名。 x:能够进入目录,即cd到该目录。

一、 chmod

改变文件或目录的权限

mark

1.1 ls -l查看文件或者目录,第一位字符代表文件(-)、目录(d),链接(l)。

后九位的权限划分为三段,第一段是所有者的权限,第二段是所属组的权限,第三段是其它用户对这文件的权限。
[root@xavi-001 ~]# r=4 w=2 x=1  rwx=7  // 类似于2进制
[root@xavi-001 ~]# ls -l
总用量 12
-rw-r--r--  1 root root 2322 12月 19 21:37 2.txt
-rw-------. 1 root root 1422 8月   9 05:35 anaconda-ks.cfg.1
-rw-r--r--. 1 root root 1647 8月   9 00:17 initial-setup-ks.cfg
-rw-r--r--  1 root root    0 12月 13 00:01 [root@localhost
[root@xavi-001 ~]# r=4 w=2 x=1  rwx=7  类似于2进制^C
[root@xavi-001 ~]# chmod == change mode^C
[root@xavi-001 ~]# chmod 700 2.txt  //改为root可读可写可执行
[root@xavi-001 ~]# ls -l 2.txt
-rwx------ 1 root root 2322 12月 19 21:37 2.txt
[root@xavi-001 tmp]# chmod 777 xavi2
[root@xavi-001 tmp]# ls -l xavi2
总用量 0
-rw-r--r-- 1 root root 0 12月 19 22:51 1.txt
[root@xavi-001 tmp]# ls -ld xavi2
drwxrwxrwx 2 root root 19 12月 19 22:51 xavi2
[root@xavi-001 tmp]# ls -l xavi2
总用量 0
-rw-r--r-- 1 root root 0 12月 19 22:51 1.txt

从以上命令看出,chmod只能改变目录或文件本身的权限,而不能改变其下的子目录或子文件

1.2 chmod - R 批量修改所有目录或文件

[root@xavi-001 tmp]# chmod -R 770 xavi2
[root@xavi-001 tmp]# ls -l xavi2
总用量 0
-rwxrwx--- 1 root root 0 12月 19 22:51 1.txt
[root@xavi-001 tmp]# ls -ld xavi2
drwxrwx--- 2 root root 19 12月 19 22:51 xavi2

1.3 还有一种写法 u= ,g= ,o= , u:所有者 g:所属组 o:其他用户 a:所有用户;+加入权限,-除去权限,=设置权限。

[root@xavi-001 tmp]# chmod u=rwx,g=r,o=r xavi2
  • chmod +x/-x
[root@xavi-001 tmp]# chmod a+x xavi2
[root@xavi-001 tmp]# ls -ld xavi2
drwxr-xr-x 2 root root 19 12月 19 22:51 xavi2
[root@xavi-001 tmp]# chmod a-x xavi2
[root@xavi-001 tmp]# ls -ld xavi2
drw-r--r-- 2 root root 19 12月 19 22:51 xavi2

二、 chown 即change ower

[root@xavi-001 tmp]# chown xavi /tmp/yum.log
[root@xavi-001 tmp]# !ls
-rw-r--r-- 1 xavi root  0 12月 20 22:30 yum.log

chgrp 改变所属组

  • chown :root /tmp/yum.log 也变所有组为root
[root@xavi-001 tmp]# chgrp user1 /tmp/yum.log
[root@xavi-001 tmp]# !ls
ls -l /tmp/
-rw-r--r-- 1 xavi user1  0 12月 20 22:30 yum.log

chown 所有者:所属组 文件或目录

  • chown user1 修改所有者为user1
chown :user2 修改所有组为user2,等同于 chgrp user2 修改所有组为user2
chown user1:user2 同时修改所有者和所有组。
[root@xavi-001 tmp]# chown user1:xavi /tmp/yum.log
[root@xavi-001 tmp]# !ls
ls -l /tmp/
-rw-r--r-- 1 user1 xavi  0 12月 20 22:30 yum.log
chmod -R 递归处理,可将目录下的所有文件及子目录一并修改。这里chown -R的用法和chmod -R的用法是一样的
[root@xavi-001 tmp]# chown -R user1:xavi /tmp/xavilinux
[root@xavi-001 tmp]# ls -ld /tmp/xavilinux
drwxr-xr-x 4 user1 xavi 28 12月 19 22:43 /tmp/xavilinux

ls-ld用法是对目录时要加d,文件只加l.

[root@xaviyunserver ~]# ls -ld
dr-xr-x---. 8 root root 4096 Jul  3 11:11 .
[root@xaviyunserver ~]# ls -ll
total 24
-rw-r--r-- 1 root root    8 May  1 15:29 1.txt
-rw-r--r-- 1 root root    0 May  1 15:28 2.txt
-rw-r--r-- 1 root root   65 Jul  3 11:11 3.txt
drwxr-xr-x 2 root root 4096 May  7 22:13 grep
drwxr-x--- 2 root root 4096 May  1 09:13 temp
-rw-r--r-- 1 root root  298 Jun 26 21:21 test.sh
drwxr-xr-x 3 root root 4096 Jul  3 10:44 tmp

三、 umask 确定目录或文件的权限

用来设置限制新建文件权限的掩码。

分别创建文件和目录,文件的权限默认644,而目录为755

[root@xavi-001 tmp]# touch 11.txt
[root@xavi-001 tmp]# ls -l 11.txt
-rw-r--r-- 1 root root 0 12月 20 23:02 11.txt
[root@xavi-001 tmp]# mkdir 123
[root@xavi-001 tmp]# ls -ld 123
drwxr-xr-x 2 root root 6 12月 20 23:03 123
[root@xavi-001 tmp]# touch 22.txt
[root@xavi-001 tmp]# ls -l 22.txt
-rw-rw-r-- 1 root root 0 12月 20 23:07 22.txt
[root@xavi-001 tmp]# mkdir 234
[root@xavi-001 tmp]# ls -ld 234
drwxrwxr-x 2 root root 6 12月 20 23:09 234
umask计算文件或目录权限的方法
  • [ ] 默认的目录权限777,umask的值是022,新建目录的权限是755;

  • [ ] 默认的文件权限666, umask的值是022,新建文件的权限是644; 那么新建目录权限:777 -022=755;新建文件的权限:666-022=644

但是在以下计算时不成立:

[root@xavi-001 tmp]# umask
0003
[root@xavi-001 tmp]# 666-003 = (rw-rw-rw-)-(--------wx)=rw-rw-r--=664
[root@xavi-001 tmp]# 777-003 = (rwxrwxrwx)-(--------wx)=rwxrwxr----=774
//用rwx直接做加减法有效。

四、 chattr (change file attributes on a Linux file system) 文件隐藏属性

a:文件只能添加内容,不能修改、移动、删除,常用于日志文件。

i :文件不能修改、移动、删除,即使root也不行,用于固定不变的文件。

chattr +/- i 限制文件被写入修改

[root@xavi-001 tmp]# touch 1.txt
[root@xavi-001 tmp]# chattr +i 1.txt
[root@xavi-001 tmp]# touch 1.txt
touch: 无法创建"1.txt": 权限不够
[root@xavi-001 tmp]# mv 1.txt 3.txt
mv: 无法将"1.txt" 移动至"3.txt": 不允许的操作
[root@xavi-001 tmp]# chattr -i 1.txt
[root@xavi-001 tmp]# touch 1.txt
[root@xavi-001 tmp]# mv 1.txt 3.txt
[root@xavi-001 tmp]# ls
11.txt
123
22.txt
234
3.txt

chattr +/- a 不能更加,不能删除,不能重命名,但能追加,可以touch

[root@xavi-001 tmp]# chattr +a 3.txt
[root@xavi-001 tmp]# rm 3.txt
rm:是否删除普通空文件 "3.txt"?y
rm: 无法删除"3.txt": 不允许的操作
[root@xavi-001 tmp]# vi 3.txt
[root@xavi-001 tmp]# head -n2 /etc/passwd >> 3.txt
[root@xavi-001 tmp]# cat 3.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@xavi-001 tmp]# head -n2 /etc/passwd >> 3.txt
[root@xavi-001 tmp]# cat 3.txt
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
[root@xavi-001 tmp]# touch 3.txt
[root@xavi-001 tmp]# ls -l 3.txt
-rw-rw-r-- 1 root root 130 12月 20 23:46 3.txt
[root@xavi-001 tmp]# lsattr 3.txt
-----a---------- 3.txt
  • 用chattr -a 恢复
[root@xavi-001 tmp]# chattr -a 3.txt
[root@xavi-001 tmp]# lsattr 3.txt
---------------- 3.txt
  • 用chattr +i 目录,也是限制了权限
[root@xavi-001 tmp]# mkdir 123/111
[root@xavi-001 tmp]# chattr +i 123
[root@xavi-001 tmp]# lsattr -d 123
----i----------- 123
[root@xavi-001 tmp]# rm -r 123
rm:是否进入目录"123"? y
rm:是否删除目录 "123/111"?y
rm: 无法删除"123/111": 权限不够
[root@xavi-001 tmp]# mv 123 1212
mv: 无法将"123" 移动至"1212": 不允许的操作
[root@xavi-001 tmp]# touch 123/11.txt
touch: 无法创建"123/11.txt": 权限不够
[root@xavi-001 tmp]# chattr +i 123
[root@xavi-001 tmp]# head -n2 /etc/passwd > 123/11.txt
-bash: 123/11.txt: 权限不够  //该文件11.txt不存在123、目录下
[root@xavi-001 tmp]# head -n2 /etc/passwd > 123/111.txt  //已经存在的目录

当增加i权限的时候,不可以写入新文件,不可以删除,不可以移动;但是里面的文件可以读写;

当增加a权限的时候,==可以写入新文件==,不可以删除,不可以移动;但是里面的文件可以读写;

五、lsatt读取文件、目录特殊权限

lsatt -a 同ls -a 列出隐藏文件

lsatt -R 级联修改

lsatt -d 查看目录本身

[root@xaviyunserver ~]# lsattr
-------------e-- ./temp
-------------e-- ./tmp
-------------e-- ./test.sh
-------------e-- ./2.txt
-------------e-- ./1.txt
-------------e-- ./grep
[root@xaviyunserver ~]# lsattr a
lsattr: No such file or directory while trying to stat a
[root@xaviyunserver ~]# lsattr -a /root/
-------------e-- /root/..
-------------e-- /root/.pydistutils.cfg
-------------e-- /root/.cache
-------------e-- /root/temp
-------------e-- /root/tmp
-------------e-- /root/grep
[root@xavi-001 tmp]# lsattr -R 123
---------------- 123/111

123/111:

---------------- 123/111.txt
[root@xavi-001 tmp]# lsattr 123
---------------- 123/111
---------------- 123/111.txt

转载于:https://my.oschina.net/u/3898702/blog/2052638

请根据以下实验指导书,给我详细具体的实验指导: 一、实验目的 理解文件的权限,以及每种权限代表着哪些含义。掌握修改文件的权限的方法; 理解Linux 系统上的文件的特殊权限,SUID,SGID,Sticky、使用ACL(访问控制列表)来设置复杂权限。 二、实验环境 安装了Linux系统的计算机一台 三、实验内容及步骤 (1)在用户主目录下创建目录test,进入test目录使用touch命令创建空文件file1。 (2)以ls –l命令长格形式显示文件详细信息,记录文件的权限和所属用户和组。 (3)对文件file1设置权限,使其他用户可以对此文件进行写操作:执行命令#chmod? o+w? file1。–l命令查看设置结果并记录。 (4)取消同组用户对此文件的读取权限:#chmod? g-r? file1。查看设置结果并记录。 (5)用数字形式来为文件file1设置权限,所有者可读、可写、可执行;其他用户和所属组用户只有读和执行的权限:#chmod? 755? file1。设置完成后查看设置结果并记录。 (6)用数字形式更改文件file1的权限,使所有者只能读取此文件,其他任何用户都没有权限:#chmod? 400? file1。查看设置结果并记录。 (7)为其他用户添加写权限:#chmod o+w file1。查看设置结果并记录。 (8) 回到上层目录,查看test的权限并记录。 (9)为其他用户添加对此目录的写权限。#chmod o+w test。查看设置结果并记录。 (11)查看目录test及其中文件的所属用户和组,记录结果。 (12)把目录test及其下的所有文件的所有者改成bin,所属组改成daemon:#chown? -R? bin:daemon? test/。查看设置结果并记录。 (13)删除目录test及其下的文件。 (14)设定umask,#umask 000;重新创建test1目录,并查看其权限并记录。 (15)对文件file1设置硬链接和软链接后,再删除文件file1,查看硬链接文件和软链接文件。 (16)将 /usr/bin/passwd s权限去掉,观察记录passwd更改口令情况,然后将权限恢复,切换回root用户,记录命令运行情况。 (17)设定文件的特殊属性,运行chattr +i 、 chattr -i、chattr +a、lsattr命令,分析命令功能,并记录命令运行结果 (18)设定实验环境,创建相应用户和用户组以及相关文件和目录,执行下列命令:setfacl -m u:wang:rwx file|directory、setfacl -Rm g:sales:rwX directory 、setfacl -M file.acl file|directory 、setfacl -m g:salesgroup:rw file| directory、setfacl -m d:u:wang:rx directory 、setfacl -x u:wang file |directory、setfacl -X file.acl directory,分析命令功能,并记录命令运行结果 四、实验报告要求 1.整理实验结果,使其分别与相应的命令对应 2.根据实验步骤,按照模板撰写实验报告
最新发布
11-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值