LINUX学习之文件基本属性(二)

查看文件属性

Linux 系统是一种典型的多用户系统,不同的用户处于不同的地位并拥有不同的权限。在 Linux 系统中,通常使用 chown 命令来修改文件或目录的所有者,chmod 命令则用于设置用户的权限。

  • chown (change owner) :用于修改文件或目录的所有者和组。
  • chmod (change mode) :用于修改文件或目录的权限,如读、写、执行权限

在Linux 中可使用 ll 或者 ls –l 命令来显示一个文件的属性以及文件所属的用户和组

1

如上图所示, Mail文件的第一个属性用d表示, 则代表此文件是一个目录文件, 在 Linux 中第一个字符代表这个文件是目录、文件或链接文件等等

  • 当为 d 则是目录
  • 当为 - 则是文件;
  • 若是 l 则表示为链接文档(link file);
  • 若是 b 则表示为装置文件里面的可供储存的接口设备(可随机存取装置);
  • 若是 c 则表示为装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。

如下图所示, 每个文件的属性由左边第一部分的 10 个字符来确定, 从左至右用 0-9 这些数字来表示。

0位确定文件类型,第1-3位确定属主(该文件的所有者)拥有该文件的权限, 第4-6位确定属组(所有者的同组用户)拥有该文件的权限, 第7-9位确定其他用户拥有该文件的权限。

1


文件的属主和属组

对于文件来说,它都有一个特定的所有者,也就是对该文件具有所有权的用户。在 Linux 系统中,用户是按组分类的,一个用户可以属于一个或多个组。

文件所有者以外的用户可以分为文件所属组的同组用户和其他用户。这些用户对文件的访问权限可能不同,因此在 Linux 系统中,需要对文件的访问权限进行管理。

在如下实例中, mysql 文件是一个目录文件, 属主和属组都为 mysql, 属主有可读、可写、可执行的权限; 与属主同组的其他用户有可读和可执行的权限; 其他用户也有可读和可执行的权限。而对于root用户来说, 文件的权限对其不起作用

[root@www /]# ls -l
total 64
drwxr-xr-x 2 root  root  4096 Feb 15 14:46 cron
drwxr-xr-x 3 mysql mysql 4096 Apr 21  2014 mysql
……

更改文件属性的命令

1.chgrp: 更改文件属组

命令语法如下所示:

chgrp [-R] 属组名 文件名

-R: 如果加上-R的参数,那么该目录下的所有文件的属组都会更改


2.chown: 更改文件属主, 也可同时修改文件属组

命令语法如下所示:

chown [–R] 属主名 文件名
chown [-R] 属主名:属组名 文件名

进入/root目录(~)将install.log的拥有者改为bin这个账号:

[root@www ~] cd ~
[root@www ~]# chown bin install.log
[root@www ~]# ls -l
-rw-r--r--  1 bin  users 68495 Jun 25 08:53 install.log

install.log的拥有者与群组改回为root

[root@www ~]# chown root:root install.log
[root@www ~]# ls -l
-rw-r--r--  1 root root 68495 Jun 25 08:53 install.log

3.chmod: 更改文件权限

首先了解下文件的权限等级, Linux/Unix 的文件调用权限分为三级 : 文件所有者(Owner)、用户组(Group)、其它用户(Other Users)

1

  • u表示文件所有者, g表示与文件拥有者属于同一个群体, o表示其他人, a表示这三者皆是
  • +表示添加权限、-表示取消权限、=表示设定唯一权限
  • r表示可读取, w表示可写入, x表示可执行

使用符号模式可以设置多个项目: who(用户类型)、operator(操作符)、permission(权限)

以下是各个项目的符号模式表:

who用户类型说明
uuser文件所有者
ggroup文件所有者所在组
oothers所有其他用户
aall所有用户, 相当于 ugo
Operator说明
+为指定的用户类型增加权限
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置
permission名字说明
r设置为可读权限
w设置为可写权限
x执行权限设置为可执行权限
X特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
ssetuid/gid当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

chmod命令可以使用八进制来指定权限

#权限rwx
7读(4) + 写(2) + 执行(1)rwx
6读(4) + 写(2)rw-
5读(4) + 执行(1)r-x
4只读(4)r–
3写(2) + 执行(1)-wx
2只写(2)-w-
1只执行(1)–x
0

chmod命令使用实例如下表格所示:

描述命令
将file1.txt设为所有人都可读chmod ugo+r file1.txt
chmod a+r file1.txt
将file1.txt和file2.txt权限设为文件拥有者和用户组可写,其他用户不可写chmod ug+w,o-w file1.txt file2.txt
将当前目录下的所有文件与子目录皆设为任何人可读取chmod -R a+r *
将file文件设为任何人可读可写可执行chmod 777 file
chmod a=rwx file
使文件具有超级用户权限,chmod 4755 filename

4.umask:更改文件默认权限

创建文件的默认权限为rw-rw-rw-, 创建目录的默认权限为rwxrwxrwx

使用umask命令即可查询umask值, umask值表示从默认权限了去掉一些权限,然后成为最终的默认权限

[root@localhost 桌面]# umask
0022

可以看到umask的值为0022,第一个0为特殊权限暂且不用理他,后面三个数字分别代表u(文件拥有者)、g(用户组用户)、o(其他用户)的权限变化。u为0,权限没发生改变;g为2,权限-2,失去w(写)权限;o为2,同理


新创建一个文件, 其默认权限为rw-rw-rw-, 由于umask值为0022, 即group和Other Users失去w权限, 最终文件的权限为rw-r--r--

[root@localhost 桌面]# touch test.txt
[root@localhost 桌面]# ls -l test.txt 
-rw-r--r--. 1 root root 0 10月 20 17:36 test.txt

新创建一个目录, 其默认权限为rwx-rwx-rwx, 由于umask值为0022, 即group和Other Users失去w权限, 最终文件的权限为rwxr-xr-x

[root@localhost 桌面]# mkdir test
[root@localhost 桌面]# ls -al test
总用量 0
drwxr-xr-x. 2 root  root   6 10月 20 17:42 .
drwxr-xr-x. 3 herry herry 34 10月 20 17:42 ..

还可使用umask命令修改文件默认权限

[root@localhost 桌面]# umask 027
[root@localhost 桌面]# touch test1.txt
[root@localhost 桌面]# ls -l test1.txt
-rw-r-----. 1 root root 0 10月 20 23:11 test1.txt
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值