Linux——用户及文件权限

本文深入探讨了Linux系统中的用户管理与权限配置,包括查看用户、创建用户、删除用户、用户组管理、文件权限设定等核心内容,旨在帮助用户理解和掌握Linux环境下多用户共存的高效管理技巧。

              以前很奇怪为什么我们可以同时用多个用虚拟机连接Linux服务器,而且不会干扰对方。现在已经知道Linux是一个可以实现多用户登陆的操作系统,他们共享一些主机的资源,但他们分别有自己的用户空间,用于存放各自的文件。

 

一、用户

1、查看用户

           命令:who am I  或者who mom likes

          说明:输出的第一列表示当前打开伪终端的用户名,第二列表示打开的伪终端序号,第三列表示当前伪终端的启动时间。

                   

         扩展:who命令其它常用参数:

参数

说明

-a

打印能打印的全部

-d

打印死掉的进程

-m

am i,mom likes

-q

打印当前登录用户数及用户名

-u

打印当前登录用户登录信息

-r

打印运行等级

2、创建用户

              Linux系统中,root账户拥有整个系统最高的权限。我们登录系统时都是以普通账户的身份登录的,要创建用户就需要root权限。使用sudo命令。

              新建一个叫xuxiaoguai的用户: sudo adduser xuxiaoguai

susu-sudo

              su<user>可以切换到用户user,执行时需要输入目标用户的密码

              su-l<user>: 切换登录用户

              su -<user>:也是切换用户,同时环境变量也会跟着改变成目标用户的环境变量。

 

3、删除用户

           命令:sudo deluser xuxiaoguai --remove-home


4、用户组

              首先说明一点:文件所有者与用户组本身没有什么关系,比如用户组可以是root,但是文件所有者为xuxiaoguai

案例分析:

              (1)一个文件的文件所有者为xuxiaoguai,用户组为root,当前登录用户为xuxiaoguai,如果想要让文件的所有者变成root,能成功吗?不能;

              (2)一个文件的文件所有者为xuxiaoguai,用户组为root,当前登录用户为root,如果想要让文件的所有者变成root,能成功吗?能;

              总结一点:改文件的所有者、用户组应该是root的职责;

              再说明一点:一个用户总会归属于一个或多个用户组,一个用户组里可以有多个用户,比如root用户归属于root用户组,但是我们也可以创建一个用户xuxiaoguai,既归属于group1用户组,又归属于group2用户组;

 

              在 Linux里面每个用户都有一个归属(用户组),用户组简单地理解就是一组用户的集合,它们共享一些资源和权限,同时拥有私有资源,就跟家的形式差不多,你的兄弟姐妹(不同的用户)属于同一个家(用户组),你们可以共同拥有这个家(共享资源),爸妈对待你们都一样(共享权限),你偶尔写写日记,其他人未经允许不能查看(私有资源和权限)。当然一个用户是可以属于多个用户组的,正如你既属于家庭,又属于学校或公司。


              在 Linux 里面如何知道自己属于哪些用户组呢?

方法一、使用groups命令

                groups xuxiaoguai

              每次新建一个用户时没有指定永辉的话,默认会自动创建一个与用户名相同的用户组。


方法二、查看/etc/group文件

             格式说明:

              /etc/group的内容包括用户组(Group)、用户组口令、GID 及该用户组所包含的用户(User),每个用户组一条记录。格式如下:

              group_name:password:GID:user_list


cat /etc/group | sort

              这里 cat 命令用于读取指定文件的内容并打印到终端输出,后面会详细讲它的使用。 | sort 表示将读取的文本进行一个字典排序再输出,然后你将看到如下一堆输出,你可以在最下面看到 shiyanlou的用户组信息:

              没找到的话可以使用命令过滤带哦一些你不想看到的结果:

cat /etc/group | grep -E"xuxiaoguai|sudo"

 

将其它用户加入sudo用户组

             默认情况下新创建的用户是不具有root权限的,也不再sudo用户组,可以让其加入sudo用户组从而获取root权限

  usermod命令

             使用该命令你必须有root权限,你可以直接使用 root 用户为其它用户添加用户组,或者用其它已经在 sudo用户组的用户使用 sudo 命令获取权限来执行该命令

三、文件权限

1、查看文件权限

        命令:使用较长格式列出文件:ls-l

          

        格式说明:

          

具体说明:

           

变更文件所有者

           命令:sudo chown 

          
 

修改权限:

           二进制数字表示

          

            每个文件的三组权限(拥有者,所属用户组,其他用户)就对应这一个"rwx",也就是一个 '7' ,所以如果我要将文件“iphone6”的权限改为只有我自己可以用:

              chmod 700 iphone6

 

加减赋值操作

             chmod go-rw iphone6

'g''o'还有'u',分别表示group,others,user,'+','-'就分别表示增加和去掉相应的权限。

 

             虽然多用户登陆,有自己的目录,但实际上他们的文件都是放在同一个物理磁盘上的甚至同一个逻辑分区或者目录里,但是由于Linux 的用户管理和权限机制 ,不同用户不可以轻易地查看、修改彼此的文件。



### 如何在Linux中授予用户创建文件的权限 当遇到无权在特定位置写入文件的情况时[^3],可以通过调整目录或文件的权限来解决这一问题。具体来说,在Linux环境中,可以利用`chmod`命令改变现有文件或目录的访问权限,也可以通过`chown`命令更改文件或目录的所有者。 对于希望赋予某个用户在其家目录之外的位置创建文件的能力而言,通常有两种方法: #### 方法一:修改目标路径下的权限设置 如果仅需临时允许某位用户在此处创建文件,则可以在该用户的会话期间执行如下命令: ```bash sudo chmod o+w /path/to/directory/ ``` 这条指令将会给其他(`o`)用户提供对该目录的写(`w`)权限。不过需要注意的是这种方法可能会带来安全风险,因为它开放了整个目录对所有人的可写状态。 #### 方法二:变更文件夹所属关系并分配适当权限 更推荐的做法是将指定目录的所有权转移至需要操作此区域的目标用户,并给予合理的读取、写入以及执行权限组合: ```bash sudo chown username:username /path/to/directory/ sudo chmod 700 /path/to/directory/ ``` 上述两条语句分别完成了所有权转让和权限设定的工作;其中第一个参数代表新的拥有者及其所在组名,第二个则是要被处理的对象(即文件或文件夹)。而关于权限数值的选择,“700”意味着只有文件人才能对其进行任何类型的访问活动——这既保障了安全性又实现了预期功能。 另外值得注意的一点是在某些情况下可能还需要配置Sudoers文件以便让普通用户能够获得必要的管理员级授权去完成这些改动。详情可见于有关创建账户及指派特权的相关指南[^1]。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值