【linux系统】用户功能与权限详细总结

前言

菜某的笔记总结,有错误还请指正。

linux用户的概念与root用户

这么理解:一台电脑有多个操作者,每个操作者只能无限制操作自己文件夹中的东西,其他地方的操作需要给与相应权限才能操作。

root用户:就是最高级的老总,啥都可以干

每个普通用户都会在/home文件夹下有个专用的文件夹,通常他的操作只能局限于自己的文件夹,但是root用户的home是在总文件夹/下的/root中,root用户有操作整个系统中所有文件的权力。

切换用户指令

语法:su - 用户名

切换用户后可以输入exit或者Ctrl+d返回原先的用户

root用户切换其他用户不需要密码

普通用户切换需要输入密码

演示

普通用户使用root权限

**作用:**因为root用户权限很大,我们长期用root用户很容易给电脑造成损害,所以我们有一个sudo命令,能够暂时使用root用户的权力

**语法:**sudo 命令

在其他命令之前加上一个sudo就可以使用root权限了。

但是并不是所有的用户都能用sudo,只有被root用户配置了的用户才能使用sudo

配置方法:

root用户下输入visudo命令打开配置文件,并进行编辑。

在后面加上一个

用户名 ALL=(ALL) NOPASSWD:ALL

NOPASSWD:ALL的作用是无需输入密码,可以去除,但是每次使用sudo命令就需要输入密码。

添加完毕之后就可以使用sudo了

我们在/中创建文件做个对比

还原回原先用户

用户组的概念

我们通俗的理解,用户组就是一个部门,用户就是一个人。假如说公司管理财务,总不能说所有人都有财务管理系统的密码吧,只有财务部的人才能有。这里同理,用户组就是一个部门,这个用户组里的所有用户都会有一些通用的权限。

比如一个文件,我们可以规定某些用户有修改权限,也可以规定某个用户组有修改权限。

用户组的操作命令

groupadd 用户组名#创建用户组

groupdel 用户组名#删除用户组

用户操作命令

#创建用户

useradd -g -d 用户名

-g指定用户所在的组

如果不指定则会创建同名组加入

-d指定用户所在的

如果不指定则会默认在/home中

#删除用户

userdel -r 用户名

-r删除用户时把home目录一起删除

#查看用户所在的组

id 用户名

如果不加用户名,则会查看自身

#修改用户所在的组

usermod -aG 用户组 用户名

查看系统中的用户

语法:getent passwd

查看系统中的用户组

语法:getent group

用户对文件权限的查看

使用ls -l进行查看

第一列的字母

第一个字母

d代表了文件夹

-代表了文件

l表示链接

后面有九个字母,每三个一组分类看

每组的字母分别为rwx,也可能是-

r代表可读权限,是否可用ls查看

w代表操作权限,文件是否可操作

x代表执行权限,文件夹是否可进入

-代表没权限

后面分为三组

第一组:所属用户的权限

第二组:所属用户组的权限

第三组:其他用户的权限

例如:第一行的

d rwx r-x r-x

代表了,这是文件夹,所属用户有rwx权力,所属用户组有rx权力,普通用户有rx权力。

ls命令中的第一个root是本文件的所属用户,第二个root是本文件所属用户的用户组。

文件权限的修改

首先文件的权限只有所属用户跟root可以修改。

使用chmod命令

语法:chmod u=权限,g=权限,o=权限 文件或文件夹

实例:chmod u=rwx,g=rx,o=w text.txt

u:所属用户

g:所属组

o:其他组

参数可选,不选就是不改,选了不写权限就是什么权限都不给

案例:

文件所属的修改

只有root用户可以修改

语法:chown -R 用户:用户组 文件或文件夹

-R 对文件夹中所有文件的所属进行修改

案例:

修改用户:chown user: exper

修改用户组:chown :group exper

案例:

相关推荐
shandianchengzi1 小时前
【记录】Claude Code|Ubuntu26给Claude Code新增任务消息提示音
运维·服务器·ubuntu·ai·大模型·音频·claude
蚰蜒螟2 小时前
从mkdir命令到磁盘:Linux内核目录创建过程深度解析
linux·运维·数据库
念何架构之路2 小时前
接入层Nginx
运维·nginx
wanhengidc2 小时前
云手机 跨设备无缝衔接
运维·服务器·人工智能·智能手机·云计算
sxlishaobin2 小时前
SSH远程免密登录的两种方式
运维·ssh
coward912 小时前
Linux内核驱动初始化流程认识(关于late_initcall和modul_init驱动初始化宏差异)
linux·嵌入式硬件
modelmd2 小时前
Linux man 命令详解:从入门到精通
linux
SWAGGY..2 小时前
Linux系统编程:(十一)进程状态&&Linux中的僵尸状态
linux·服务器·编辑器·vim
洵有兮3 小时前
Shell 脚本编程学习总结(基础 + 变量 + 条件 + 流程控制 + 函数数组)
linux·学习
我命由我123453 小时前
SEO 与 GEO 极简理解
java·linux·运维·开发语言·学习·算法·运维开发