linux权限管理
linux权限管理,旨意是把一个用户加入一个组,该用户就拥有了该组的权限,当一个用户要操作每个文件时,系统会依次检索该用户是否是该用户的拥有者,其次是组成员,最后是其他人,如果扫描到是拥有者,则具备拥有者的权限,不必往后扫描,以此类推
· 权限类型
一、权限类型
1>权限分为3个部分
1、读取权限(4):read(r)
2、写入权限(2):write(w)
3、执行权限(1):execute(x)
4、没有权限(0):N/A(-)
2>权限位
权限位主要分为三个部分,分布是属主、属组以及其他人
rwx :属主
r - x :属组
r - x :其他人
例如:文件类型:-rw-r--r-- 1 root root 1146 Jul 16 18:42 a.txt
3>数字编号
每一个权限拥有一个数字编号
可读(r) :4
可写(w) :2
可执行(x):1
没有对应权限 :0
4>权限组合
在添加权限的时候,可以将权限加起来
属主:可读可写可执行
属组:可读可写
其他人:没有任何权限
rwxrw---- 等价于 760 (三位隔开单独计算)
5>添加权限
chmod:更改文件权限的命令
格式 chmod 【参数】【权限表达式】【操作对象】
参数:-R 递归增加权限
6>权限的归属
属主:u
属组:g
其他人:o
7>测试权限对于用户的意义
1、普通用户是严格遵守权限的
2、root用户是高于权限
3、权限需要重新登才生效(su和su - 都可以)
8>测试权限对于目录的意义
1、文件可读,路径的最小权限是必须拥有可执行权限
2、文件可写,路径的最小权限是必须拥有可执行权限
3、文件可执行,路径的最小权限是必须拥有可读可执行权限
9>创建文件的默认权限,创建文件夹的默认权限是从哪里来的
在linux中,常用的文件的权限是666,目录的权限是777
umask:当创建一个文件或者目录的时候,系统会自动为文件或者目录赋予默认的权限,而umask命令就是用来控制这个默认权限的。
查看umask有两种方式:一种加-s,一种不加-s
以四组数字进行显示,其中后三组规定了User,Group,Other的默认权限
默认权限计算方式:在linux中,文件和目录的默认权限计算方式为最大默认权限去掉umask指定的相应权限。对于文件来说,最大默认权限为666(-rw-rw-rw),也就是说User,Group,Other都没有X权限;对于目录来说,最大默认权限为777(drwxrwxrwx)。那么,假设umack输出的值为022,由于r = 4, w = 2,x=1,也就是对于文件来说需要在最大默认权限的基础上去掉w权限(因为022在代表User的位为0,表示不用拿掉权限),也就是文件默认权限会是644(-rw-r--r--),同理,创建的目录默认权限为755(drwxr-xr-x)
umask的配置:umask的配置文件是/etc/bashrc,推荐不要动他
1、文件的权限是跟umask值相减,遇到奇数加一;遇到偶数则不变。
2、文件夹的权限只要跟umask值相减即可。
&&(and) ||(or)
1 # 需求要把一个月之前修改过的日志文件删除 2 案列:1.将index文件添加属主:可读可写可执行、属组:可读可写、其他人:没有任何权限 3 chmod 760 index 4 2.将baidu下的所有文件设置rwxr--r-- 5 chmod -R 744 baidu/ 6 3.将index这个文件的属组增加一个可执行权限 7 chmod g+x index 8 chmod g+x,o-r index案列
10>系统用户信息
whoami:打印与当前有效用户id关联的用户名;这个工具可以用来获取本地系统上当前用户(访问令牌)的用户名和组信息,以及相应的安全标识符(SID)/声明、本地系统上当前用户的权限、登录标识符(登录ID)
whoami命令显示自身的用户名称,本指令相当于执行“id-un”指令
语法格式whoami【参数】
常用参数:--help 在线帮助
--version 显示版本信息
who:who命令用来打印当前登录用户信息,包含了系统的启动时间、活动进程、使用者ID、使用终端等信息,是系统管理员了解系统运行状态的常用命令。
who命令的输出信息默认来自文件“/var/log/utmp”和“/var/log/wtmp”
语法格式:who【参数】【选项】
常用参数:-a 打印全面信息
-b 打印系统最近启动时间
-d 打印死掉的进程
-l 打印系统登录进程
-h 带有列标题打印用户名,登录终端和登录时间
-t 打印系统上次锁定时间
-u 打印已登录用户列表