【Linux】用户和权限

目录

1. 用户

1.1 su命令

1.2 sudo命令

2. 用户、用户组管理

2.1 用户组管理

2.2 用户管理

2.3 getent命令

2.3.1 查看当前系统中有哪些用户

2.3.2 查看当前系统中有哪些用户组

3. 查看文件权限

3.1 文件访问者

3.2 文件类型和权限

3.2.1 文件类型

3.2.2 权限

4. 查看/修改文件属性

4.1 chmod命令

4.2 chown命令

4.3 chgrp命令

4.4 umask命令

4.5 file命令

5. 目录的权限

5.1 粘滞位


1. 用户

Linux下有两种用户:

  • root用户(超级管理员)命令提示符:#
  • 普通用户                        命令提示符:$

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

普通用户的权限,一般在其家目录内是不受限的。一旦出了家目录,大多数地方,普通用户仅有只读和执行权限,无修改权限。

1.1 su命令

全称:switch user

语法:

su [-] [用户名]

功能:切换用户

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

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

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

使用普通用户,切换到其它用户需要输入密码;使用root用户切换到其它用户,无需密码,可以直接切换。

1.2 sudo命令

全称:super user do

语法:

sudo 其他命令

功能:为普通的命令授权,临时以root身份执行

在其它命令之前,带上sudo,即可为这一条命令临时赋予root授权。但是并不是所有的用户,都有权利使用sudo,我们需要为普通用户配置sudo认证。

⑤ 底行模式下输入w!(强制保存)

⑥ 底行模式下输入q!(强制退出)

这样普通用户就能使用sudo命令了。

2. 用户、用户组管理

Linux系统中可以:

  • 配置多个用户
  • 配置多个用户组
  • 用户可以加入多个用户组中

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

  • 针对用户的权限控制
  • 针对用户组的权限控制

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

2.1 用户组管理

以下命令需root用户执行。

创建用户组:

groupadd 用户组名

删除用户组:

groupdel 用户组名

2.2 用户管理

以下命令需root用户执行。

创建用户:

useradd [-gd] 用户名

  • -g    指定用户的组,不指定-g,会创建同名组并自动加入,指定-g需要组已经存在,如已存在同名组,必须使用-g
  • -d    指定用户HOME路径,不指定,HOME目录默认在:/home/用户名

指定/修改密码:

passwd 用户名

删除用户:

userdel [-r] 用户名

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

查看用户所属组:

id [用户名]

  • 如果不提供用户名,则查看自身

修改用户所属组:

usermod -aG 用户组 用户名

  • 将指定用户加入指定用户组

2.3 getent命令

全称:get entries

功能:查看系统数据库中的记录信息

2.3.1 查看当前系统中有哪些用户

语法:

getent passwd

2.3.2 查看当前系统中有哪些用户组

语法:

getent group

3. 查看文件权限

3.1 文件访问者

  • 所有者 u(User)
  • 所属组 g(Group)
  • 其他用户 o(Other)

3.2 文件类型和权限

3.2.1 文件类型

  • d    目录
  • -    普通文件
  • l     软链接(类似Windows的快捷方式)
  • b    块设备文件(例如硬盘、光驱等)
  • p    管道文件
  • c    字符设备文件(例如屏幕等串口设备)
  • s    套接口文件

3.2.2 权限

基本权限:

  • r     读,权限值为4
  • w    写,权限值为2
  • x     执行,权限值为1

权限值:

  • 0    ---
  • 1    --x
  • 2    -w-
  • 3    -wx
  • 4    r--
  • 5    r-x
  • 6    rw-
  • 7    rwx

文件的权限由9位表示,1-3位表示所有者权限,4-6位表示所属组权限,7-9位表示其他人权限。

上图dir1的所有者权限是:可读可写可执行;所属组权限是:可读可写可执行;其他人权限是:可读可执行但不可写。

4. 查看/修改文件属性

4.1 chmod命令

全称:change mode

语法:

chmod [选项] 模式 目录或文件

功能:修改权限(只有所有者和root才可以改变权限)

常用选项:

  • -R    递归修改目录或文件的权限

模式:

  • 文字设定法:[ugoa][+-=][rwx]
  • 数字设定法:01234567

其中,文字设定法:

  • u 所有者,g 所属组,o 其他用户,a 所有用户
  • + 增加权限,- 取消权限,= 赋予特定权限并取消其他权限
  • r 读,w 写,x 执行

4.2 chown命令

全称:change owner

语法:

chown [选项] [所有者][:][所属组] 目录或文件

功能:修改所有者或所属组

常用选项:

  • -R    递归修改目录或文件的权限

4.3 chgrp命令

全称:change group

语法:

chgrp [选项] 所属组 目录或文件

功能:修改所属组

常用选项:

  • -R    递归修改目录或文件的权限

4.4 umask命令

全称:user's mask

语法:

umask [选项] [权限掩码]

功能:查看或修改权限掩码

常用选项:

  • -S    以文字的方式来表示权限掩码

如果没有文件掩码,文件的默认访问权限为rw-rw-rw-(666),目录的默认权限为rwxrwxrwx(777)。权限掩码是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。root用户默认文件掩码为022,普通用户默认文件掩码为002。

0002

0:暂时不看

0:所有者文件掩码

0:所属组文件掩码

2:其他用户文件掩码

目录的权限:777-002=775(rwxrwxr-x)

文件的权限:666-002=664(rw-rw-r--)

4.5 file命令

语法:

file [选项] 目录或文件

功能:辨识文件类型

常用选项:

  • -c    详细显示指令执行过程,便于排错或分析程序执行的情形
  • -z    尝试去解读压缩文件的内容 

5. 目录的权限

  • 可执行权限:如果目录没有可执行权限,则无法cd到目录中
  • 可读权限:如果目录没有可读权限,则无法用ls等命令查看目录中的文件内容
  • 可写权限:如果目录没有可写权限,则无法在目录中创建文件,也无法在目录中删除文件

只要用户具有目录的写权限,用户就可以删除目录中的文件,而不论这个用户是否有这个文件的写权限。为了解决这个不科学的问题,Linux引入了粘滞位的概念。

5.1 粘滞位

粘滞位只能对目录设置,设置了粘滞位后,只有目录内文件的所有者或者root用户才可以删除或移动该文件。

一个目录具有粘滞位,则在other的x位会表现为t或T:

  • 原来x位上有x权限,有了粘滞位表现为t
  • 原来x位上没有x权限,有了粘滞位表现为T

设置粘滞位:

chmod o+t 目录 或  chmod +t 目录

删除粘滞位:

chmod o-t 目录  或  chmod -t 目录

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值