文章目录
- 权限的概念
- 创建与删除普通用户
- 普通用户与root用户的切换
- 权限管理
- 权限设置
- 文件掩码
- 权限的作用
- 粘滞位
权限的概念
在Linux系统中,存在两种主要用户类型,即超级用户root与普通用户。超级用户拥有极高的权限,可以在 Linux 统下执行几乎任何操作,其权限几乎不受限制。相比之下,普通用户通常只能在自己的工作目录/home/xxx内进行工作,并且在整个系统上所能进行的操作也较为有限。 换句话说,Linux系统中的权限概念主要是为了对普通用户的行为进行限制,以确保系统的安全性和稳定性。而超级用户由于其强大的权限,在使用时需要格外谨慎,以免误操作对系统造成严重破坏。 在命令提示符方面,超级用户的提示符为#,普通用户的提示符为$。这一区别可以帮助用户在使用命令行时快速区分自己当前所使用的用户身份,从而更好地掌握自己的操作权限范围
创建与删除普通用户
实际上,使用root账号是比较危险的,因为root账号的权限太大,可能会因为误操作而造成不可挽回的结果,所以我们最好创建一个普通用户的账号平时使用。接下来我们就来谈一谈如何创建一个普通账户:
- 将“username”替换为要创建的用户名:
useradd -m -s /bin/bash username
- 为新用户设置密码
passwd username
- 验证新用户是否已创建成功,输入新用户的密码以切换到新用户身份,如果成功登录则表示新用户已创建成功。
su - username
删除用户:
直接在root用户下,输入指令userdel -r yourid,即可删除。
普通用户与root用户的切换
我们平时使用的是普通用户,偶尔有些指令就需要在root用户下执行。所以这时候就需要我们切换用户。
如果从普通用户切换为root用户,可以使用两种指令:su(su root)与su-。其中第一个指令,仅仅是一个用户身份的切换,用户所处的路径不发生改变。而第二个指令则会更改为家目录/root下,其实就是su -就相当于重新登录。
如果是从root用户切换到普通用户,直接输入指令 su user。
切换用户后,若想切回上次的用户,可按Ctrl+d实现,也可以输入指令exit。
但是有时候我们并不知道root用户的密码,但是又需要root用户去执行某条指令,那么这时就需要输入指令sudo 指令,这条指令就可以提升我们要执行指令的权限,即让root用户执行。但是使用这个指令有一个条件就是root用户将此普通用户添加到可信任白名单中。
如果要将某个用户添加进入可信任白名单中,首先在root用户下,通过指令vim /etc/sudoers对应文件。
权限管理
用户划分
在Linux中,为了方便管理文件,对用户或者文件访问者还进行了划分
文件和文件目录的拥有者:u—User
文件和文件目录的所属组:g—Group
其它用户(即不是这个文件的拥有者):o—Others
因为other可能存在多个,所以除了文件拥有者和文件所属组之外的都叫other。因为other可能存在多个,所以除了文件拥有者和文件所属组之外的都叫other。
文件类型与访问权限
- -:普通文件(指不包含有文件系统信息的结构信息的文件,是用户所接触到的文件,比如常见的.exe,.c,.txt,归档文件等在Linux中统称为普通文件)。
- d:目录(文件夹)。
- l:软链接(类似Windows的快捷方式)文件。
- b:块设备文件(例如硬盘、光驱等)。
- p:管道文件。
- c:字符设备文件(例如屏幕等串口设备)。
- s:套接字文件。
如果仔细观察就可以发现,其一共有十个字符,除开第一个代表文件的类型外,后九个每三个为一组,分别代表拥有者,所属组,其他用户的可读,可写,可执行的权限。
文件访问权限被分为:
可读®、可写(w)、可执行(x)
八进制表示法:
权限设置
方法一:用户符号 +/-/= 权限字符
语法: chmod 选项 权限 文件名或目录名。
功能: 设置文件的访问权限。
常用选项: -R 递归修改目录文件的权限
给其他用户增加可写可执行权限:
给其他用户减少可写可执行权限:
值得注意的是:
如果相同时改变不同种类用户的访问权限,中间需要用逗号隔开。
方法二: 八进制数字
我们如何改变文件的拥有者:
语法: chown 选项 用户名 文件名或目录名。
功能: 修改文件的拥有者。
常用选项: -R递归修改目录文件的拥有者。
改变文件所属组也是一样:
语法:chgrp 选项 用户名 文件名或目录名。
功能: 修改文件的所属组。
常用选项: -R 递归修改目录文件的所属组。
其实我们还可以使用chown指令同时改变拥有者与所属组,中间用冒号隔开即可:
以上操作都是只有在root用户下才能执行的
文件掩码
实际上,新建文件的默认权限为0666(rw- rw- rw-),新建目录的默认权限为0777(rwx rwx rwx),其中第一位与特殊权限相关,这里我们不需要深究。但是实际上新建文件与目录的默认权限并不如上所说,这是怎么回事呢?
其实这种情况就与我们的文件掩码umask有关,我们设默认权限为mask,实际创建出的文件或目录权限为mask&umask。
我们可以通过这个指令umask 八进制数来修改默认的掩码umask:
其中需要注意的是:root用户的默认掩码为0022,而普通用户为0002。
权限的作用
对于普通文件来说,权限的作用就只有读、写、执行。但是对于目录而言,就有差别:
可读权限: 如果用户没有该目录的可读权限,则无法通过ls指令查看目录中的文件内容。
可写权限: 如果用户没有该目录的可写权限,则无法通过一系列指令在目录中创建文件或删除文件。
可执行权限: 如果用户没有该目录的可执行权限,则无法通过cd指令进入到目录当中。
但是这种情况就会导致一个非常严重的问题,那就是:拥有可读权限的人可以删除文件,这是不可取的,因为这个文件不一定是你创建的,你不可能去删除别人的文件。
所以了为了解决这个问题就引入了粘滞位的概念。
粘滞位
为目录添加粘滞位特别简单只需要输入指令chmod+t 目录名。
在为目录添加了粘滞位之后,该目录文件就只能由:root用户删除,该目录或文件的拥有者删除。