首页 > 编程知识 正文

linux修改用户组权限,linux超级用户权限

时间:2023-05-03 12:40:28 阅读:172516 作者:4582

8种机械键盘轴体的比较

本人要买写代码的键盘,红轴和茶轴怎么选?

这里只是在学习linux知识的过程中,对常用命令的总结笔记

更多linux知识可访问http://linux.vbird.org/学习

文件的基本权限

一般的文件类型有7种,除了上述3种之外,还有套接字文件、管线文件系统文件等

基本权限的作用

r写入w读取执行x目录与文件权限的关系,联系硬件中的文件分区、块考虑,例如,我对文件没有任何权限,但对当前文件夹有读写权限。 你可以看到这个没有权限的文件。 因为我对这个文件所属的块没有权限。 但是,这个权限被“放置”在我的文件夹块中,可以看到自己文件这个块的信息

将文件作为文件理解权限

权限对文件的作用

r :读写文件的内容

w:编辑添加了更改,但无法删除

x:可以运行

权限对目录的作用

r:可以查询目录下的文件名(ls )

w:可以改变目录结构,比如创建新的文件和目录、删除文件或目录、重命名文件或文件夹(touch rm mv cp )

x:可以访问目录(cd )

更改基本权限

chmod [选项]模式的文件名

-R递归意味着将赋予文件夹下的所有文件

模式

写法1

例如chmod u x learning_temp_file

向文件所有者u (所属组g,其他人o )添加执行权限x ) (读取r,写入w ) )。

例如chmod u x,g x learning_temp_file

多个给定可以用分隔

例如chmod u-x learning_temp_file

如果有权限,也可以相应-权限

写法2

例如chmod u=rwx,g=rw learning_temp_file

写法3

用数字表示权限

r-4

w-2

x-1

例如rwxr-xr-x可以表示为755

chmod u=rwx,g=rx,o=rx learning_temp_file相当于chmod 755 learning_temp_file

一般来说,赋予目录权限0 5 7

更改用户组权限

如果在创建用户时未指定组,则会创建与用户名相同的组

chown用户名文件名

chowndonscoco : dons coco _ group file _ name也可以直接添加组

修改所有组

chgrp组名文件名

小小的思考

任务

现在需要为老师做一个目录

老师是目录的所有者,拥有所有权限

老师的学生有权限看这个目录

其他人没有此目录的权限

处理

groupadd teacher_group创建一个老师小组

useradd -G teacher_group teacher将用户添加到组中

useradd -G teacher_group student1

mkdir teacher_course_dir创建老师的文件夹

chmod 750 teacher_course_dir赋予文件与不同角色对应的权限

chown teacher : teacher_group teacher _ course _ dir将文档的所有权传递给老师,并假设老师组是teacher _ group

文件的默认权限

umask

查看默认访问权限

0022

第一名0 :文件特殊权限

022 :文件的默认权限

可以在umask之后添加umask 026等值,但这是临时的

目录的默认权限

默认权限为777

默认权限777-umask的022为755

文件的默认权限

默认情况下无法创建可执行文件,必须手动授予执行权限

因此,文件的默认权限最多为666

默认权限必须换算为字母并减去

建立后的默认权限,666-umask的022

修改取消

##临时修正1umask 026

永久修改###1VI/etc/profile

文件的特殊权限

ACL权限

文件只有一个所有者、一个用户组和其他三个角色。 如果显示,则为

/p>

这里ACL出现就是为了解决用户身份不够的情况的

查看分区的ACL权限是否开启

dumpe2fs -h 目标分区 –目标分区如/dev/sda5 等;可通过df或者mount查看文件系统(对应分区)的挂载点

-h 显示超级块的信息,而不显示磁盘块组的详细信息

在返回的信息中如果有这个

Default mount options: user_xattr acl

就表示分区可以使用acl权限

开启分区ACL权限

临时开启

重新挂载根分区并挂载加入ACL权限

mount -o remount,acl /

永久开启

修改配置文件

vi /etc/fstab

在配置文件中加入

UUID=1ae5f12f-79c1-47d4-bed7-941ab9385396 / ext4 defaults,acl 1 1

然后重启系统或者重新挂载文件系统

mount -o remount /

ps: /etc/fstab 在改动时要非常小心,这个文件会直接影响linux系统的启动

ACL权限查看

getfacl 文件名

ACL权限设定与删除

setfacl [option] 文件名

[option]

-m:设定ACL权限

-x:删除指定的ACL权限

-b:删除所有的ACL权限

-d:设定默认的ACL权限

-k:删除默认的ACL权限

-R:递归设定ACL权限

ACL权限设定

给用户dons设定对dir_name的读写权限

setfacl -m u:dons:rw dir_name

给用户组dons_group设定对dir_name的读写权限

setfacl -m g:dons_group:rw dir_name

这个+代表就是ACL权限,具体什么样的权限就需要通过getfacl 文件名 来查看

ACL权限删除

给用户dons删除对dir_name的权限

setfacl -x u:dons dir_name

给用户组dons_group设定对dir_name的读写权限

setfacl -x g:dons_group dir_name

删除文件的所有ACL权限

setfacl -b dir_name

ACL权限递归

给 dir_name 下的 其他文件赋予acl权限

setfacl -m u:dons:rx -R dir_name

递归是父目录在设定ACL权限时,所有的子文件和子目录也会拥有相同的ACL权限

ACL默认权限

在对一个文件夹执行赋予递归ACL权限之后,默认在这个文件夹新建的文件是没有ACL权限的

ACL默认权限:默认权限的作用是如果给父目录设定了默认的ACL权限,那么父目录中所有新建的子文件都会继承父目录的ACL权限

setfacl -m d:u:dons:rx -R dir_name

最大有效权限mask

mask是用来指定最大有效权限的。如果我给用户赋予ACL权限,是需要和mask的权限做与运算才能得到用户真正的权限的

修改最大有效权限

setfacl -m m:rx 文件名

设定mask权限为r-x 使用 m:权限 格式

sudo权限

什么是sudo权限?

root 把本来只能超级用户执行的命令赋予普通用户执行

sudo 操作对象是系统命令;之前将的权限都是用户操作文件的权限;

visudo 命令打开/etc/sudoers文件 其中有一条

root ALL=(ALL) ALL中

root 表示给哪个用户赋予sudo权限

ALL=(ALL) 被管理者的主机地址 = (可使用的身份);表示 允许 root 在任何主机中使用任何身份

ALL 授权命令(绝对路径);比如说如果想给一个用户donscoco赋予重启权限可以在配置文件/etc/sudoers中加入

donscoco ALL=(ALL) /sbzddy/shutdown -r now

ps:可以通过

man 5 /etc/sudoers

来查看配置文件的帮助说明

sudo的安全问题

给其他用户赋予能创建新用户的权限

donscoco ALL=/usr/sbzddy/useradd

没有括号(ALL)默认就是按root身份;可以切换到donscoco使用sudo -l查看

这里在赋予设置密码权限的时候,千万不能直接使用/usr/bzddy/passwd

因为使用sudo系统是把用户donscoco当做root的身份来对待的,用户donscoco可以使用 sudo /usr/bzddy/passwd root 直接更改root 的 密码

使用密码赋予权限:

donscoco ALL=/usr/bzddy/passwd [A-Za-z]*, !/usr/bzddy/passwd "", !/usr/bzddy/passwd root

!/usr/bzddy/passwd root 禁止 使用/usr/bzddy/passwd命令对root进行操作

给其他用户赋予vi命令

/etc/shadow 这个文件是保存密码的文件

任何用户对这个权限都是000,包括root

但是root 可以查看和更改/etc/shadow的内容

如果我们在给一个用户赋予 /bzddy/vi 的权限

这个用户使用sudo /bzddy/vi /etc/shadow 去改变密码或者删除密码,那么也是一个很严重的问题

其他安全相关的权限

这里以下的权限尽量少修改

SetUID

SetUID功能

只有可执行的二进制程序才能设定SUID权限

命令执行者要对该程序有x可执行权限

命令执行者在执行该程序时获得该程序文件属主的身份

SetUID只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

/etc/shadow文件权限是000,那么普通用户在改自己密码的时候又是怎么对 /etc/shadow进行修改的呢?

这里 /usr/bzddy/passwd的信息如下

passwd 命令被设置了SUID权限

只要执行/usr/bzddy/passwd命令,执行命令人的身份就会变成执行文件所有者的身份root,所以普通用户可以改自己的密码

设定SUID

chmod 4775 file_name

chmod u+s file_name

这里4 就是SUID的意思,也可以使用第二句

取消SUID

chmod 0775 file_name

chmod u-s file_name

定期检查危险的SUID1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18find / -perm -4000 -o -perm -2000 > /tmp/setuid.check

for i in $(cat /tmp/setuid.check)

#做循环,每次循环取出临时文件中的文件名

do

grep $i /root/suid.log > /dev/null

#对比这个文件名是否在模板文件中

if["$?"!="0"]

#检查上一个命令的返回值,如果不为0,证明上一个命令报错

then

ehco "$i is not in listfile!" >> /root/suid_log_$(date+%F)

#如果文件名不在模板中,则输出错误信息,报错到日志中

fi

done

rm -rf /tmp/setuid.check

#删除临时文件

SetGID

只有可执行的二进制程序才能设置SGID权限

命令执行者要对该程序有x执行权限

命令执行在执行程序的时候,组身份升级wei为该程序文件的属组

SetGID权限同样只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

Sicky BIT

chattr权限

chattr [+-=] [选项] 文件或目录名

-+:增加权限

–:删除权限

-=:等于某权限

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。