Linux的基础编程——用户和权限(八)

简介: Linux的基础编程——用户和权限(八)

一、认识root用户

root用户(超级管理员)

无论是WindowsMacOSLinux均采用多用户的管理模式进行权限管理。

Linux 系统中,拥有最大权限的账户名为: root (超级管理员)

而在前期,我们一直使用的账户是普通的用户: itheima

root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。

演示:

使用普通用户在根目录下创建文件夹

       •切换到root用户后,继续尝试  

普通用户的权限,一般在其 HOME 目录内是不受限的

一旦出了 HOME 目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

suexit命令

在前面,我们接触过su命令切换到root账户。

su命令就是用于账户切换的系统命令,其来源英文单词:Switch User

语法:

      •- 符号是可选的,表示是否在切换用户后加载环境变量,建议带上

参数:用户名,表示要切换的用户,用户名也可以省略,省略表示切换到 root

切换用户后,可以通过 exit 命令退回上一个用户,也可以使用快捷键: ctrl + d

使用普通用户,切换到其它用户 需要输入密码 ,如切换到 root 用户

使用 root 用户切换到其它用户, 无需密码 ,可以直接切换

sudo命令

在我们得知root密码的时候,可以通过su命令切换到root得到最大权限。

但是我们不建议长期使用root用户,避免带来系统损坏。

我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。

语法:sudo  其他命令

在其它命令之前,带上 sudo ,即可为这一条命令临时赋予 root 授权

但是并不是所有的用户,都有权利使用 sudo ,我们 需要为普通用户配置 sudo 认证

为普通用户配置sudo认证

切换到 root 用户,执行 visudo 命令,会自动通过 vi 编辑器打开: / etc / sudoers

在文件的最后添加:

      •其中最后的NOPASSWD:ALL 表示使用sudo命令,无需输入密码

最后通过 wq 保存

切换回普通用户

执行的命令,均以 root 运行

二、用户、用户组管理

用户、用户组

Linux系统中可以:

配置多个用户

配置多个用户组

用户可以加入多个用户组中

Linux中关于权限的管控级别有2个级别,分别是:

针对用户的权限控制

针对用户组的权限控制

比如,针对某文件,可以控制用户的权限,也可以控制用户组的权限。

所以,我们需要学习在Linux中进行用户、用户组管理的基础命令,为后面学习权限控制打下基础。

用户组管理

以下命令需root用户执行

创建用户组

groupadd 用户组名

删除用户组

groupdel 用户组名

我们创建一个itcast用户组:groupadd itcast

用户管理

以下命令需root用户执行

创建用户

useradd [-g -d] 用户名

       •选项:-g指定用户的组不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g

       •选项:-d指定用户HOME路径不指定,HOME目录默认在:/home/用户名

 

删除用户

userdel [-r] 用户名

       •选项:-r,删除用户的HOME目录,不使用-r,删除用户时,HOME目录保留

查看用户所属组

id [用户名]

       •参数:用户名,被查看的用户,如果不提供则查看自身

修改用户所属组

usermod -aG 用户组 用户名,将指定用户加入指定用户组

getent

使用getent命令,可以查看当前系统中有哪些用户

语法: getent passwd

itwangbei:    x:    1000:   1000:    itwangbei:     /home/itwangbei:      /bin/bash

共有7份信息,分别是:

用户名:   密码(x):  用户ID:   组ID:   描述信息(无用):   HOME目录:   执行终端(默认bash)

使用getent命令,同样可以查看当前系统中有哪些用户组

语法:getent group

itwangbei:     x:      1000:

包含3份信息,分别是:

组名称:    组认证(显示为x):    组ID

三、查看权限控制

认知权限信息

序号 1 ,表示文件、文件夹的权限控制信息

序号 2 ,表示文件、文件夹所属用户

序号 3 ,表示文件、文件夹所属用户组

认知权限信息

权限细节总共分为10个槽位

举例:drwxr-xr-x,表示:

这是一个文件夹, 首字母d表示

所属 用户 ( 右上角图序号 2) 的权限是: 有r有w有x,rwx

所属 用户组 ( 右上角图序号 3) 的权限是: 有r无w有x,r-x (-表示无此权限

其它用户 的权限是: 有r无w有x,r-x

rwx权限

•r表示读权限

•w表示写权限

•x表示执行权限

针对文件、文件夹的不同,rwx的含义有细微差别

r,针对文件可以查看文件内容

        针对文件夹,可以查看文件夹内容,如 ls 命令

w,针对文件表示可以修改此文件

       针对文件夹,可以在文件夹内:创建、删除、改名等操作

x,针对文件表示可以将文件作为程序执行

        针对文件夹,表示可以更改工作目录到此文件夹,即cd进入

 

实例:

   

root中有  rw-权限

root组中有    r--权限

其他用户中有 r--权限

这里只有r权限,没有w和x权限

也无法强制保存

四、chmod命令

我们可以使用chmod命令,修改文件、文件夹的权限信息。

注意,只有文件、文件夹的所属用户或root用户可以修改。

语法:

选项: -R ,对文件夹内的全部内容应用同样的操作

示例:

chmod u= rwx,g = rx,o =x hello.txt ,将文件权限修改为: rwxr -x--x

其中: u表示user所属用户权限,g表示group组权限,o表示other其它用户权限

chmod -R u= rwx,g = rx,o =x test ,将文件夹 test 以及文件夹内全部内容权限设置为: rwxr -x--x

除此之外,还有快捷写法:chmod 751 hello.txt

hello.txt的权限修改为751

权限的数字序号

权限可以用3位数字来代表,第一位数字表示用户权限(user)第二位表示用户组权限(group)第三位表示其它用户权限(other)

数字的细节如下:r记为4w记为2x记为1,可以有:

•0:无任何权限,  即 ---

•1:仅有x权限,  即 --x

•2:仅有w权限  即 -w-

•3:有w和x权限  即 -wx

•4:仅有r权限  即 r--

•5:有r和x权限  即 r-x

•6:有r和w权限  即 rw-

•7:有全部权限  即 rwx

所以751表示: rwx(7) r-x(5) --x(1)

案例

hello.txt 的权限修改为: r-x-- xr -x ,数字序号为:

chmod 515 hello.txt

hello.txt 的权限修改为: - wx -w- rw - ,数字序号为:

chmod 326 hello.txt

序号 123 代表的权限是:

--x-w--wx

五、修改权限控制 - chown

使用chown命令,可以修改文件、文件夹的所属用户和用户组

普通用户无法修改所属为其它用户或组,所以此命令只适用于root用户执行

语法:

选项,-R,同chmod,对文件夹内全部内容应用相同规则

选项用户,修改所属用户

选项用户组,修改所属用户组

:用于分隔用户和用户组

示例:

chown root hello.txt ,将 hello.txt 所属用户修改root

chown :root hello.txt ,将 hello.txt 所属用户组修改root

chown root:itheima hello.txt ,将 hello.txt 所属用户修改root 用户组修改 itheima

chown -R root test ,将文件夹 test 所属用户修改 root 并对文件夹内全部内容应用同样规则


目录
相关文章
|
2月前
|
Linux Shell
Linux系统文件默认权限
Linux系统文件默认权限
56 2
|
3月前
|
Shell Linux
Linux shell编程学习笔记30:打造彩色的选项菜单
Linux shell编程学习笔记30:打造彩色的选项菜单
|
8天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
60 13
|
1月前
|
Linux 数据安全/隐私保护
linux特殊权限!!
本文介绍了Linux系统中的特殊权限,包括suid、sgid和sbit。suid使普通用户在执行特定命令时获得root权限;sgid使用户在创建文件时继承目录的用户组权限;sbit确保用户只能删除自己在共享目录中创建的文件。此外,文章还讲解了chattr和lsattr命令,用于更改和查看文件的扩展属性,以及umask的概念和计算方法,帮助理解文件和目录的默认权限。
45 1
linux特殊权限!!
|
1月前
|
运维 监控 Shell
深入理解Linux系统下的Shell脚本编程
【10月更文挑战第24天】本文将深入浅出地介绍Linux系统中Shell脚本的基础知识和实用技巧,帮助读者从零开始学习编写Shell脚本。通过本文的学习,你将能够掌握Shell脚本的基本语法、变量使用、流程控制以及函数定义等核心概念,并学会如何将这些知识应用于实际问题解决中。文章还将展示几个实用的Shell脚本例子,以加深对知识点的理解和应用。无论你是运维人员还是软件开发者,这篇文章都将为你提供强大的Linux自动化工具。
|
2月前
|
运维 监控 安全
Linux_权限理解(详细PLUS)
【10月更文挑战第3天】本文介绍了Linux系统中的权限管理基础,包括文件系统对象与权限关联、权限的继承性、字符与数字表示法的解读,以及用户、组与权限的动态交互。详细解析了`chmod`命令的高级用法和权限修改的风险,探讨了SUID、SGID和Sticky Bit等特殊权限的作用机制,并提出了基于角色的权限分配和定期权限审计的最佳实践。
81 11
|
3月前
|
Shell Linux
Linux shell编程学习笔记82:w命令——一览无余
Linux shell编程学习笔记82:w命令——一览无余
|
3月前
|
Linux Shell
Linux系统编程:掌握popen函数的使用
记得在使用完 `popen`打开的流后,总是使用 `pclose`来正确关闭它,并回收资源。这种做法符合良好的编程习惯,有助于保持程序的健壮性和稳定性。
160 6
|
2月前
|
Linux 应用服务中间件 nginx
Linux下权限设置之suid、sgid、sticky
Linux下权限设置之suid、sgid、sticky
|
2月前
|
Linux 数据安全/隐私保护 Windows
Linux_权限理解(详细PLUS
Linux_权限理解(详细PLUS