提要
本文章主要介绍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