黑松山资源网 Design By www.paidiu.com

为什么需要权限管理?

1.计算机资源有限,我们需要合理的分配计算机资源。

2.Linux是一个多用户系统,对于每一个用户来说,个人隐私的保护是十分重要的

目录的 rwx 权限

当前用户:vagrant:vagrant

创建 testdir 目录,进入 testdir 目录内。创建文件 test。

$ mkdir testdir
$ cd testdir
$ touch test

修改 testdir 权限为 000,尝试执行 ls testdir

$ chmod 000 testdir
$ ls testdir/
ls: cannot open directory testdir/: Permission denied

修改 testdir 权限为 400,尝试执行 ls testdir

$ chmod 400 testdir
ls -l testdir/
ls: cannot access testdir/test: Permission denied
total 0
-"htmlcode">
$ cd testdir/
-bash: cd: testdir/: Permission denied

看来 r 权限并不能让我们具有进入目录。

我们增加一个 x 权限试试。

~$ chmod 500 testdir/
~$ cd testdir/
~/testdir$ ls -l
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Nov 19 08:16 test

成功进入。

拥有目录的 x 权限能够让我们进入到目录下。在此工作目录下,我们可以查看文件列表及文件的属性信息。

尝试删除 test 文件或者新建文件 test1。

~/testdir$ rm test
rm: cannot remove ‘test': Permission denied
~/testdir$ touch test1
touch: cannot touch ‘test1': Permission denied

拥有目录的 r x 权限并不能允许我们改变目录的内容。目录里的文件列表可以看做是目录的内容。

拥有目录的 w 权限可以对目录的内容进行增删。

~/testdir$ chmod 700 .
~/testdir$ rm test
~/testdir$ touch test1
~/testdir$ ls -l
total 0
-rw-rw-r-- 1 vagrant vagrant 0 Nov 19 08:30 test1

umask

在上面的例子里,我们创建的新文件的权限是 664(-rw-rw-r--),为什么默认权限会是 664,我如果想改变新文件的默认权限怎么办?

控制台输入 umask:

$ umask
0002

umask 是权限的补码。文件的默认权限是 666 - umask。

如果我们创建的文件不想让其他用户有 r 权限,则修改补码为 0006 即可。

~/testdir$ umask 0006
~/testdir$ touch test2
~/testdir$ ls -l | grep test2
-rw-rw---- 1 vagrant vagrant 0 Nov 19 08:38 test2

为什么文件的默认权限不是 777 - umask 呢?因为新建的文件默认不具有可执行权限,所以只考虑 rw 权限的话,这波操作自然是 666 了。

目录默认具有 x 权限,当 umask 是 0002 时,创建的目录的默认权限应该是 777 - 0002 = 775:

~/testdir$ mkdir dir1
~/testdir$ ls -l | grep dir1
drwxrwxr-x 2 vagrant vagrant 4096 Nov 19 08:39 dir1

特殊权限

SUID

一般来说文件权限是 rwx。我们查看一下 passwd(修改密码命令)的权限:

~/testdir$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 47032 May 16 2017 /usr/bin/passwd

细心点你会发现它的用户权限的 x 位竟然是 s。这个权限叫 SUID,仅对二进制程序有效。

当用户具有该文件的执行权限时,执行该文件会短暂的获取该文件所有者权限的支持。

比如:所有用户的密码存在 /etc/shadow 这个文件里,且该文件的权限默认是 -r-------- root root,仅root 用户具有强制写入权限,那为什么普通用户还能修改自己的密码呢?就是因为 passwd 命令具有 SUID 权限,用户执行该命令时会获得文件所有者 root 的权限支持,从而修改自己的密码。

SGID

当 group 的 x 位置变成 s 时,说明该文件具有 SGID 权限。

SGID 权限对二进制程序有效。类似 SUID,用户在具有文件的 x 权限时,执行该文件,会获取该文件所属用户组的权限支持。

除了二进制程序外,SGID也可以设置在目录上。

若用户对该目录具有 SGID 权限:

用户在此目录下的有效用户组将会变成该目录的用户组。

如果用户具有该目录的 w 权限,则用户在此目录下创建的文件的用户组与此目录的用户组相同。

该权限对于项目开发很重要。

SBIT

该权限目前只对目录有效:

当用户对此目录具有 w,x 权限,用户在该目录下创建文件夹或目录后,仅自己和 root 才有权限删除该文件。

Others 的 x 权限位若为 t,则说明文件夹具有 SBIT 权限。

比如 /tmp 目录:

$ ls -l / | grep tmp
drwxrwxrwt 4 root root 4096 Nov 19 09:09 tmp
$ sudo -s
# touch test
root@vagrant-ubuntu-trusty-64:/tmp# exit
exit
vagrant@vagrant-ubuntu-trusty-64:/tmp$ rm test
rm: remove write-protected regular empty file ‘test'"htmlcode">
# chmod 777 /tmp
# ls -l / | grep tmp
drwxrwxrwx 4 root root 4096 Nov 19 09:17 tmp
# chmod 1777 /tmp
# ls -l / | grep tmp
drwxrwxrwt 4 root root 4096 Nov 19 09:17 tmp
End。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。

黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com

《魔兽世界》大逃杀!60人新游玩模式《强袭风暴》3月21日上线

暴雪近日发布了《魔兽世界》10.2.6 更新内容,新游玩模式《强袭风暴》即将于3月21 日在亚服上线,届时玩家将前往阿拉希高地展开一场 60 人大逃杀对战。

艾泽拉斯的冒险者已经征服了艾泽拉斯的大地及遥远的彼岸。他们在对抗世界上最致命的敌人时展现出过人的手腕,并且成功阻止终结宇宙等级的威胁。当他们在为即将于《魔兽世界》资料片《地心之战》中来袭的萨拉塔斯势力做战斗准备时,他们还需要在熟悉的阿拉希高地面对一个全新的敌人──那就是彼此。在《巨龙崛起》10.2.6 更新的《强袭风暴》中,玩家将会进入一个全新的海盗主题大逃杀式限时活动,其中包含极高的风险和史诗级的奖励。

《强袭风暴》不是普通的战场,作为一个独立于主游戏之外的活动,玩家可以用大逃杀的风格来体验《魔兽世界》,不分职业、不分装备(除了你在赛局中捡到的),光是技巧和战略的强弱之分就能决定出谁才是能坚持到最后的赢家。本次活动将会开放单人和双人模式,玩家在加入海盗主题的预赛大厅区域前,可以从强袭风暴角色画面新增好友。游玩游戏将可以累计名望轨迹,《巨龙崛起》和《魔兽世界:巫妖王之怒 经典版》的玩家都可以获得奖励。