当前位置:首页>Linux>Linux——基础指令(下)

Linux——基础指令(下)

  • 2026-10-11 05:34:23
Linux——基础指令(下)

4.Linux权限的问题

4.1Linux下的两种用户

●超级用户:可以在Linux系统下做任何事情,不受限制

●普通用户:在Linux下做有限的事情

●超级用户的命令提示符是'#',普通用户的命令提示符是'$'

命令:su [用户名]

功能:切换用户

例如,要从root用户切换到普通用户user,则使用su user即可

要从普通用户user切换到root用户,则使用su root(root可以省略),此时系统会提示输入root用户的密码。

4.2Linux权限管理

4.2.1文件访问者的分类

●文件和文件目录的所有者:u---User

●文件和文件目录的所有者所在的组的用户:g---Group

●其它用户:o---Others

4.2.2文件类型和访问权限(事物属性)

●文件类型:

        ▢ d:文件夹

        ▢ -:普通文件

        ▢ l:软链接(类似Windows的快捷方式)

        ▢ b:块设备文件(例如硬盘、光驱等)

        ▢ p:管道文件

        ▢ c:字符设备文件(例如屏幕等串口设备)

        ▢ s:套接口文件

●基本权限:

        ▢读(r/-):Read如文件而言,具有读取文件内容的权限;对目录来说,具有浏览该目录信息的权限

        ▢写(w/-):Write对文件而言,具有修改文件内容的权限;对目录来说具有删除移动目录内文件的权限

        ▢执行(x/-):execute对文件而言,具有执行文件的权限;对目录来说,具有进入目录的权限

        ▢'-'表示不具有该权限

4.2.3文件权限的表示方式

●字符表示方法

●8进制 数值表示方法

4.2.4文件访问权限的相关设置方法

4.2.4.1chmod

功能:设置文件的访问权限

格式:chmod [参数] 权限 文件名

常用选项:

●R -递归修改目录文件的权限

●说明:只有文件的拥有者和root才可以改变文文件的权限

chmod命令权限值的格式:

●用户表示符+/-=权限字符

        ▢ +:向权限范围增加权限代号所表示的权限

        ▢ -:向权限范围取消权限代号所表示的权限

        ▢ =:向权限范围赋予权限代号所表示的权限

        ▢ 用户符号:

                ▨ u:拥有者

                ▨ g:拥有者同组用

                ▨ o:其它用户

                ▨ a:所有用户

        ▢例如:

                ▨chmod u+w /home/abc.txt

                ▨chmod o-x /home/abc.txt

                ▨chmod a=x /home/abc.txt

●三位8进制数字

        ▢例如:

                ▨chmod 664 /home/abc.txt

                ▨chmod 640 /home/abc.txt

4.2.4.2chown

功能:修改文件的拥有者

格式:chown [参数] 用户名 文件名

例如:

●chown user1 f1.txt

●chown -R user1 filegroup1

4.2.4.3chgrp

功能:修改文件或目录的所属组

格式:chgrp [参数] 用户组名 文件名

常用选项:-R 递归修改文件或目录的所属组

例如:chgrp users /abc/f2

4.2.4.4umask

功能:

●查看或修改文件掩码

●新建文件默认权限为0666

●新建目录默认权限为0777

●但实际上创建的文件和目录,看到的权限往往不是上面这个值。原因就是创建文件或目录的时候还要受到umask的影响。假设默认权限是mask,则实际创建出来的权限为:mask&(~umask)

格式:umask权限值

说明:将现有的存取权限减去权限掩码后,即可产生建立文件时预设权限。超级用户默认掩码值为0022,普通用户默认为0002。

例如:

●umask        //查看

●umask 044        //设置

4.2.5file指令

功能说明:辨识文件类型

语法:file  [选项] 文件或目录…

常用选项:

●-c:详细显示指令执行过程,便于排错或分析程序执行的情形。

●-z:尝试去解读压缩文件的内容。

使用sudo分配权限

(1)修改/etc/sudoers文件分配文件

# chmod 740 /etc/sudoers

# vim /etc/sudoers

格式:接受权限的用户登录的主机=(执行命令的用户)命令

(2)使用sudo调用授权的命令

$ sudo -u 用户名 命令

例如:

$ sudo -u root /usr/sbin/useradd u2

4.2.6目录的权限

●可执行权限:若目录没有可执行权限,则无法cd到目录中

●可读权限:若目录没有可读权限,则无法用ls等命令查看目录中的文件内容

●可写权限:若目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件

也就是说只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限。

貌似不太科学,张三创建的文件,为什么可以被李四删除?采用如下过程验证

  1. [root@VM-0-6-centos usr]# chmod 0777/home

  2. [root@VM-0-6-centos usr]# ls /home -ld

  3. drwxrwxrwx. 4 root root 4096 Jul 1321:40/home

  4. [root@VM-0-6-centos usr]# touch /home/root.c

  5. [root@VM-0-6-centos usr]# ls -l /home

  6. total 8

  7. drwx------ 2 lighthouse lighthouse 4096 Mar 2022:53 lighthouse

  8. -rw-r--r-- 1 root       root          0 Jul 1600:24 root.c

  9. drwx------ 5 sjx        sjx        4096 Jul 1520:34 sjx

  10. [root@VM-0-6-centos usr]# su sjx

  11. [sjx@VM-0-6-centos usr]$ rm /home/root.c

  12. rm: remove write-protected regular empty file ‘/home/root.c’? y

  13. [sjx@VM-0-6-centos usr]$ ll /home

  14. total 8

  15. drwx------ 2 lighthouse lighthouse 4096 Mar 2022:53 lighthouse

  16. drwx------ 5 sjx        sjx        4096 Jul 1520:34 sjx

一键获取完整项目代码

为了解决这个不科学的问题,Linux引入了粘滞位的概念。

4.2.7粘滞位

  1. [root@VM-0-6-centos /]# chmod +t /home    //加上粘滞位

  2. [root@VM-0-6-centos /]# ls -ld /home

  3. drwxrwxrwt. 4 root root 4096 Jul 1600:25/home

  4. [root@VM-0-6-centos /]# su sjx

  5. [root@VM-0-6-centos /]# su sjx

  6. [sjx@VM-0-6-centos /]$ rm /home/my.txt    //sjx不能删除别人的文件

  7. rm: remove write-protected regular empty file ‘/home/my.txt’? y

  8. rm: cannot remove ‘/home/my.txt’: Operation not permitted

一键获取完整项目代码

当一个目录被设置位“粘滞位”(用chmod+t),则该目录下的文件只能由

1.超级管理员

2.该目录的所有者删除

3.该文件的所有者删除

4.3关于权限的总结

●目录的可执行权限是表示你可否在目录下执行命令

●若目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目录,即使目录仍然有-r读权限

●而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限

●所有在目录下,即使可以执行ls 命令,但仍然没有权限读出目录下的文档

最新文章

随机文章