权限管理命令

文件权限的更改

在Linux下所有文件都有自己的针对不同用户类型的访问权限;比如下面的test.txt 文件的权限:

[root@localhost linux_learn]# ll
总用量 4
drwxr-xr-x. 2 root root  6 8月   5 09:29 chapter1
-rw-r--r--. 2 root root 23 11月 23 2018 issue.hard
lrwxrwxrwx. 1 root root 10 8月   5 09:02 issue.soft -> /etc/issue
-rw-r--r--. 1 root root  0 8月   5 16:18 test.txt

-rw-r--r--代表test.txt 是一个文件,且对文件所有者为可读可写不可执行(rw-)、对用户所属组和其他人的权限为可读不可写也不可执行(r--)。那么如何修改它的访问权限呢?可以通过chmod命令来加以修改。

chmod

语法:chmod [{ugoa}{+-=}{rwx}] [文件或目录]

看上去有点复杂,搞懂每一个参数之后就可以很容易的记住。u代表user即所有者,g代表group即所属组,o代表other即其他人。+表示添加某些权限,-表示剥夺某一些权限,=即表示不论之前文件的权限如何都按照新的赋予的权限来执行。请看下面几个例子:

给文件test.txt 的所有者赋予可执行的权限:

[root@localhost linux_learn]# chmod u+x test.txt 
[root@localhost linux_learn]# ll test.txt 
-rwxr--r--. 1 root root 0 8月   5 16:18 test.txt

可以看到test.txt 变为-rwxr--r--;

其他的权限设置于此类似,不在赘述。

还有其他的设置权限的方式吗?我们可以看到这样的事实:

- - -         rwx           rw-r- - r - -                        ——有字母代表1,-代表0,即用二进制代表执行权限

000        111           110100100

那么这样的话,我们就可以指定一个在0-777之间的任意数值对文件的访问权限进行设置。例如,我们把test.txt 设置为---------,

则可以这样执行:

[root@localhost linux_learn]# ll test.txt 
-rwxr-xr-x. 1 root root 0 8月   5 16:18 test.txt    设置前
[root@localhost linux_learn]# chmod 0 test.txt 
[root@localhost linux_learn]# ll test.txt 
----------. 1 root root 0 8月   5 16:18 test.txt    设置后

以上内容均为对文件权限的操作,目录的权限于此相同,不在重复举例!

注意:只有所有者和root才能修改文件或目录的权限!

chown

语法:chown   [用户]  [文件或目录]

 chown是用来修改文件或目录的所有者。例如:

修改test.txt的文件所有者为testuser(一个用户):

[root@localhost linux_learn]# ll test.txt 
----------. 1 root root 0 8月   5 16:18 test.txt       修改前所有者为root
[root@localhost linux_learn]# chown testuser test.txt 
[root@localhost linux_learn]# ll test.txt 
----------. 1 testuser root 0 8月   5 16:18 test.txt   修改后所有者为testuser

chgrp

语法:chgrp  [用户组]  [文件或目录]

既然可以修改一个文件或目录的所有者,那么理所应当地可以修改它的所属组(一类拥有它的用户)。chgrp命令便可以实现这样的操作,还是以test.txt为例:

修改test.txt的文件所属组为testgroup: 

[root@localhost linux_learn]# ll test.txt 
----------. 1 testuser root 0 8月   5 16:18 test.txt        修改前所属组为root
[root@localhost linux_learn]# chgrp testgroup test.txt 
[root@localhost linux_learn]# ll test.txt 
----------. 1 testuser testgroup 0 8月   5 16:18 test.txt   修改后所属组为testgroup

umask

umask即权限掩码;默认值为0022

 当我们创建一个文件或者目录时,创建后可以看到文件的默认权限为:rw-r--r--,而目录的默认权限是:rwxr-xr-x;例如下面:

创建文件testumask.c和目录testumask:

[root@localhost linux_learn]# touch testumask.c
[root@localhost linux_learn]# mkdir testumask
[root@localhost linux_learn]# ls -l
总用量 4
drwxr-xr-x. 2 root     root       6 8月   5 09:29 chapter1
-rw-r--r--. 2 root     root      23 11月 23 2018 issue.hard
lrwxrwxrwx. 1 root     root      10 8月   5 09:02 issue.soft -> /etc/issue
drwxr-xr-x. 2 root     root       6 8月   5 17:00 test
-rw-r--r--. 1 root     root       0 8月   5 17:01 test1.c
----------. 1 testuser testgroup  0 8月   5 16:18 test.txt
drwxr-xr-x. 2 root     root       6 8月   5 17:06 testumask     权限为:rwxr-xr-x
-rw-r--r--. 1 root     root       0 8月   5 17:06 testumask.c   权限为:rw-r--r--

为什么它们的默认值会是如此?怎样才能修改?想要直到这些,我们就需要知道这些默认权限是如何生成的。

在创建文件时,文件的默认权限为:rw-rw-rw-,即所有用户只有读写权限,没有执行权限(安全考虑)。那为何创建后会变为rw-r--r--呢?

原来rw-rw-rw-会与umask的值做异或运算。如下:

umask=0022=000010010;而rw-rw-rw-=110110110;  异或(对应位不同取1相同取0)运算结果为:110100100即rw- r-- r--;

也可以把umask看作是--- -w- -w-,不同取字母,相同取-。即如下(有点啰嗦):

- - -  - w - - w -

rw-  r w - r w -

rw-  r - -   r - -  

同理,在目录被创建时的默认权限为:rwxrwxrwx,与umask做异或运算后变为:rwxr-xr-x;

知道了原理,那么我们就可以通过修改umask的值来修改文件或目录的默认权限;

由上述原理可知,如果我们将umask的值设为0000,则不会影响文件或目录的初始值(0与其他值做异或不起作用)。

修改umask的值为0000后创建文件testumask_new.c和目录testumask_new:

[root@localhost linux_learn]# umask 0000
[root@localhost linux_learn]# touch testumask_new.c
[root@localhost linux_learn]# mkdir testumask_new
[root@localhost linux_learn]# ls -l
总用量 4
drwxr-xr-x. 2 root     root       6 8月   5 09:29 chapter1
-rw-r--r--. 2 root     root      23 11月 23 2018 issue.hard
lrwxrwxrwx. 1 root     root      10 8月   5 09:02 issue.soft -> /etc/issue
drwxr-xr-x. 2 root     root       6 8月   5 17:00 test
-rw-r--r--. 1 root     root       0 8月   5 17:01 test1.c
----------. 1 testuser testgroup  0 8月   5 16:18 test.txt
drwxr-xr-x. 2 root     root       6 8月   5 17:06 testumask
-rw-r--r--. 1 root     root       0 8月   5 17:06 testumask.c
drwxrwxrwx. 2 root     root       6 8月   5 17:27 testumask_new     权限为:rwxrwxrwx
-rw-rw-rw-. 1 root     root       0 8月   5 17:27 testumask_new.c   权限为:rw-rw-rw-

由上述实验结果可知文件和目录的初始权限值。由此可知,如果我们不对umask的值进行修改,则我们创建的文件和目录的权限的默认值分别为:rw-r--r--和rwxr-xr-x.

我的博客源地址:http://120.27.248.71/index.php/2019/08/05/quan_xian_guan_li_ming_ling/#more-154

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值