目录
一. 用户
在Linux中, 有两种用户,分别为超级用户(root)以及普通用户
而我们可以使用su指令来进行两种用户之间的切换
在这个普通用户中,我们可以使用 su 命令将该用户的身份切换为root
而当前所处的位置并不会发生变化
同时,我们可以使用exit命令或者ctrl+d退回原本的用户
我们也可以使用 su - 命令
而 su -命令会直接登录到超级用户,因此所处位置也会发生改变
我们也同样可以使用exit命令或者ctrl+d退回原本的用户。
而若是我们想要从超级用户切换至普通用户或者进行普通用户之间的切换, 我们可以使用 su [用户名]或者 su - [用户名]命令
由于我们是超级用户, 因此我们不需要输入密码便可以直接进行,而若是我们进行普通用户之间的切换,依旧需要密码
而我们在使用类似于yum这样需要root权限的命令时,除了将用户切换为root执行命令之后切换回来,我们也可以在想要执行的命令之前加上 sudo 命令使得在执行后面的命令时暂时将用户切换为root
若是在使用sudo时出现以下问题
这是由于系统不信任该普通用户, 我们可以在root用户中输入这样一串命令 (centos)而将其加入白名单中
二. 权限
1.文件访问者
文件的访问者(用户)可以分为所有者, 所属组以及其他用户,在文件中,每一种访问者都可以具有不同的权限
2.文件的权限
我们可以通过 ls -l 命令来得到文件的属性
其中,第二列代表了文件的连接数, 第三列和第四列分别代表了文件的所有者和所属组, 第五列代表了文件的大小(字节),而后面的则是文件的修改时间。
而第一列中,第一项代表的是文件类型,其中 d 代表目录, - 代表普通文件, l 代表链接文件,b 代表块文件, s 代表套接口文件,c 代表字符设备文件, p 代表管道文件......
而后面的九项,我们将其三个分为一组,分别代表该文件对所有者,所属组和其他用户的权限
每三个中,第一个代表读权限,符号为 r,第二个代表写权限,符号为 w ,第三个代表执行权限,符号为 x ,若是不具有对应的权限,则为 - 而root用户不受权限约束
对于普通文件来说,读、写、执行权限很好理解
而对于目录文件来说,读权限代表能否查看目录中的文件,写权限代表能否增删目录中的文件,执行权限代表能否进入目录中
可以看到,所有者用户可以对test.cc文件进行读写操作
切换到root用户之后,依旧可以进行读写
而在其他用户中, 可以看到,我们只能读不能写
要注意的是,若某一用户对于某一文件既是所有者,又是所属组,那么它所具有的权限仅限于所有者的权限,因为在进行身份认证时只能选择一个,而所有者优先于所属组
3.权限及访问者的修改
同时,我们可以使用 chmod 命令来进行权限的修改
第一种方式是使用用户表示符+/-=权限字符
其中权限字符我们已经介绍过了,而用户表示符有 u:所有者、g:所属组、o:其他用户、a:所有用户
而+代表增加权限、-代表取消权限、=代表赋予权限,而后面的权限字符不限于一个,也不限顺序
而第二种方法是 使用三位8进制数字来做权限的修改
而这三位8进制数字都是由不同访问者的权限转换而来的,r w x分别作为4、2、1
除了权限以外,我们还可以分别使用chown 和chgrp 来对所有者和所属组进行修改
也可以使用chown 同时对所有者和所属组进行修改
4.权限掩码
在新创建的文件之中,普通文件权限默认为664,目录文件权限默认为775
而对于普通文件,起始权限为666, 目录文件起始权限为777
这是由于权限掩码的原因
我们可以使用umask 命令来查看权限掩码
而在权限掩码中出现的权限不会出现在文件中
我们也可以直接使用umask 命令来修改权限掩码
5.粘滞位
我们知道,目录文件的写权限代表能否对文件进行增删,而当我们处于其他用户时,尽管我们对某一目录具有写权限,我们却不想让他能够删除目录中所有者为其他用户的文件,因此我们可以使用粘滞位来解决
我们使用chmod +t 命令来为目录设置粘滞位
当一个目录设为粘滞位时,内部文件只能由root用户/目录所有者/文件所有者删除