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权限管理的主要内容,如果未能解决你的问题,请参考以下文章

Linux权限管理---特殊权限

[Linux之权限管理⽤户组管理]

Linux 权限管理命令

LINUX权限管理

linux用户及权限详解-用户组-用户管理-权限管理

Linux用户权限管理和组管理相关命令