赞
踩
Linux有两类用户:超级用户、普通用户。
- 超级用户可以在Linux中做任何事情,不会受任何限制。
- 普通用户只能做有限的事。
- 超级用户的命令提示符为‘#’,普通用户的,命令提示符为‘$’。
- 超级用户只能有一个,而普通用户可以有多个。
普通用户切换成超级用户: su( 空格)- 或者 su,然后输入root的密码。
su -和su的区别是前者是以root的身份重新登入一次,而后面只是用户身份切换成root,以前面的方式切换,目录会回到根目录,而后面的方式切换还是当前目录。
超级用户回退到普通用户:exit或者快捷键ctrl+d
超级用户切换成普通用户:su+用户名,不用输入密码。
普通用户切换到普通用户:su+用户名,需要输入其他用户的密码。
总结:root可以随意切换成任意普通用户,普通用户切换成root需要root的密码,普通用户的切换需要对方的密码,所以root很重要。
有时候我们不想切换成root,但是执行的命令需要root级别的权限,这时我们需要在命令前面加上sudo,并且输入自己的密码。
但是可能同学会有疑问,既然只需要输入自己的密码就可以以root的权限执行命令,那么root的密码有什么意义?
在默认情况下,大多数是不能这样执行命令的,会报错
这是因为在Linux中有一个用户信息列表的配置文件sudoers(属于root),如果用户在这个配置文件中则可以执行sudo命令,不在的话就会报上述的错误,只有root才能将用户添加到白名单。
- 文件和目录的拥有者:u——User
- 文件和目录的所属组:g——Group
- 其他用户:o——Other
在Linux中由具体的人(root/普通用户)担任上述角色。
为什么没有其他用户呢?因为其他用户不能确定,访问该文件的只要不是拥有者或者所属组就是other,可以有多个。
一个文件有什么权限属性呢?很明显只有r(是否可读)、w(是否可写)、x(是否可执行)。
d:文件夹
-:普通文件:文本、源代码、视频、图片、可执行等
l:软链接(类似Windows的快捷方式)
b:块设备文件(例如硬盘、光驱等)
p:管道文件
c:字符设备文件(例如屏幕等串口设备)
s:套接口文件
- 读(r/4): Read对文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限
- 写(w/2):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限
- 执行(x/1):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限
- “—”表示不具有该项权限
八进制表示
可以使用chmod命令更改角色对应权限(user-u、group-g、other-o、a-所有用户)。只有文件的拥有者或者root可以改。
取消权限权:chmod(角色,多个角色以逗号连接)-(r/w/x,可以都写)文件名
增加权限权:chmod(角色,多个角色以逗号连接)+(r/w/x,可以都写)文件名
以三位八进制的形式修改权限(按照二进制和八进制的转换关系,rwx的权重分别为4、2、1,-代表没有)
修改文件的拥有者、所属组
chown
功能:修改文件的拥有者
格式: chown [参数] 用户名 文件名
chgrp
功能:修改文件或目录的所属组
格式:chgrp [参数] 用户组名 文件名
常用选项: -R 递归修改文件或目录的所属组
注:不能改文件的其他用户,该命令需要root权限。
因为普通文件可执行程序很少,所以系统默认创建的普通文件的权限是666(起始权限),目录的话大部分都是要给人进入的,所以系统默认创建的目录的权限是777(起始权限),但实际上却不是这个值。
这是为什么呢?这是因为默认权限还受到umask掩码的影响。
umask指令查看掩码:一共四位数,我们只关心后三位数,第一位表示八进制。
如何计算默认权限呢?从起始权限中去掉umask中出现的权限(mask & (~umask))。
umask可以修改吗?使用umask +(自定义数据)就就可以完成。
上面的权限所对的都是文件类型,现在我们来看一看目录的权限。
从上面目录权限中,我们可以发现一个问题,只要一个用户对一个目录有w权利,就可以删除目录里所有的文件,有些文件的拥有者可能是其他人,这样是不合理的,我创建的文件凭什么被你删除?所以Linux为了解决这个问题,引入了粘滞位的概念。当然正常情况下,别人是进不到你的目录中写文件的。
我们先了解粘滞位的应用的场景,一台服务器有很多人使用,每个人在机器上都会有一个家目录,在家目录里可以实现自己想要的操作,但是有时候我们需要一个公共路径来完成一些操作,协同来开发,所以Linux系统创建了一个名为tmp的公共路径。
在公共路径上才可能会发生上面的情况,可以不经过别人的允许,把别人的文件删除的情况,所以粘滞位起到了作用,有人会疑惑直接把tmp目录的w权限的去掉不就行了,这是不合理的,因为去掉了就新建不了自己的文件了。所以粘滞位起到的作用是给目录的other用户设置一个权限t,具有x的功能,同时也作出了限定:目录里的文件只有root和文件的拥有者可以删除。
注:粘滞位只能对目录使用
如何设置粘滞位呢?
chmod t (目录名)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。