Linux用户和组管理 - 默认权限umask和特殊权限

简介: 默认权限umask和特殊权限

默认权限umask和特殊权限

 

用户账户信息包括:帐号名称,密码,UIDGID,主文件夹,登录Shell等等信息。用户和组的信息都会更新。

对于一个文件最大权限达到数字7。新建文件时候都会有默认权限。

 

一、用户,组和权限


新建一个文件,输入

[root@centos7]

[root@centos7]

[root@centos7~]

[root@centos7~]#cd/data

[root@centos7 data]#touchf1

[root@centos7 data]#11

total 0

rw-r--r--1 root root 0 Sep 28 09:04f1

[root@ centos7data ]#suwang

[wang@ centos7data ]$touch f2

touch:cannot touchf2: Permission  denied

[wang@ centos7data ]$exit

exit现在是没有权限的,要想让它有权限就得有如下:

[root@centos7 data]#chmod 777/data/

.[root@centos7 data]#su wang

[wang@centos7 data]$touchf2

[wang@centos7 data]$11

total 0

rw-rw-r--1  root root 0 Sep  28 09:04 f1

rw-rw-r--1  wang wang 0 Sep  28 09:04 f2

[wang@ centos7data ]$touchf3

[wang@ centos7data ]$11

total 0

-rw-r--r-1 root root 0 Sep 2809:04f1

-rw-rw-r--1  wang wang 0 Sep  2809:04f2

_ rw-rw-r--1_  wangwang 0 Sep  2809:05f3

默认权限的设置要比账号的权限小,权限越小就越安全。

[wang@ centos7data ]$ umask

umask它本身是一个数字

例如:

0002

[wang@centos7 data]$ usmak+default=666|777^c要避免产生默认权限

 

运行结果显示

644

022 umask

要是直接退出的话就会回到原来的值,要是想得到的是最终的值就得保存到文件中。

 

umask+default=666|777

如果umask值换为123,那么新建的文件的默认权限就是543

123+default=666

default=543

 

具体如下:换为123是无影响的

0022

[wang&centos7~]$exit

exit

[root@ centos7data ]#suwang

[wang@ centos7data ]$umask

0022

[wang& centos7data ]$umask 123

[wang& centos7data ]$touchf5

[wang@ centos7data ]$77f5

-rw-r--r-1  wang wang 0 Sep  28 09:15f5

[wang@ centos7data ]$umask 123

换为321的话会有一点变化

[wang@ centos7daa ]$mask321

[wang& centos7data ]$touchf6

[wang@ centos7data ]$11f6

--r--rww-1  wangwang0Sep  28 09:15f6

[wang@ ceintos7data ]$666-321=345

umask掩码

110110110

011010001 321是它的umask

要去掉这个权限为1

100100110

446

666

321 umask

345

 

二、新建文件和目录的默认权限


amask值可以用来保留在创建文件权限

新建FILE权限:666-umask

如果所得结果某位存在执行(奇数)权限,则将其权限+1,这就是它的计算公式

#vim:ts=4:sw=4

root@ centos7data ]#id-un

root

[root@ centos7data ]#id-u

quot@ centos7data ]#id-un

root

[root@ centos7data ]#id-gn

root

[root@ centos7data ]#id-n id:cannot print only names or real IDs in default format[root@ centos7data ]#id

uid=0(root) gid=0(root) groups=0(root)

[root@ centos7data ]#umaskS

u=rwx,g=rx,O=rx

[root@ centos7data ]#umask

0022[root@ centos7data ]#umask u=rw g=r o=

[root@ centos7data ]#umask

0122

[root@ centos7data ]#mkdirdirt

[root@ centos7data ]#11-ddir1 drw-r-xr-χ2 root root 6 Sep 2809;25 dirl

[root@ centos7data ]#

其次

root@centos7 data]#

root@centos7 data]#

root@ centos7datal #

root@ centos7data ]#umask-p

umask 0122

[root@ centos7data ]#umask

0122

[root@ centos7data ]#umask-p

umask 0122

[root@ centos7data ]#suwang

[wang@ centos7data ]$umask

0022

[wang@ centos7data ]$

新建D权限:777-umask

非特权用户umask002

rootumask022

umask:查看

umask#:设定

umask 002

umask-S模式方式显示

umask-p输出可被调用

全局设置:/etc/bashrc也可以写入这个文件,但是一般来说是不介意用户设置:~/. bashrc

 

 

1、当用户docker/testdir 目录无执行权限时,意味着无法做哪些操作?

答:执行权限为目录的基础权限,没有执行权限则无法进入到目录,无法查看目录内容,无法在目录中创建、修改、删除里面的文件,就是什么也做不了

 

2、当用户mongodb/testdir 目录无读权限时,意味着无法做哪些操作?

     答:无法查看目录中的文件列表

 

3、当用户redis/testdir 目录无写权限时,该目录下的只读文件file1是否可修改和删除?

     答:修改文件内容需要对文件有写权限才可以,而删除文件则需要对文件父目录有写权限才可以,所以redis对文件file1不可修改也不可删除

 

4、当用户zabbix/testdir 目录有写和执行权限时,该目录下的只读文件file1是否可修改和删除?

     答:对目录有写、执行权限,则可以进入到目录,可以在目录中创建、删除文件,因此zabbix可以删除file1文件,修改文件需要文件本身有写权限方可,所以zabbix不能修改file1文件

 

5、复制/etc/fstab文件到/var/tmp下,设置文件所有者为tomcat读写权限,所属组为apps组有读写权限,其他人无权限

     答:chown tomcat:apps /var/tmp/fstab

     chmod g=rw,o= /var/tmp/fstab

 

6、误删除了用户git的家目录,请重建并恢复该用户家目录及相应的权限属性

     答:cp /etc/skel/. /home/git    

 

还可以用一些字母来显示,例如-S-P

#vim:ts=4:sw=4

[root@ centos7data ]#id-un

root

[root@ centos7data ]#id-u

o

[root@ centos7data ]#id-un

root

[root@ centos7data ]#id-gn

root

[root@ centos7data ]#idn id:cannot print only names or real IDs in default format[root@ centos7data ]#id

uid=0(root) gid=0(root) groups=0(root)

[root@ centos7data ]#umask-S

u=rwx,q=rx,o=rX

[rgot@ centos7data ]#umask

0022

[root@ centos7data ]#umask u=rwg=ro=

froot@ centos7data ]#umask

0122

root@ centos7data ]#mkdirdirl

foot@centos?data]#11ddir1 drw-r-xr-x2 root root 6 Sep  2809:25 dirt

[foot@ centos7data ]# umask --help

-bash:umask:--:invalid option

umask:usage:umask[-p][-S][mode]

[root@centos?data]#typeumask

umask is a shell builtin

[root@ centos7data ]#helpumask

umask:umask[-p][-S][mode]

Display or set file mode mask.

Sets the'user file-creation mask to MODE. If MODE is omitted, prints the current value of the mask.

If MODE begins with a digit, it is  interpreted  as an octal number: otherwise it is a symbolic mode string like that accepted by chmod(1).

if MODE is omitted, output in a form that may be reused as input

makes the output symbolic;otherwise an actal number is output

Exit Status; Returns success unless MODE is invalid or an invalid option is given.

[root@centos7 data]#

[root@centos7 data]#

[root@centos7 data]#umask -p

umask 0122

[root@centos7 data]#umask

0122

[root@centos7 data]#umask -p

umask 0122

[root@centos7 data]#su wang

[wang@centos7 data]$ umask

0022

[wang@centos7 data]$ exit

exit

[root@centos7 data]#wmask -p>>wang/.bashrc


三、Linux文件系统上的特殊权限


SUID,SGID,Sticky

三种常用权限:rwX usergroupother

安全上下文

前提:进程有属主和属组;文件有属主和属组


(1)任何一个可执行程序文件能不能启动为进程,取决发起者对程序文件是否拥有执行权限


(2)启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组


(3)进程访问文件时的权限,取决于进程的发起者

(a)进程的发起者,同文件的属主:则应用文件属主权限

(b)进程的发起者,属于文件属组;则应用文件属组权限

(c)应用文件“其它”权限

文件能否访问是由用户决定

 

总结:

suid4作用于二进制可执行的文件上,功能:当用户执行此文件,会继承此文件所有者的权限

 

said2

⑴作用于二进制可执行的文件上,功能:当用户执行此文件,会继承此文件所属组的权限

⑵作用于目录上,功能:当用户在此目录建新文件时,此新文件的所属组继承目录的所属组

sticky1作用于目录上,功能:对目录的文件,只能删除自己的文件


四、权限位映射


SUIDuser,占据属主的执行权限位

s:属主拥有x权限

S:属主没有x权限

SGIDgroup,占据属组的执行权限位

sgroup拥有x权限

Sgroup没有x权限

Stickyother,占据other的执行权限位

tother拥有x权限

Tother没有x权限

设定文件特定属性

chattr+i不能删除,改名,更改

chattr+a只能追加内容

lsattr显示特定属性


五、访问控制列表


ACLAccess Control List,实现灵活的权限管理

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

CentOS7默认创建的xfsext4文件系统具有ACL功能

CentOS7之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加tune2fs-o acl/dev/sdb1

mount-o acl/dev/sdb1/mnt/test

ACL生效顺序:所有者,自定义用户,自定义组,其他人

相关文章
|
3天前
|
Java Linux
Linux上管理不同版本的 JDK
Linux上管理不同版本的 JDK
8 0
|
8天前
|
Linux
【Linux 基础】文件与目录管理
文件和目录的基本概念以及常用命令
27 11
|
1天前
|
Linux 网络安全 开发工具
Linux 管理远程会话 screen:掌握终端的多任务操作
`Linux screen` 命令让多任务管理变得更简单,尤其在SSH连接远程服务器时。创建新会话如`screen -S backup`,查看会话`screen -ls`,退出`exit`。高级功能包括直接在会话中运行命令,如`screen vim memo.txt`,会话共享以协同工作,以及通过`screen -r`或`-D -r`重新连接或强制恢复断开的会话。提高效率,确保任务不间断运行。
6 1
|
11天前
|
监控 安全 Linux
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
【权限维持】Linux&OpenSSH&PAM后门&SSH软链接&公私钥登录
|
11天前
|
Java Linux PHP
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
【应急响应】后门攻击检测指南&Rookit&内存马&权限维持&WIN&Linux
|
11天前
|
监控 网络协议 Ubuntu
【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务
【权限维持】Linux&Rootkit后门&Strace监控&Alias别名&Cron定时任务
|
3天前
|
监控 网络协议 Linux
技术好文共享::Linux系统日志管理日志转储
技术好文共享::Linux系统日志管理日志转储
|
3天前
|
安全 关系型数据库 MySQL
技术经验解读:【Linux】Linux系统中的权限详解
技术经验解读:【Linux】Linux系统中的权限详解
|
3天前
|
缓存 Linux 编译器
技术笔记:Linux程序包管理
技术笔记:Linux程序包管理
|
5天前
|
Linux 开发工具 C语言
【Linux】Linux的权限_2 + Linux环境基础开发工具_1
【Linux】Linux的权限_2 + Linux环境基础开发工具_1
7 0