Linux权限管理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux权限管理相关的知识,希望对你有一定的参考价值。
1.权限组合机制
2.chmod、chgrp、chown、umask、install、mktemp
进程以其发起者的身份运行:
进程对文件的访问权限,取决于发起此进程的用户的权限
为了能够让那些后台进程或服务类进程以非管理员的身份运行,
通常需要为此创建多个用户,这类用户从不用登录系统
权限管理
进程安全上下文:
进程对文件的访问权限应用模型:
1.进程的属主与文件的属主是否相同;如果相同应用属主权限,否则看是否属于属组,或者其他人
属主-->属组-->其他人
#:cat /etc/issue
root用户使用cat命令访问/etc/issue,issue的属主为root,该进程的属主为root,使用的是root的权限
进程的属主:是进程的发起者
文件:
r:可获取文件的数据
w:可修改文件的数据
x:可将此文件发起运行为进程
目录:
r:可使用ls命令获取其下的所有文件列表
w:可修改此目录下的文件列表,即创建或删除文件
x:可cd至此目录中,且可使用ls -l来获取所有文件的详细属性信息
mode:rwxrwxrwx
ownership:user,group
1.权限组合机制:
r:4,w:2,x:1
chmod [OPTION]... MODE[,MODE]... FILE... //使用rwx
chmod [OPTION]... OCTAL-MODE FILE... //使用4,2,1
chmod [OPTION]... --reference=RFILE FILE...//参考其他文件
-R --recursive递归,默认只会修改目录自身的权限//加入目标是目录
1. 赋权表示法:直接操作一类用户的所有权限位
u=,g=,o=,a= 对应[rwx]
chmod g=rw u=w a
授权表示法:直接操作一类用户的一个权限位
u+,u- 对应[rwx]
g+,g-
o+,o-
a+,a- //可以省略a
chmod u+x a
chmod ug+x a //也可以组合
chmod g-wx a //一次减去两个权限
chmod +x a// 为属主和属组和其他都加上x
chmod u+x,g+w a
2. 八进制,直接指定权限
3. chmod --reference=/var/log/message aa
2.从属关系管理命令:chmod,chown
chown [option]...[OWNER][:[GROUP]] FILE ...
chown [option]... --reference=RFILE FILE ...
-R 递归修改
chown test:tmd bb
chown test.tmd bb //作用一样
3.chgrp 只能用来修改组
chgrp [OPTION]... GROUP FILE...
chgrp [OPTION]... --reference=RFILE FILE...
仅仅管理员可以修改文件的属主和属组
注意:用户仅能修改属主为自己的文件的权限
思考:加入用户对目录有写权限,但对目录下的文件没有写权限时,能否删除此文件?能否修改此文件内容
可以删除此文件:因为对该目录有写权限
不能修改此文件:因为对文件没有此权限
//可以强制覆盖写入vim,w!,但是使用echo 追加的话是不可以的
chown :mygrp bb 修改用户的组为mygrp,
4.umask 文件权限的反掩码
文件:
666-umask 默认权限
目录:
777-umask 默认权限 //目录默认都有执行权限
注意:如果文件减去的权限中有执行权限,则需要+1
umask:023
666-023=644 //而不是643
对目录没有限制还是777-023=754
默认为0022
umask命令:
umask:查看当前umask
umask MASK:设置umask
注意:此类设定仅对当前shell进程有效
5.install复制文件和设置文件属性
install [OPTION]... [-T] SOURCE DEST 单源复制
install [OPTION]... SOURCE... DIRECTORY 多源复制到目录
install [OPTION]... -t DIRECTORY SOURCE... 多源复制
install [OPTION]... -d DIRECTORY... 创建目录
install /etc/inittab /tmp/ //如果不指定权限默认为755
-m --mode=MODE 设定目标文件的权限
-m 640
-g 设置文件的属组
-o 属主
-t 目标目录
-d 创建目录//install -d hello 创建该目录
6.创建临时文件
mktemp
mktemp /tmp/a.XXX //最少3个XXX,多次执行,产生不一样的文件
-d 创建一个临时目录,而不是文件
-u dry-run 干跑,只显示一下,并不真的创建该文件
可直接通过命令引用保存起来
练习:
1.新建系统组mariadb,新建系统用户mariadb
属于mariadb组,要求其没有家目录-M,shell为nologin,尝试root切换至用户,查看其命令提示符
//根本切换不过去
2.新建GID为5000的组test1,新建用户gentoo,要求其家目录为/users/gentoo,密码同用户名
groupadd -g 5000 gentoo
mkdir /users/gentoo -p
cp -ar /etc/skel/ /users/gentoo/
useradd test1 -g 5000 -d /users/gentoo/
echo "test1" | passwd --stdin test1
以上是关于Linux权限管理的主要内容,如果未能解决你的问题,请参考以下文章