赞
踩
在Linux操作系统中,权限管理是一个至关重要的概念,它确保了系统的安全性和稳定性。同时可以在工作中,设置对象的权限,就算我们很多人使用一台服务器,我们也可以让别人看不到我们文件的内容,或者让别人无法对自己的文件进行操作!
在系统中使用 " ls -al "命令后
会将文件或者目录的具体信息打印出来,我们可以具体看到文件的权限,等信息,文件权限对应3个不同的类型,分别是:
同时分为三种不同权限:
但是为什么会多出来一个呢?
也就是
linux识别文件不是按照我们平常所了解到的(如.txt
、.jpg
、.sh
等)
而这第一个字母 所代表的就是linux识别的文件的类型,它分为很多:
-
:普通文件。这是最常见的文件类型,包括文本文件、二进制文件等。d
:目录。表示这是一个目录,而不是一个普通文件。l
:符号链接。表示这是一个指向另一个文件或目录的符号链接。b
:块设备文件。这些文件对应于块设备(如硬盘、光盘等)。c
:字符设备文件。这些文件对应于字符设备(如终端、键盘、鼠标等)。p
:命名管道。用于进程间通信。s
:套接字。用于网络通信。D
:门。一种进程间通信机制,主要用于Solaris操作系统。我们可以很清楚的看出,我们上方截图中 第一个为 ' - ' ' d ' 的文件,分别不就代表普通文件和目录
在Linux系统中,使用ls -al
命令可以直观地查看文件和目录的权限表示,例如rwxr-xr--
。理解和修改这些权限,可以有效地管理文件的访问控制,从而提高系统安全性或促进团队协作。
- chmod u - //对拥有者 u (user)
- chmod g - //对所属组 g (group)
- chmod o - //对other o (other)
- chmod a - //对所有人(全部权限) (all)
我们先创建一个名为 ' text ' 的文件, 对它进行权限的更改
chmod u+x text //增添执行权限 X
我们使用 gcc命令生成的程序也就具有执行权限,可以执行二进制程序
chomd g-r text
验证这个,我们可以将同一服务器上的其他用户添加到该文件的所属组,命令是(这个命令需要管理员root 权限)
sudo usermod -aG group newuser
-a
:表示追加用户到指定组,而不是替换用户的组列表。-G
:指定要添加用户的组。chmod o+wx text
相同方式去掉即可
通过权限的位数,我们可以很直观的看出每一部分权限是3位,正好可以对应一个八进制数代表
我们可以通过数字的结合一次性设置所有人,不同的权限
user 全部权限 , group ' r x ' 权限 , other ' x ' , 权限
chmod 751 text
- chgrp + 组名
- chown + 用户名
但是这普通用户不行,也合理,在公司中,普通用户肯定不能随意更改文件所属组,或者是拥有者。
在linux默认中,给目录的权限是 八进制( 7 7 7)也就是所有权限对所有人都开放,而文件的默认权限是 (6 6 6)都没有执行权限,但是,我们可以创建一个目录,和文件 看看他们的权限是不是linux默认
目录:
文件:
我们可以看到,并不是linux系统默认的权限分配,这也就是说,我们可以通过修改某个参数,改变我们之间生成的目录或者文件的权限,这就是umask:
我们可以通过输入umask来看到默认的umask(我们只用红三位),那么生成的目录或者文件的权限是如何计算呢,我们可以通过二进制来观察 如何从 777 变为 775 权限
将每一位转化为二进制 与 umask 按位取反的数据按位与 也就是说 我们设置的umask是不需要的权限
umask 0 _ _ _ //用八进制表示我们不需要的权限
通过上面的权限介绍,我们可以通过设置权限来限制同一服务器下的普通用户对某些文件,目录的操作,但是,这些用户可以直接把文件删除(玩赖的),我们上面的权限没有限制删除的权限,而粘滞位 ' t '就是限制删除,只能由 拥有者删除 同时,粘滞位只能由设置者去掉
chmod +t 文件/目录名
就会变成底蓝色的。
ps: 以上所有权限限制跟root无关,他想干嘛干嘛
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。