六、Linux 用户和权限

本文详细介绍了Linux系统中的文件权限机制,包括10位权限位的解读,如文件类型、用户权限(用户、用户组和其他人)以及权限修改命令chmod的三种使用模式。同时,文章还提到了chown和chgrp命令用于更改文件和目录的所有者及所属组,以及umask默认权限的概念。此外,讨论了用户切换(su和sudo)以及用户和用户组的管理,包括用户添加、删除和权限调整。
摘要由CSDN通过智能技术生成

一、查看权限

权限:所属用户、所属用户组

10位权限位

[test2@localhost ~]$ ls -l
总用量 0
-rw-rw-r-- 1 test2 test2 0 2月   6 16:05 hello.txt
drwxrwxr-x 2 test2 test2 6 2月   6 16:05 w11

  • 第一位代表文件类型: 
    1. - 普通文件
    2. d 目录文件 
    3. l 软链接文件
    4. b 块设备文件,存储设备,如/dev/sdal
    5. c 字符设备文件,输入设备一般,如鼠标、键盘
    6. p 管道符文件
    7. s 套接字文件,一些服务支持Socket访问,就会产生这样的文件
  • 第2-4位,所有者 RWX 权限
  • 第5-7位,所属组 RWX 权限
  • 第8-10位,其他人 RWX 权限

权限含义

权限字母:RWX,读写执行

  1. r  :Read表示读权限,文件读取数据cat、more、tail等;目录ls
  2. w :Write, 表示写权限,文件修改数据vim、echo等,不能删;目录touch、rm、cp、mv等
  3. x :Execute ,表示执行权限,文件为执行文件;目录cd进入

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

• 这是一个文件夹,首字母 d 表示
• 所属者的权限是:有 r 有 w 有 x , rwx
• 所属组 的权限是:有 r 无 w 有 x , r-x ( - 表示无此权限)
• 其他人的权限是:有 r 无 w 有 x , r-x

二、基本权限的命令 

1.chmod  修改文件、文件夹的权限

1.1命令模式

  • 语法: chmod  【-R】权限 文件或文件夹
  • 命令:chmod, change file mode bits
  • 选项:

        -R,递归设置权限,对文件夹内的全部内容设定同样权限

  • 限制,只能是文件、文件夹的所属用户root有权修改

 1.2权限模式

  • 权限:【 用户身份ugoa】【+ - =】 【perms】

  • 用户身份:

    • u表示user所属用户权限

    • g表示group组权限

    • o表示other其它用户权限

    • a:表示all全部身份

  • 赋予方式:+ 加入权限; - 减去权限;= 设置权限
  • 权限: r w x
chmod u=rwx,g=rx,o=x hello.txt #将文件权限修改为:rwxr-x--x       
chmod -R u=rwx,g=rx,o=x test #将文件夹test以及文件夹内全部内容权限设置为:rwxr-x--x

1.3数字权限 

权限用3位数字来代表,第一位表示用户权限,第二位用户组权限,第三位其它用户权限。

  • 读(r)=4
  • 写(w)=2
  • 执行(x)=1
  • 读+写+执行=4+2+1=7

数字的细节如下: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

常用:

644:所有者读写,其他只读

755:所有者读写执行,其他读和执行

777:全部读写执行权限

目录:0 5 7

#修改权限  751表示: rwx(7) r-x(5) --x(1)
#方法1:
chmod u=rwx,g=rx,o=x hello.txt #将文件权限修改为751 rwxr-x--x       
#方法2:
chmod 751 hello.txt   将hello.txt的权限修改为751 rwxr-x--x

2.chown : 修改文件和目录的所有者和所属组

  • 语法:chown 【-R所有者:所属组  文件或目录
  • chown :change file owner and group
  • 选项

-R,递归设置权限,同chmod,对子目录中所有文件设置权限

用户,修改所属用户

:用户组,修改所属用户组,:用于分隔

  • 所有者和root用户修改权限,普通用户无法修改
chown user1 hello.txt,将hello.txt所属用户修改为user1 
chown :user1 hello.txt,将hello.txt所属用户组修改为user1 
chown root:user1 hello.txt,将hello.txt所属用户修改为root,用户组修改为user1 
chown -R user1 test,将文件夹test的所属用户修改为user1 并对文件夹内全部内容应用同样规则

3.chgrp: 修改文件和目录的所属组

  • 语法:chgrp 所属组  文件或目录
  • chgrp:change group ownership

4.umask默认权限

文件最大默认权限644

目录最大默认权限777

root用户

1.Linux系统的超级管理员用户是:root用户

root 用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。
普通用户的权限,一般在其HOME 目录内是不受限的
一旦出了 HOME 目录,大多数地方,普通用户仅有只读和执行权限,无修改权限

2. su命令——切换用户,exit命令

语法:su - 用户名
- 表示切换后加载环境变量,建议带上
用户可以省略,省略默认切换到 root

 •exit命令退回上一个用户,也可以使用快捷键:ctrl + d

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

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

[root@localhost test2]# su - test2
上一次登录:五 2月 10 13:54:04 CST 2023pts/0 上
[test2@localhost ~]$ exit

3. sudo命令——为普通命令临时授权root权限

语法:sudo  其他命令

普通用户配置sudo权限:

1.以root用户执行visudo命令

2. 在文件最后增加,wq保存退出

用户名 ALL=(ALL)NOPASSWD: ALL

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

二、用户、用户组管理

Linux 可以支持多用户、多用户组、用户加入多个组
Linux 权限管控的单元是用户级别和用户组级别

1.. 用户、用户组相关管理命令

groupadd 用户组名  添加组

groupdel 用户组名 删除组

useradd [-g -d] 用户名   添加用户

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

userdel [-r] 用户名   删除用户

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

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

id [用户名]   查看用户信息

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

getent

getent passwd查看系统全部用户信息

用户名 : 密码 (x): 用户 ID: ID: 描述信息 ( 无用 ):HOME 目录 : 执行终端 ( 默认 bash)
getent group 查看系统全部组信息
3 份信息,组名称 : 组认证 ( 显示为 x): ID

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值