Lunix命令入门 - 用户及文件权限(chmod 详解)

提要

本文章主要介绍Lunix命令中用户操作相关 如useradd userdel 等。以及文件权限修改chmod命令

介绍

首先需要明确一个主旨核心 Lunix是一个由文件组成的多用户系统

由文件组成,那自然有对于文件的操作 ,Lunix对于文件的操作主要有三种 读 (Read) ,写(Write),执行(Excute)

多用户系统,Lunix中的多个用户可以在同一时间使用该系统,那么自然会派生出一系列的权限问题。大致可以分为 用户 以及用户组。用户中又有管理员和普通用户之分。

用户操作

点击上方链接可见全部指南

添加用户

常见命令如下,即添加了一个名为zizy的用户

useradd zizy

设置用户的密码

为zizy用户指定密码为123456

passwd zizy
New password:123456
Re-enter new password:123456

改变用户分组

我们想创建一个名为mysql的组 ,组号为5000(组号用于唯一标识一个组),该组的用户进行数据库的管理

groupadd -g 5000 mysql

同时我们把zizy用户添加到mysql组中 作为数据库管理员之一

usermod -g mysql zizy

删除用户

删除用户zizy

userdel zizy 

删除组

groupdel mysql

文件权限

文件具有归属,不同身份的用户对于不同文件的权限不同
lunix文件主要有 文件类型文件权限属性
文件类型有 目录 d ,文件 - ,链接 l ,接口 b ,端口 c
文件的权限分为 读 r ,写 w ,执行 x

一个常见的文件属性表示为

-rwxrwxrwx

第一个 - 表示这是一个文件
之后的第一个rwx表示 文件所属用户对于该文件有 读写执行权限
第二个rwx 表示文件所属的用户组对于该文件有 读写执行权限
第三个rwx 表示其它用户(非所属用户 非所属用户组) 对于该文件有 读写执行权限

通过十位即标定了文件的类型和不同用户的权限,

如果没有该权限则会把对应位变成 -
如下

drwxr-xr--

表示这是一个目录
所属用户有 读写执行权限
所属用户组有 读 执行权限
其它用户只有读 权限

更改文件权限

使用chmod命令进行文件权限的修改

数字赋值法

这也是最常见的一种方法 使用数字 4 2 1 分别代表 r w x
并且将其相加 如 rwx 为 7 rw- 为 6 r-x 为 5 r-- 为 4

对于一个文件a01 使用如下命令

chmod 761  a01

该文件的权限属性为

-rwxrw---x

直接赋值法

对于 用户(u) 用户组 (g) 其它用户(o) 直接赋予权限

对于一个文件a01 使用如下命令

chmod u=rwx,g=rx,o=x a01

该文件的权限属性为

-rwxr-x--x

使用 + - 符号 增加删除权限

对于如下权限的a01文件

-rwxr-x--x

使用如下命令

chmod u-w ,o+rw a01

权限会变为

-r-xr-xrwx

进阶

好了 现在朋友们应该了解了文件权限的基础了 ,现在我们来讲点进阶和花里胡哨的吧

使用umask来获取文件权限

umask设置了用户创建文件的默认权限,可以使用命令 umask 来查看umask值。

简单来讲 就是可以通过umask来了解 我们新创建一个文件时 它的默认权限是什么。

umask有四位 如 0043 一般而言 我们只看它的后三位就好 即043

对于文件 ,使用666减去umask值 然后奇数位+1(所有的奇数位都得加一)

666 - 043 = 623 然后奇数位加一 文件的权限即为 624

-rw--w-r--

对于文件夹 使用777减去umask值 即可

777 - 043 = 734 文件夹的权限为 734

drwx-wxr--

特殊文件权限

setuid 对于 用户(u) 赋予超级权限 ,用s表示

  • 假设原来的权限是 rwx , + s 得到 rws 。即 rwx + s -> rws
  • 假设原来的权限是 rw- , + s 得到 rwS。即 rw- + s -> rwS

setgid 对于 用户组(g) 赋予超级权限

  • 假设原来的权限是 rwx , + s 得到 rws 。即 rwx + s -> rws
  • 假设原来的权限是 rw- , + s 得到 rwS。即 rw- + s -> rwS

sticky 只有所有者或root能删除 ,对于 其它用户(o) 操作

  • 假设原来的权限是 rwx , + t 得到 rwt 。即 rwx + t -> rwt
  • 假设原来的权限是 rw- , + t 得到 rwT。即 rw- + T -> rwT

注: 大小写和rwx的前两位无关 只与第三位 x 的有无 有关

对于如下权限的a01文件

-rw-rwxrw-

使用该操作

chmod u+s,g+s,o+t  a01

得到的结果为

-rwSrwsrwT

使用数字标识的特殊权限

setuid setgid sticky 分别用 4 2 1 表示
标识在三位的前面 作为首位 这时文件的权限 就变成了四位
比如文件权限位为741
使用chmod加入setuid 和sticky 权限之后

chmod u+s,o+t a01

就变成了 5741 , 5 标识了 setuid 和 sticky

猜你喜欢

转载自blog.csdn.net/qq_35649669/article/details/110477451