查看文件和目录的权限

随便进入一个文件夹,执行ls -l。 alt

  • 第1列:代表文件的类型。我们常见的是d和-。d代表是目录文件。-代表是普通文件。其他不常见的有。l代表链接文件,b代表块设备。c代表字符设备文件。
  • 第2-10列:代表该文件的权限。三个为一组。第一组代表文件所有者的权限,第二组代表同用户组的权限,第三组代表其他用户非本用户组的权限。 每组权限中的rwx,分别代表读,写,可执行的意思。
  • 第11列数字,图中的1,5,3,2这列,代表有多少文件名连接到此节点。 每个文件都会将它的权限与属性记录到文件系统的i-node中,不过我们使用的目录树却是使用文件名来记录,因此每个文件名就会连接到一个i-node,这个属性记录的就是有多少不同的文件名连接到相同的一个i-node号码。
  • 第12列的root:所属者用户名
  • 第13列的root:所属用户组
  • 第14列:容量大小,默认为B
  • 后面为创建或修改日期,最后为文件名。

ls –al使用 ls 不带参数只显示文件名称,通过ls –al` 可以显示文件或者目录的权限信息。

ls -l 文件名 显示信息包括: 文件类型 (d 目录,- 普通文件,l 链接文件),文件权限,文件的用户,文件的所属组,文件的大小,文件的创建时间,文件的名称

-rw-r--r-- 1 lusifer lusifer 675 Oct 26 17:20 .profile

  • -:普通文件
  • rw-:说明用户 lusifer 有读写权限,没有运行权限
  • r--:表示用户组 lusifer 只有读权限,没有写和运行的权限
  • r--:其他用户只有读权限,没有写权限和运行的权限
-rw-r--r--1lusiferlusifer675Oct 26 17:20.profile
文档类型及权限连接数文档所属用户文档所属组文档大小文档最后被修改日期文档名称
-rw-r--r--
文档类型文档所有者权限(user)文档所属用户组权限(group)其他用户权限(other)

文档类型

  • d 表示目录
  • l 表示软连接
  • – 表示文件
  • c 表示串行端口字符设备文件
  • b 表示可供存储的块设备文件
  • 余下的字符 3 个字符为一组。r 只读,w 可写,x 可执行,- 表示无此权限

连接数

指有多少个文件指向同一个索引节点。

文档所属用户和所属组

就是文档属于哪个用户和用户组。文件所属用户和组是可以更改的

文档大小

默认是 bytes

更改操作权限

chown

change owner 的意思,主要作用就是改变文件或者目录所有者,所有者包含用户和用户组

chown [-R] 用户名称 文件或者目录

chown [-R] 用户名称 用户组名称 文件或目录

-R:进行递归式的权限更改,将目录下的所有文件、子目录更新为指定用户组权限

chmod

改变访问权限

chmod [who] [+ | - | =] [mode] 文件名

who

表示操作对象可以是以下字母的一个或者组合

  • u:用户 user
  • g:用户组 group
  • o:表示其他用户
  • a:表示所有用户是系统默认的

操作符号

  • +:表示添加某个权限
  • -:表示取消某个权限
  • =:赋予给定的权限,取消文档以前的所有权限

mode

表示可执行的权限,可以是 r、w、x

文件名

文件名可以使空格分开的文件列表

lusifer@UbuntuBase:~$ ls -al test.txt
-rw-rw-r-- 1 lusifer lusifer 6 Nov 2 21:47 test.txt
lusifer@UbuntuBase:~$ chmod u=rwx,g+r,o+r test.txt
lusifer@UbuntuBase:~$ ls -al test.txt
-rwxrw-r-- 1 lusifer lusifer 6 Nov 2 21:47 test.txt
lusifer@UbuntuBase:~$

数字设定法

数字设定法中数字表示的含义

  • 0 表示没有任何权限
  • 1 表示有可执行权限 = x
  • 2 表示有可写权限 = w
  • 4 表示有可读权限 = r

也可以用数字来表示权限如 chmod 755 file_name

r w xr – xr - x
4 2 14 - 14 - 1
usergroupothers

若要 rwx 属性则 4+2+1=7

若要 rw- 属性则 4+2=6

若要 r-x 属性则 4+1=5

示例

lusifer@UbuntuBase:~$ chmod 777 test.txt
lusifer@UbuntuBase:~$ ls -al test.txt
-rwxrwxrwx 1 lusifer lusifer 6 Nov 2 21:47 test.txt

lusifer@UbuntuBase:~$ chmod 770 test.txt
lusifer@UbuntuBase:~$ ls -al test.txt
-rwxrwx--- 1 lusifer lusifer 6 Nov 2 21:47 test.txt

chgrp命令

1、概述

改变文件或目录所属的组

2、命令

chgrp [选项] group filename

\- R 递归式地改变指定目录及其下的所有子目录和文件的属组。 group为用户组id或者为/etc/group中用户的用户组名。如果用户不是文件的属主或者超级用户,则不能改变。

3、例子

chgrp - R weblogic /etc 将etc及etc下所有文件和目录的属组都改为weblogic。

chown命令使用举例:

# chown [-R] [用户名称] [文件或目录]
# chown [-R] [用户名称:组名称] [文件或目录]


# 范例1:将test3.txt文件的属主改为test用户。

 ls -l test3.txt
#-rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt

 chown test:root test3.txt

ls -l test3.txt
# -rw-r–r– 1 test root 0 2009-10-23 9:59

# 范例2:chown所接的新的属主和新的属组之间可以使用:连接,属主和属组之一可以为空。如果属主为空,应该是“:属组”;如果属组为空,“:”可以不用带上。


 ls -l test3.txt
#-rw-r–r– 1 test root 0 2009-10-23 9:59 test3.txt


 chown :test test3.txt #把文件test3.txt的属组改为test

 ls -l test3.txt
#-rw-r–r– 1 test test 0 2009-10-23 9:59 test3.txt


# 范例3:chown也提供了-R参数,这个参数对目录改变属主和属组极为有用,可以通过加 -R参数来改变某个目录下的所有文件到新的属主或属组。

ls -l testdir # 查看testdir目录属性

#drwxr-xr-x 2 usr root 0 2009-10-56 10:38 testdir/ #文件属主是usr用户,属组是 root用户

 ls -lr testdir #查看testdir目录下所有文件及其属性

total 0
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test1.txt
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test2.txt
-rw-r–r– 1 usr root 0 2009-10-23 10:38 test3.txt

chown -R test:test testdir/ #修改testdir及它的下级目录和所有文件到新的用户和用户组

 ls -l testdir
#drwxr-xr-x 2 test test 0 2009-10-23 10:38 testdir/
 ls -lr testdir

total 0
-rw-r–r– 1 test test 0 2009-10-23 10:38 test1.txt
-rw-r–r– 1 test test 0 2009-10-23 10:38 test2.txt
-rw-r–r– 1 test test 0 2009-10-23 10:38 test3.txt