菜机互啄 linux权限管理
Linux权限管理
总共有10位 第一位代表文件类型
剩余的每3位为一组 三组分别为
所有者:谁创建的文件或目录
所属组:这个文件属于哪个组的那些成员
其他人:除去所有者和所属组其余的用户
权限:定义资源或服务的访问能力
三种用户附有权限分别为
用户(所有者):谁创建的目录 相当于一个标识符,就跟点名册是同一个道理,在系统上标识出有这么一个人,对资源或服务有一定的访问权限
用户组(所属组):可以理解为一个权限容器或者将权限的集合,把除了管理员之外的用户放在里头让他们拥有访问服务和资源的权限,同时这个容器还可以关联权限 ,方便指派权限
其他用户:除了用户本身和用户组里头的人,之外的用户
文件:文件会附有权限,定义谁可以访问谁不可以访问
小知识串讲:计算机的操作都是靠进程完成的,用户只是定义为需要执行什么程序。进程也是具备属主和属组的,谁发起的进程,进程就会以谁的身份运行
进程到底能够访问哪些权限,取决于进程本身的权限和所访问文件的权限,这叫做进程的安全上下文。
对于文件来讲
r:可读 ,可以使用类似cat等命令查看
w:可写 ,可以编辑或删除此文件
x:可执行,可以在命令提示符下当作命令提交给内核运行,
对于目录来讲
r:可以使用ls以列出内部的所有文件,但不能查看详细信息
w:可以再次目录创建文件:删除要取决于文件自身的权限
x:可以使用cd切换进此目录,也可使用ls –l查看内部文件的详细信息,没有X执行权只能使用ls不能查看内部文件的详细信息
一般来讲目录须有X执行权,而文件不建议有,一但文件有执行权 就可以把命令或者文本文件提交给内核,要是恶意的文件提交给内核那么就会造成系统损坏,所以不建议有
数字表示
总权限为777 分别对应r w x 三位权限 分别用二进制算法得出这里只要记住以下权限代表数字即可
r读: 4
w写: 2
x执行: 1
例:rw- r-- ---:640 数字表示就是640
所有者具有读写权 所属组具有写的权利 而其他人没有权限
用户:UID /etc/passwd
解释:每个用户都有一个标识符 那么UID就是用户的标识符,操作系统会将用户名自动翻译成UID号 ,那么操作系统怎么知道一个用户的UID号到底是什么?
那么必须要有一个数据库,从系统中查找 把用户名转换成UID号,这个转换的过程就叫做解析
所以/etc/passwd就是一个数据库 一个记录用户名解析成UID号的数据库
组:GID /etc/group
解释:组的标识,组的数据库在/etc/group
如果数据库中存放着用户名和密码那么就存在安全隐患
所以! Linux中启用了一种影子口令的概念
影子口令:
用户密码:/etc/Shadow
用户的密码就存放在/etc/shadow里
组密码:/etc/gshadow
用户类别:
用id -a 用户名查看
管理员: root 0
系统用户:0—500
一般用户:500—60000
什么叫系统用户:其实进程也是需要作为用户去执行的,所以执行进程也可以理解为系统用户
用户组的类别
私有组:创建用户时,如果没有为其指定所属的组,系统会自动为其创建一个和用户名相同的组
附加组:额外组,默认组意外的其他组
基本组:用户默认的组
Chmod :更改用户的使用权限
-R 递归修改权限 把文件夹的所有权限都更改
格式 Chmod 文件权限 文件名
例chmod 755 tmp
把文件夹的用户使用权限 更改成755
755到底什么意思 上面都有解释
另一种方法
Chmod u +或者- 或者= r x w u是属主 rxw分别是读写执行
g +或者- r x w g是属组
o +或者- r x w o是其他人
= :替换权限 如果是空格那么就是不给权限
第一种适合 单个更改一种文件 第二种适合递归修改所有文件
第一种针对于文件权限 第二种则是更改为用户权限,如果需要递归修改文件夹的里的内容, 文件是不应该用有执行权的,如果使用755数字方式无法再兼顾文件权限的同时还要区分文件和文件夹,所以使用第二种方式从用户方面下手更改
Chown:更改文件的属主,属组
-R 递归修改权限 把文件夹的所有权限都更改
格式chown 文件的属主:文件的属组 文件或者文件夹名称
例 chown wulei:wulei tmp
把文件tmp的属主和属组 全部更改成wulei
为什么默认创建权限是755 664呢?
umask:遮罩码
umask (用户名):可以直接查看用户的遮罩码
创建文件:666 –umask
创建目录:777 –umask
如何设定 目录或者文件的初始权限呢?
Umask -p后面跟需要减少的权限数字
umask –p 022 也就是现在的umask数值为022
umask –p 权限号 用户名 : 这种可以直接更改指定用户的初始创建权限
在用777 -022 就是用户的初始权限了 目录初始权限为755
umaks –S 大写S 直接用u= rxw g=rw o=x 这种数字方式显示出来
在用777 -022 就是用户的初始权限了 目录初始权限为755
站在用户登录的视角来看shell类型有两种
登录式shell
正常通过某终端登录
Su – 用户名
Su –l 用户名
配置更改在全局配置里,对所有人都生效
配置更改在个人配置里只对某一个人生效,
如果两个配置都有 以个人配置为准
全局配置
全局配置文件:/etc/profile /etc/profile.d/*.sh /etc/bashrc
个人配置
个人配置文件:/home/用户名/.bash_profile /home/用户名/.bashrc
profile 类文件
设定环境变量
运行命令或脚本
这类文件里面定义的环境设定是非常多的
bashrc类文件
设定本地变量
定义命令别名
登录式shell如何读取配置文件
最先读取/etc/profile → /etc/profile.d/*.sh →/home/用户/.bash_profile → /home/用户/.bashrc → etc/bashrc
这种shell是登录式登录 也成完全切换 完全切换成用户身份
非登录式shell
Su 用户名
非登录
先读取/home/用户/.bashrc → etc/bashrc → /etc/profile.d/*.sh
profile 类文件
设定环境变量
运行命令或脚本
这类文件里面定义的环境设定是非常多的
bashrc类文件
设定本地变量
定义命令别名
这种就是非登录shell 没有完全切换
图纸终端打开命令窗口 也是非登录的
自动执行的shell脚本
Bashshell的配置文件
可以根据需要进入/etc 自行更改配置文件 以达到需要