二周第三次课(1月31日)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二周第三次课(1月31日)相关的知识,希望对你有一定的参考价值。

2.14 文件和目录权限chmod

2.15 更改所有者和所属组chown

2.16 umask

2.17 隐藏权限lsattr/chattr



2.14 文件或目录权限chmod


#ls-l 查看文件的详细属性

~#ls-l 

-rw-r--r-- root root 2.txt


此处分为十个字符,

第一个字符代表文件的类型,

r 可读 w 可写 x 可执行

rw-文件所有者权限

可读可写不可执行

r--文件所属组权限

可读不可写不可执行

r--其他用户权限

第二位到第十位 是权限分界,这9个字符分为3段,每3段分一个权限界别 第一段是所有者权限,第二段是所属组权限,第三段是其他用户权限。


权限可以用数字显示,例如

r=4,w=2,x=1,那么rwx=4+2+1=7

rw-=4+2=6 --x=1

rw-r--r--=644


#chmod  更改文件权限

chmod=change mode(mode权限意解) 缩写

将2.txt的文件属性改成rwx------

用法

#chmod 700 2.txt

#ls -l 2.txt

-rwx------ 2.txt


举例

-rwx------.中的“.”是什么意思?

“.”的意思是 这个文件受制于selinux

如果开启了selinux,第一列创建的文件都会有“.”。如果想取消“.”,需要关闭防火墙,创建文件,才会被取消。(修改防火墙禁用,需要#vi /etc/selinux/config,此处只做了解,不用太详细)


#chmod -R 对目录本身及其子文件的权限产生改变。(批量更改权限)

#cd /tmp/ 

#ls -l 

drwxr-xr-x /aming2

目录aming2变成了777权限,发现/aming2的子文件没被更改权限。

#chmod 777 aming2 

#ls -ld 

#drwxrwxrwx /aming2

#cd /aming2

#ls - ld

-rw-r--r-- 1.txt


更改/aming2目录本身以及文件权限,

#chmod -R 777 aming2

#ls -ld

两者均为777权限。


其他用法

#chmod u=rwx,g=r,o=r aming2


各种用户都取消各种权限用法

#chmod a-x aming2 a=all,所有权限,-代表减去、撤走权限。此用法是,所有权限(所有者,所属组,其他用户),撤去x权限。

#chmod u-x aming2  撤销所有者的x权限

#chmod o+x aming2  撤销其他用户的x权限




2.15 更改所有者和所属组chown


chown =change owner 改变所有者,所属组,其他人


#cat /etc/passwd 进去 查看用户(root,bin....用户,系统自带创建)

可以看到最后2个是自创的用户,aming及user1用户


#ls /tmp/

aming2/ yum.log

#ls -l /tmp/yum.log(截图或者复制结果)

-rw--- yum.log

用法

#chown aming /tmp/yum.log

#!ls 

ls -l /tmp/yum.log


-rw------. 1 aming root /tmp/yum.log

修改成功


chgrp= change group

用法

修改所属组为user1,修改成功

#chgrp user1 /tmp/yum.log

#!ls 

复制结果


此命令也可以修改组名

#chown user1:aming /tmp/yum.log 

同样,只修改所属组名用法

#chown :root /tmp/yum.log


#chown -R

#chown -R user1:aming /tmp/aming2

#ls -l /tmp/aming2/

此处复制结果

-rwxrwx--- user1 aming 1.txt


#ls -ld /tmp/aming2

drw-r--r-- user1 aming /tmp/aming2


总结,

#chown -R username:group filename 更改所有者与所属组

#chown -R username filename 更改所有者


2.16 umask


umask决定默认的文件和目录的权限。


为什么创建文件就是644,创建目录就是755?

#touch 11.txt

#ls-l 

-rw-r--r-- (644权限)

#mkdir123

#ls -ld 123

drwr-xr-x (755)


#umask

0022

系统root用户的umask值,


#umask 002 (002等于=0002,第一位0一般忽略)


#mkdir 234

#ls -ld 234

drwxrwxr-x 234(775)

#touch 3.txt

#ls -l 3.txt

-rw-rw-r-- 3.txt (664)


默认值0222 644 755

修改后002 664 775

那我们可以按照这样算,

默认Umask算法

777-022=755

666-022=644

所以修改002后的算法是,

777-002=775

666-002=664

目录必须要有x权限,不能没办法浏览,没办法进入。


为了证明以上说法,举例测试

#umask 003

#rm -rf 11.txt 2.txt 3.txt

#touch 1.txt

#ls -l 1.txt

-rw-rw-r-- 权限变成664了,

[如果#666-003=663,可表示成666=(rw-rw-rw-)-(--------wx)=rw-rw-r--=664]

[777-003=rwxrwxrwx- -------wx = rwxrwxr--=774]

创建目录,看看到底目录权限是不是774

#mkdir 111

#ls -ld 111 

drwxrwxr-- 111

此处证明创建目录默认权限是774,


通过umask怎么能够判断默认权限是多少?

用减法,用9位权限位对应相减。


老师,你视频中最后20秒说的

最后一个原则

“--x --w 依然是什么都没有”是什么意思?




以上是关于二周第三次课(1月31日)的主要内容,如果未能解决你的问题,请参考以下文章

二周第三次课(12月20日)

六周第三次课(1月17日) 9.6/9.7 awk

一周第三次课(12月13日)

五周第三次课(1月10日)

六周第三次课(1月17日)

六周第三次课(3月14日)