目录
- 操作系统
- shell外壳
- 为什么有shell外壳
- shell外壳是什么
- shell外壳工作原理
- Linux用户
- root用户与非root用户
- root用户与普通用户的切换
- 普通用户 --> root用户
- root用户 --> 普通用户
- 普通用户 --> 普通用户
- 对一条指令提升为root权限进行执行
- Linux权限
- Linux中的权限角色
- Linux中的权限文件属性
- 修改权限
- ugr、rwx权限修改
- 八进制权限修改
- 有 没有 权限的对比表现
- 更改文件拥有者、所属组
- Linux文件类型
- b块设备文件
- c字符设备文件
- l链接文件
- p管道文件
- file指令
- 常见的权限三个问题
- 1、对一个目录而言,进入一个目录需要什么权限
- 2、为什么创建的普通文件权限不是777,而默认是664;为什么创建的普通文件权限不是777,而默认是775
- 3、一个文件能否被删除并不取决于文件本身,而取决于文件所处的目录的拥有者是否有写权限
- 粘滞位
操作系统
操作系统概念
广义:内核+外壳(linux的外壳-命令行;Windows的外壳-图形化界面)
侠义:内核
shell外壳
为什么有shell外壳
用户不善于直接使用操作系统
shell外壳是什么
核心工作:用户与内核之间,需求指令<-shell->执行结果
shell外壳工作原理
shell – 本质是一个执行起来的程序(进程),系统启动期间,一直存在
有风险、用户自定义的指令 — shell都是通过创建子进程的方式去执行有风险的程序
无风险的指令 — shell自己执行
Linux用户
root用户与非root用户
root用户:只有一个
非root用户:即普通用户,可以有多个
root用户与普通用户的切换
只有一个
普通用户 --> root用户
//以root身份重新登录一次
su -
//用户身份提升为root
su
su - 切换用户之后还会显示一大段的用户登录信息
su 切换用户之后不会显示
输入下列指令就又会退出来了
logout
root用户 --> 普通用户
su 普通用户名
普通用户 --> 普通用户
su 普通用户名
普通用户切换成root用户,需要输入root用户的密码
root用户切换成普通用户,不需要输入普通用户的密码
普通用户切换成另一个普通用户,需要输入另一个普通用户的密码
对一条指令提升为root权限进行执行
sudo 要执行的指令
问题1:
系统中有一个用户信息配置文件,sudoers有点像linux里面的一张名单,如果一个普通用户在这个配置文件名单里面,就允许该用户进行sudo。
这个文件只能root用户进行添加,因此能进行sudo的用户必须是经过root用户允许的
sudoers相当于Linux里面的白名单,还有一个黑名单。白名单:做什么都运行,黑名单:做什么都不允许
将用户添加到sudoers
使用文本编辑器进行添加,vim之后再讲
如果我们输入sudo就可以以root的身份执行指定的命令,root的密码毫无意义??
上面就是原因
下面的命令跑不起来
sudo ll
Linux权限
权限是限制人的,能还是不能的问题
对应的操作对象,一定要有对应的满足人的需求的属性
主要用于文件权限上
Linux群体(人)---- 更多的是角色(身份)!— 拥有者 所属组 other vs (root/hui/xxx普通用户)
角色是需要人去承担的,因此对于root/hui/xxx在不同的文里面会承担不同的角色(拥有者、所属组、other)
Linux操作对象的属性 ---- 文件权限属性上 ---- r w x(读、写、执行)
Linux中的权限角色
所属组:linux里面可以建立一些组,组名可以以其中一个用户的名称命名
Linux中的权限文件属性
rwx — 111 — 7
rw- — 110 — 6
修改权限
ugr、rwx权限修改
user -> u, group -> g, other -> o
更改权限命令:chmod u/g/o-权限,u/g/o-权限,u/g/o-权限文件名、chmod u/g/o+权限 文件名
chmod u-r,g-r,o-r file.txt
给所有人加上r权限
chmod a+r file.txt //a--all,所有人
八进制权限修改
chmod 777 file.txt
有 没有 权限的对比表现
拥有者没有读权限
拥有者没有写权限
对于执行,需要满足下列两个要求:
1、你有执行权限
2、这是一个可执行文件
权限x的意思是,你要执行的时候我不拦着你,但前提你得是个可执行文件
linux中权限角色判断,从拥有者、所属组、other依次开始判断,如果是拥有者就不会继续往后判断,就只看拥有者的权限
root账号之下,不受权限约束
更改文件拥有者、所属组
修改拥有者
chown 要更改的用户名 文件名
但这个是不允许的,给别人文件是需要征得别人允许。但在Linux里面是得不到允许的,只能来硬的,sudo进行指令提权
修改所属组
chgrp 要更改的用户名 文件名
没有更改other的指令
因为在修改拥有者、所属组时,other也在相应的改变
同时更改拥有者、所属组
chown 拥有者更改名:所属组更改名 文件名
Linux文件类型
Linux不通过后缀区分(不代表Linux不用后缀)
-:普通文件,文本、源代码、图片、视频、库、可执行等
d:目录文件
b:(block)块设备文件,磁盘,支持随机访问都是块设备
c:(char)字符设备文件,键盘,显示器,不支持随机访问
l :链接文件
p:管道文件
s:socket文件
linux下一切皆文件,硬件设备也会被当文件
b块设备文件
c字符设备文件
在系统中,每一次打开一个终端文件,这个终端文件也是一个
l链接文件
具有指向性(类似快捷方式),lib64是系统中默认安装的很多库文件
p管道文件
mkfifo 管道名
这种管道文件和之间学命令行的|有很大关系,但不一样,他们是兄弟关系,后面学
管道文件:传递信息
file指令
更加详细的显示是什么文件
file 文件名
常见的权限三个问题
1、对一个目录而言,进入一个目录需要什么权限
不是写权限
不是读权限
chmod u-r,u+w dir
是x权限,进入一个目录收执行权限的影响
目录没有r权限,看不见目录里面文件对应的属性信息
目录没有w权限,无法在目录里面创建文件、删除文件、修改文件等,但文件属性可以改、文件名不能改
目录没有x权限,无法打开目录
2、为什么创建的普通文件权限不是777,而默认是664;为什么创建的普通文件权限不是777,而默认是775
drwxrwxr-x 2 hui hui 4096 Jan 19 12:34 new_dir
-rw-rw-r-- 1 hui hui 0 Jan 19 12:34 new.txt
对于x权限,只有需要的文件才加上,如目录、可执行文件。对于不需要的普通文件默认不加,如果用户需要再自己加
目录起始权限:777
普通文件起始权限:666
系统中不只有起始权限,还有权限掩码umask:定制一个文件被创建时的默认权限
查看系统默认的权限掩码
umask
0002 -> 002 -> 000 000 010(第一个0代表八进制)
起始权限&(-umask) = 最终权限(默认)
3、一个文件能否被删除并不取决于文件本身,而取决于文件所处的目录的拥有者是否有写权限
如果我们之间需要文件共享呢?
Linux里的根目录下的tmp目录就是,/tmp,被所以用户共享。但tmp里面有一个问题:你即使不让普通用户读写等,但它能删除(因为tmp的other权限有w)
drwxrwxrwx. 8 root root 4096 Jan 19 03:21 tmp
为了解决上述问题,Linux新增了一个权限,t — 粘滞位
drwxrwxrwt. 8 root root 4096 Jan 19 03:21 tmp
粘滞位
在共享目录中的other设置的一个权限位,具有x的意义,同时也进一步对目录权限进行了特定的限制
该目录里的文件,只有root或文件的拥有者或该目录的所有者有权利进行删除!!其他人一概不允许!
【Linux第一课-Xshell常用命令大全】Linux安装、xshell的安装与登录、os概念、xshell基本指令