RHCE 学习笔记(6)权限管理

RHEL里面执行ls命令时,可以看见第一个字母来判断类型。

常见的类型有

d (目录)

- (普通文件)

c (设备文件 字符型)

b (设备文件,块文件)

l ( 软连接,快捷方式)

例如,目录和普通文件

设备文件

软连接

设备文件,块文件(硬盘)

首先看看如何更改文件的所有者 chown, -R表示递归的处理所有的子目录和子文件,-v表示输出详细的变化结果

更改文件或者目录的组

具体的权限可以通过中间9位2进制数值来设置,分别代表u(所有者),g(组)和 o (其他人)的 r (读)w(写)x(执行)权利

可以用 rwxrwxrwx来表示对应拥有的权限,如果没有权限,标记-

简单的例子,可以用u+或者g-来添加或删除权限

a=u+g+o

值得注意的是对于目录的权限设定,必须至少具有读和执行的权限才能正常访问。如果只具有X,那么只能cd 进去,但是无法ls内容。

例如,新创建的xx目录,默认是755权限

去掉其他用户的读权限以后

beanxyz用户可以cd该目录,但是无法读取内容

改回来就回复正常访问了

前面说了默认创建的文件权限是644,目录权限是755, 这是怎么回事呢,这是通过umask过滤造成的。

文件的默认权限本应该是666,而目录是777,umask的默认值为0022,通过对应位的过滤,就变成了644和755.

文件  (666)           110 110 110
umask(222)            000 010 010
-----------------------------------------------
                        110 100 100 (644)
目录     (777)        111 111 111
umask    (222)         000 010 010
------------------------------------------------
                        111 101 101 (755)

类似的给定一个需要的默认权限,如何倒推回去?

比如我需要创建的默认文件和目录权限都是444,那么我的umask应该是多少?

如下所示,对于文件而言,每个用户的第三位本身就是没有权限的,因此不论是否过滤,都是0,对于Umask而言,第三位的部分是0 是1都不影响结果; umask可以是333,323,222,223,232,332等等任意组合

对于目录而言,结果是唯一,只能是333;

综上所述,umask的选择应该是333

文件    (666)       110 110 110
umask(???)          011 011 011
-----------------------------------------------
                     100 100 100 (444)
目录      (777)        111 111 111
umask    (???)          011 011 011 ( 333)
------------------------------------------------
                        100 100 100 (444)

权限设置还有两个特殊的属性位, s位和t位;

s位位于二进制的可执行程序的U位的时候,简称SUID,这个时候其他人执行这个程序,具有和所有者相同的权限;

例如用户可以通过passwd更改自己的密码,而实际的密码是保存在/etc/shadow中的,用户执行passwd的时候其实是通过所有者root的权限对shadow文件进行了修改

s位位于目录的G位的时候,简称GUID,这个时候的作用是所有新创建的子目录和文件会自动的继承这个组

例如创建一个testgroup组,加到test目录上

然后修改g位

创建新文件和目录

查看属性

最后还有一个特殊的属性位是t 位,他一般是位于目录的o位置,锁定文件不可删除。只有root和所有者可以删除。比如系统自带的/tmp就是这样

简单的记忆 SUID 4, SGID 2, SBIT 1

因此,如果将一个可执行文件设置为 -rwsr-xr-x,可以标记为4755

最后看看隐藏的特殊属性

chattr 可以设置一些特设性质,比如+a 只能增加不可减少

+i 不可对文件进行任何修改

lsattr可以查看特殊属性

时间: 2024-10-08 01:55:59

RHCE 学习笔记(6)权限管理的相关文章

MongoDB 学习笔记之 权限管理基础

权限管理基础 MongoDB有很多用户roles,这里只是简单列举下命令的使用,具体的role的含义,请查阅官方文档. https://docs.mongodb.com/manual/reference/built-in-roles/#userAdmin 在启用权限验证之前,需要重启服务,开启auth: 命令使用示例: use admin; #创建用户,这里Mongo 3和Mongo 2用的方法不同了. db.createUser({user: 'sky', pwd: 'CSL', roles:

linux学习笔记之权限管理

umask 目录:777-umask 文件:666-umask    touch后的权限 umask=023 文件默认不具有执行权限 touch a.txt mod=643--->可执行,自动加1.变为644. 对目录:mkdir bb mod=754不改变 suid sgid sticky  只能删除自己创建的文件 chmod u+s a suid  当前用户具有文件宿主的权限 sgid  当前用户组具有目录宿主的权限,目录宿主. sticky    多个用户在此目录创建的文件,只能由宿主删除

oracle学习笔记之用户管理-3

用户权限机制 1.不同用户表权限的赋予 grant select on scott.emp to software; ---当前登录用户为表所有者,则表名前不用指定所属用户 2.用software登录后 select * from scott.emp; ---software才有权限查询到scott的emp表 方案(schema) 当用户创建好后,如果该用户创建了一个数据对象(如表),此时dbms会创建一个对应的方案与改用户对应,并且该方案的名称和用户名称一致. system与scott都拥有自

oracle学习笔记之用户管理-2

案例:创建一个用户software,然后给分配权限,可以让software登录数据库.创建表.操作自己创建的表,回收角色,最后删除用户. 1.创建software用户,密码system create user software identified by system; 2.让software连接数据库,需要给其connect.resource权限 grant connect to software; grant resource to software; 3.使用software用户登录 co

oracle学习笔记之用户管理-1

sys    system(管理员) scott(普通用户) sqlserver sa 前提:oracle 上,假如自己是管理员,当需要建立用户的时候,由自己操作: 1.创建用户(sys system用户) create user username identified by password; 注意:密码不能以数字开头 create user mmy identified by system; 创建的mmy用户,并不能通过conn立刻登录,需要进行下面一步 2.赋予用户相应的权限 grant

Linux System Programming 学习笔记(五) 进程管理

1. 进程是unix系统中两个最重要的基础抽象之一(另一个是文件) A process is a running program A thread is the unit of activity inside of a process the virtualization of memory is associated with the process, the threads all share the same memory address space 2. pid The idle pro

Linux System Programming 学习笔记(九) 内存管理

1. 进程地址空间 Linux中,进程并不是直接操作物理内存地址,而是每个进程关联一个虚拟地址空间 内存页是memory management unit (MMU) 可以管理的最小地址单元 机器的体系结构决定了内存页大小,32位系统通常是 4KB, 64位系统通常是 8KB 内存页分为 valid or invalid: A valid page is associated with an actual page of data,例如RAM或者磁盘上的文件 An invalid page is

Oracle笔记之权限管理

权限管理 1,默认的三个用户 2,创建用户 3,授权,撤销权限 4,系统权限与对象权限 5,角色 6,通过角色对权限进行管理 7,权限的传递,丢失管理员密码怎么办 3个默认的用户 用户名        密码 sys            change_on_install system      manager scott          tiger cmd 进入命令行 sqlplus / as sysdba; 或者 sqlplus sys/change_on_install as sysdb

Object C学习笔记25-文件管理(一)

在此篇文章中简单记录一下文件管理,在Object C中NSFileManager用于管理文件已经路径.在Object C中的文件路径可以是相对路径也可以是绝对路径.斜线"/"开头,斜线实际上就是一个目录,称为 根目录.字符(-)用作用户主目录的缩写.点" . "表示当前目录,两点"  .. "表示父目录. 一. 创建NSFileManager 对象 NSFileManager非常简单,可以使用如下方式来创建NSFileManager对象. NSS

linux kernel学习笔记-5内存管理(转)

http://blog.sina.com.cn/s/blog_65373f1401019dtz.htmllinux kernel学习笔记-5 内存管理1. 相关的数据结构 相比用户空间而言,在内核中分配内存往往受到更多的限制,比如内核中很多情况下不能睡眠,此外处理内存分配失败也不像用户空间那么容易.内核使用了页和区两种数据结构来管理内存: 1.1 页 内核把物理页作为内存管理的基本单位.尽管CPU的最小可寻址单位通常为字(甚至字节),但是MMU(内存管理单元,管理内存并把虚拟地址转换为物理地址的