「Linux系列」6-权限设置

Keep Going !

关键字:Linux 学习路线、工具、常识、目录结构等
摘要:包含 linux 的学习路线和前要基础知识。

一 文件的三个组

  • 创建者(我):u
  • 组(我家):g
  • 其他组(别人家): o

image-20221010160925951

查看用户所在组:

  • 查看所有组:cat /etc/group

image-20221010164727561

  • 仅查看具体的组

image-20221010164556362



二 修改文件所有者和所在组

  • 所有者 chown

    • 将 hello.txt 文件的所有者修改为 cat :chown cat hello.txt
    • 将 animals 目录下所有文件和目录所有者改为 cat :chown -R cat animal
  • 所在组**( !!! )**chgrp和usermod区别

    • 将文件 hello.txt 的所在组修改为 Good :chgrp Good hello.txt
    • 将 animals 目录下所有文件和目录所在组改为 Good :chgrp -R Good /home/box
  • **将用户 pig 的组修改为 Good **:usermod -g Good pig

Tips:一定要分清 chgrp 和 usermod 的区别!一个是修改文件的组,一个是修改用户的组!


【例子】

[1] 将 test.txt 文件的所有者改为 HL

chown HL test.txt

[2] 将 testbox 目录下所有文件和目录所有者改为 tom

chown -R HL /home/box



三 修改权限

rwx 权限结构(10位)

0:确定文件类型

  • l :类型,相当于快捷方式
  • d:目录,相当于文件夹
  • c:字符设备文件 ,鼠标和键盘
  • b:块设备,比如硬盘

1—3位:所有者对文件的权限【u】

4—6位:所在组对文件的权限【g】

7—9位:其他用户对文件的权限【o】


方法一:通过字母+、-、=修改权限

  • chmod 指令( +-=三种变更符号)

    • chmod u=rwx,g=rx,o=x hello.txt ( u用户g用户组o其他人a所有人 )

    • chmod o+rw hello.txt

    • chmod a-x hello.txt

【例子】

[1] 给 test.txt 文件,所有者读写执行权限,所在组读执行权限,其他组读执行权限。

·chmod u=rwx,g=rx,o=rx hello.txt

[2] 给 test.txt 文件,所有者除去执行权限,所在组增加写权限

chmod u-x,g+w test.txt

[3] 给 test.txt 的所有用户添加读的权限

chmod a+w test.txt


方法二:通过数字修改权限

r=4,w=2,x=1(rwx=4+2+1=7)

1 x

2 w

3 wx

4 r

5 rx

6 rw

7 rwx

【例子】

[1] 将 /test.txt 权限改为 rwxr-xr-x

chmod 755 test.txt

现在你知道 chmod 777 文件 是个什么意思了吧?



四 练习

游戏-1

【任务要求】

1、Police 组:Tom、Jack;Killer 组:XY、Joker

1、创建两个组

2、创建四个用户角色

3、警察Tom创建一个文件,自己可读写,本组警察可读,其他组无任何权限

rw- r– — 640

4、Tom 修改改文件,让其他组可读,本组人可写

5、XY 投靠警察阵容,看看是否可读写

【整理】

A1:改变用户组叛变的 chgrp 和 usermod 区别??

A2:虽然同在一个组,但是彼此无法进入彼此的 Home 目录大门

给了 Tom640 的权限,为何同组的 Jack 还是无法进入 Tom 的 home 目录?

650 也不行,只能 770 吗?

游戏-2

【任务要求】

1、建立两个组(Good组,Bad组)qgroupadd Good

groupadd Bad

2、建立四个用户(cat,dog)(pig,wolf)

useradd cat

useradd dog

useradd pig

useradd wolf

3、设置用户的密码

passwd cat :cat

passwd dog :dog

passwd pig :pig

passwd wolf :wolf

4、把猫狗放进 good 组,猪狼放进 bad 组

chgrp ??

usermod -g good cat

usermod -g good dog

usermod -g bad pig

usermod -g bad wolf

5、用 dog 建立一个文件 who.txt ,并 echo 输出

su dog

vim who.txt

6、文件给 cat 读写权限

chmod g+w who.txt

7、cat 修改一句话

vim who.txt

“I am a good cat!”

8、狼和猪没有权限

Wolf:cd /home/dog

Pig:cd /home/dog

9、把 pig 放入 good 组,修改文件并表明身份

vim who.txt

“I am a good pig!”

10、复盘和总结!

【复盘总结】

Q1: 错错错!!!!!, Chgrp good pig 是错误的!

A:chgrp 是移动文件所在组 ,usermod -g new old 才是移动分组!

Q2: 解决:“userdel: user xxxx is currently used by process xxx” 的问题

A:https://blog.csdn.net/qq_44653106/article/details/126442493


Keep going,and keep trying...