目录
一.Linux用户
二.文件权限
2.1 权限属性
chmod命令
chown与chgrp命令
2.2 文件类型
file指令
常见类型
2.3 常见权限问题
问题一:
问题二:
问题三:
一.Linux用户
- 超级用户:可以再linux系统下做任何事情,不受限制
- 普通用户:在linux下做有限的事情
命令 : su [ 用户名 ]功能 :切换用户。
![]()
普通用户切换为超级用户需要输入密码,而超级用户切换为普通用户不需要输入密码。普通用户切换到另一个普通用户也需要输入密码。
sudo命令
让普通用户能有root的身份执行指定命令。
不过前提是要把该用户加入到白名单中才可以执行sudo命令。
二.文件权限
2.1 权限属性
在文件权限里面我们每一个人都有要各自扮演的角色~
就比如在一家公司中你独立设计出了一款软件,那你扮演的就是该文件的拥有者。假设你的合作伙伴想要添加一些功能,那他就是你的所属组(与你同名)(从other变为所属组),而除这以外的其他人都称为other。就好比拥有者想要分享,那么可以给所属组,而other是看不到的。
而对于文件权限的属性一共具备三种性质——rwx(读,写,执行文件)。
chmod命令
更改文件权限属性
用二进制的形式如果想要对应的权限则置1,三个为一组。
u-r,去除拥有者读权限。
u+w,g+w,o+w给拥有者,所属组,其他人添加写权限。
a+r,给所有人添加读权限。
注意:超级用户不会被这些权限所限制~
chown与chgrp命令
修改拥有者与所属组用户
其实普通用户得征求所改权限用户同意才可以修改,或者是用sudo指令。而超级用户直接修改。
2.2 文件类型
d:文件夹(目录文件)-:普通文件:文本,视频,源代码,图片等等l:软链接(类似Windows的快捷方式)b:块设备文件(例如硬盘、光驱等)p:管道文件c:字符设备文件(例如屏幕等串口设备)s:套接口文件
普通文件和目录文件我们见过很多了~
file指令
识别文件内容
源代码文件
常见类型
b:块设备文件支持随机访问,c:字符设备文件不支持随机访问。
l:软链接(类似Windows的快捷方式)
我们生成一个可执行文件mycmd,然后把该文件放进dir目录底下。
这是我们正常去执行的操作。
当我们用ln -s链接命令时,这是通过链接去执行的操作~
提示:在Linux系统下一般不会去关心后缀名,通过文件类型就可以观察了。但是在Linux系统之上例如gcc环境下就要关心后缀名(test.c,识别出为有关c语言的代码)
2.3 常见权限问题
问题一:
对于一个目录而言,如果要进入一个目录,需要什么权限?
这里感兴趣的同学可以慢慢尝试,我们直接说结论。
- x决定是否可以进目录
- r决定是否可以对文件属性信息进行查看的权利(例如ll)
- w决定是否可以在目录下新建与删除文件
当然还是老规矩:超级用户无视以上规则
问题二:
为什么我们创建的普通文件:默认的权限不是777,而是644
为什么我们创建的目录文件:默认的权限不是777,而是755
这是看需求决定的,比如目录文件肯定需要可执行的操作,所有基本都有x,而普通文件种类太多,一般不要求x。
所以对普通文件而言,它的起始权限应该为666,对目录文件而言,它的起始权限应该为777.
那为什么还是跟我们当前创建的不一样呢?这也引出另一个知识点:权限掩码
小细节:直接看权限掩码,在有1的位置上对应到起始权限把1变为0即可。
注:我们还可以更改权限掩码
问题三:
一个文件能否被删除,是否取决于文件本身?
假设对使一个文件失去所有的w权限,那它是否还能删除呢?例如root在dir目录里创建了一个不可读不可写不可执行的文件。那用户ljz是否束手无策?
事实证明ljz可以删除超级用户所限制的文件,这是因为dir是在ljz的地盘创建的,其拥有者可以对该目录下进行rwx操作,删除自然轻而易举。
所以一个文件是否被删除,并不取决于文件本身。而取决于文件所处的目录中其拥有者是否有w权限。
归根到底还是因为超级用户到别人的地盘上创建文件,正常情况下不同用户之间是不允许除自己以外的用户在自己地盘上作出操作的。
如果我们需要在同一块地盘上进行合作共享呢?在tmp这里有可以让不同用户合作共享的区域。
可这样就很奇怪,变成了一起在别人的地盘上操作,并且还能拥有所有权限。万一张三看李四不顺眼在它的文件下设置不让李四读写,而李四恼羞成怒把张三的所有文件都删除了那不是糟糕了吗?
不用担心,为了避免这种情况,Linux给other新增了一个权限:t。
粘滞位:给共享目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行特殊限定。
该目录里的文件,只有root或者文件的拥有者才有权利删除,其他一概不允许。