Linux中不同普通用户是否可以互删文件

Posted Myuniverse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux中不同普通用户是否可以互删文件相关的知识,希望对你有一定的参考价值。

背景

在工作的时候,整个人感觉非常的迷糊之时,在线上环境中运行了rm命令,然后发现线上产生的日志文件的时间跨度非常的大。这时候感觉整个人都快要崩溃了都。幸好幸好,经过再三确认,并不是本人引起的,并且是符合预期的。事后,总结发现,虽然我是使用了rm命令,但是我所使用的角色并不能删除到线上文件,万事大吉,万事大吉。接下来做个实验,用来证明我是没有权限删除文件的,即Linux中不同用户是否可以互删文件

实现

在root的用户中编写创建用户的可执行文件:addUser.sh

useradd -d "/home/$1" -g "ysm" -m $1   # -d 表示该用户的主目录,-g表示指定用户组,-m表示主目录不存在的时候创建一个
passwd $1

在root的用户中给addUser.sh文件添加可执行权限

chmod +x addUser.sh

在root的用户中创建两个用户

./addUser.sh one
# 其中需要添加密码
./addUser.sh two

创建成功之后,在root用户下,切换到one这个用户

su - one

在one用户中的/home/one目录下创建一个a.txt文件

cd /home/one
touch a.txt

使用ls -l查看该文件信息

ls -l
# 输出
# -rw-r--r-- 1 one ysm 0 Oct  9 21:21 a.txt 其中one表示one这个用户,ysm表示one这个用户是属于ysm组的

退出one用户,并且切换到two用户,进入到/home/one目录下执行删除命令

exit # 执行这个之后就是root用户
su - two # 切换到two这个用户
cd /home/one
rm a.txt
# 输出
# rm: cannot remove \'a.txt\': Permission denied 这就表明我删除不成功,没有权限

总结

实验证明,我执行rm文件只能删除我当时所属角色的文件,哈哈哈哈。不同普通用户不可以互删文件

注意

看懂需要useradd命令和ls -l命令的基础知识。
关于useradd可以参考:https://www.runoob.com/linux/linux-user-manage.html
关于ls -l可以参考:https://blog.csdn.net/sjzs5590/article/details/8254527


Linux 用户和文件

Linux系统中用户的扩展研究

 

进程 用户和文件

Linux中的用户及用户组

linux中只有两个等级:root和非root,

  • 一个用户至少属于一个用户组
  • 一个用户可以属于多个用户组

用户本身的区别主要是权限的区别

各个用户之间的区别还有:

  • 是否拥有密码
  • home目录不同
  • 普通用户的home目录是/home/username/
  • root用户的home目录是/root/
  • 不同的shell(tty等)

所有用户都可以通过

cat /etc/passwd

来查看,passwd文件的格式为

<username>:<code>:<UID>:<GID>:<fullname>:<home_dir>:shell

UID

  • UID 0 %t root用户
  • UID 1~999 预留
  • UID 1000 以上是正常登陆的用户

GID

一个用户可以属于多个用户组,其中存储在/etc/passwd里的是专职用户组,每个用户只有一个专职用户组,其余用户组关联存储在/etc/group文件中

隐密码文件

考虑到/etc/passwd所有人都可以查看,于是以x代替,密码统一存储到/etc/shadow文件(只有root可以访问),全部以密文存储,shadow文件的格式为

<loginname>:

    <encrypted_code>:(* cannot login)

    <last Time code change>:

    <effective days>:

    <day-left notify>:

    <day-left effect>:

    <date invalid date>:

    <reserved bit>

组文件

组文件的存储格式为

<g_name>:<g_code>:<GID>:<in-group name>

正常情况下很少用到组密码,存储在/etc/shadow中

用户组文件中比较特殊的是组内用户名,其实是本组用户的列表,用,分割,如果字段为空则表示用户组为GID的用户名

普通用户使用sudo临时使用superuser的权限,使用sudo需要输入root密码,赋予用户权限需要修改

/etc/sudoers

文件

为没有root权限的用户添加root执行权

以上是关于Linux中不同普通用户是否可以互删文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux用户角色划分

linux用户和权限概述

linux用户和权限概述

Ubuntu自学笔记四

Android 逆向Linux 文件权限 ( Linux 权限简介 | 系统权限 | 用户权限 | 匿名用户权限 | 读 | 写 | 执行 | 更改组 | 更改用户 | 粘滞 )(代码片段

Linux中的权限发布啦!