首页 > 编程知识 正文

更改一个文件的权限设置的命令是,linux修改权限命令

时间:2023-05-03 18:31:32 阅读:172577 作者:710

我看了鸟哥Linux的私房钱,对Linux有了更深的了解。 特别是有权限控制的一面,所以汇总后记录。

本文适用于对Linux的权限一知半解的人。 不适合拥有完全不同的Linux权限的人。 只是稍微提到一下,并不是特别详细。 详情请看鸟哥Linux的私房菜。

一.文件和目录的普通权限

首先,介绍Linux下最常用和常用的权限,r:4 (读取)、w:2 )、x:1 )执行)。

对于文件和目录,这三种权限分别表示不同的操作。

读取: r:4 :对文件的读取权限; 指示对文件夹r的权限是否可以查看该目录下的文件,即ls。

写入: w:2 :有权写入文件,但不能删除文件。 但是,如果只有写入权限而没有读取文件的权限,则无法写入数据。 查看文件夹的w权限时,是否可以在该文件夹下新建文件和目录?删除文件和目录2无论该文件或目录的权限是什么,都可以重命名价格和目录,然后移动文件和目录。 r可以不协助权限,虽然不能ls,但是可以制作文件。

运行: x:1 :对文件的运行权限; 指示对文件夹x的权限是否允许cd进入这样的目录。

命令:

chgrp :更改文件所属的用户组

chown :更改文件的所有者

chmod :修改文件的权限

关于命令的具体使用,请参照相关资料

二是文件和目录的默认权限和隐藏权限

文件的默认权限: umask

umask是用户创建新文件或目录时权限的默认值,通常为0022(root用户)。

创建文件时,默认权限为666,用于“减去”umask值

创建目录时,缺省情况下显示777,umask值将被“减去”

umask有四位数的值,第一位数表示特殊权限。 如后所述,剩下的三位分别表示用户、用户组和其他用户。 所谓的“减法”不是数字,而是表示减法的权限。 例如,如果2表示写入权限,则减去写入权限。 上面的022从用户组中减去写入权限,从其他用户中减去写入权限。 可以在umask 002/0022中自己设定。 默认的第一位,即特殊权限可以不写默认的0。

文件隐藏属性chattr,lsattr

chattr命令的使用方法: chattr [-rvf ] [-v version ] [mode] files…最重要的是[mode]部分,[ mode ]部分称为-=和[ASacDdIijsTtu] :在现有参数设定的基础上,追加参数。根据原始参数设定,删除参数。=:更新为指定的参数设定。 )文件或目录的atime(accesstime )是不可更改的(modified ),可以有效地防止膝上型磁盘发生I/O错误等。 s:HDDI/o同步选项,功能类似于sync。 答:也就是说,append,设置此参数后,只能向文件中添加数据,不能删除。 它经常用于服务器日志文件的安全性。 只有root才能设置此属性。 c )即compresse,设置文件是否在压缩后保存。 读取需要自动解冻操作。 d :即no dump,设置文件不能作为dump程序的备份目标。 ) I )不能删除、改名配置文件或设置链接关系。 另外,也不能写入或添加内容。 I参数有助于文件系统的安全设置。 对于以journal (即journal )、mount参数: data=ordered或data=writeback挂载的文件系统,请将此参数设置为在写入文件时首先进行记录。 如果在文件系统中设置的参数为data=journal,则该参数将自动禁用。 s )机密性地删除文件和目录,即回收所有硬盘容量。 与u:s相反,如果设置为u,则数据内容实际上还存在于磁盘中,可以用于undeletion。 每个参数选项中常用的是a和I。 选项a只能强制添加不可删除的内容,常用于日志系统的安全设置。 I是更严格的安全设置,只有具有superuser(root )或CAP_LINUX_IMMUTABLE处理能力(root )标志)的进程才能应用此选项。

应用示例: 1、防止chattr命令修改系统中的某些重要文件: #chattr i /etc/resolv.conf

然后,使用mv /etc/resolv.conf等命令处理此文件也会生成操作不参数的结果。 vim在编辑此文件时会显示w 10: warning : changingareadonlyfile错误。 要修改此文件,必须删除I属性。 chattr -i /etc/resolv.conf

#lsattr /etc/resolv.conf显示以下属性----i-------- /etc/resolv.conf

2、只能在某个文件中添加数据,不能删除。 应用于各种日志文件。 #chattr a /var/log/messages

更改linux根密码: passwd : authenticationtokenmanipulationerror

三.档案特殊权限: SUID、SGID、SBIT

我之前提到了普通的r、w、x权限,那当然有更高级的特殊权限!

SUID:4

当s标志出现在文件所有者的x权限中时

上时,如'-rwsr-xr-x'时,测试就被称为SetUID。基本上SUID有下面限制和功能:

1.SUID权限仅对二进制且有可执行权限的程序有效;

2.本权限仅在执行过程中有效;

3.执行该程序时执行者将具有该程序所有者(owner)的权限。如passwd命令

SGID:2

当s标志出现在用户组的x时称为SetGID,如'-rwxr-sr-x'。与SUID不同的是,SGID可以针对文件或者目录来设置。如果对于文件来说,SGID有如下的功能:

1.SGID权限对二进制且有可执行权限的程序有效。

2.执行该程序时执行者将获得该程序用户组的权限。

当一个目录设置了SGID权限后,它将具有如下功能:

1.用户若对此目录巨涌r和x权限时,该用户能够进入此目录。

2.用户在此目录下的有效用户组将会变成该目录的用户组。

3.若用户在此目录下具有w权限时,则用户所创建的新文件的用户组与此目录的用户组相同。

SBIT(Sticky Bit):1

SBIT权限目前只针对目录有效,对于文件已经没有效果了。SBIT对于目录的作用是:

1.当用户对于此目录具有w,x权限即具有写入权限时,当用户在该目录下创建文件或者目录时,仅有自己和root才有权限删除该文件。

换句话说:当甲用户对A目录具有w权限时,表示甲用户对该目录任何人新建的目录和文件均可进行删除,重命名,移动等操作。不过,如果将A目录加上了SBIT的权限时,则甲只能针对自己创建的文件和目录进行删除,重命名,移动等操作,而无法删除其他人的文件。例如/tmp本身的权限就是'drwxrwxrwt',这样每个用户都只能修改删除自己创建的文件和文件夹。

由于三个特殊权限分别作用于不同的地方,因此可通过一个数字来设置权限:

#chmod 4775  test    #加入了SUID权限

#chmod 1774 test     #加入了SBIT权限

#chmod 6777 test     #加入了SUID和SGID权限

注意:若添加后显示权限为大写的字母,如:

#chmod 7666 test      ===>-rwSrwSrsT

因为test文件连执行的x权限都没有,所有该文件无法执行,S,T就表示空。

四,主机的具体权限设置:ACL控制

ACL可以针对单一用户,单一文件或目录进行r,w,x的权限设置,对于需要特殊权限的使用状况非常有帮助。他主要可以针对几个项目:

用户(user):可以针对用户来设置权限;

用户组(group):可以针对用户组来设置权限;

默认属性(mask):可以在该目录下新建文件或者目录时设置新数据的默认权限。

ACL设置:getfacl,setfacl

getfacl:取得某个文件或目录的ACL设置项目。

setfacl:设置某个文件或目录的ACL规定。

setfacl 参数:

-m:设置后续acl参数 -x:删除后续acl参数 -b:删除全部的acl参数 -k:删除默认的acl参数 -R:递归设置acl,包括子目录 -d:设置默认acl

setfacl命令可以识别以下的规则格式:

[d(default)]:u[用户列表]: [rwx] 指定用户的权限,文件所有者的权限(如果uid没有指定)。

[d(default)]:g[用户组列表]:[rwx] 指定群组的权限,文件所有群组的权限(如果gid未指定)

[d(default)]:m: [rwx] 有效权限掩码

[d(default)]:o[其他用户列表] :[rwx] 其他的权限

例:

1.针对特定的用户,使用户code对test目录只有读取的权限:

# setfacl -m u:code:r /test  #若无用户列表,代表设置该文件所有者

2.针对特定的用户组,是用户组mygroup对目录test只有rx权限

#setfacl -m g:mygroup:rx /test

3.针对有限权限mask的设置

#setfacl -m m:r  test

4.ACL设置的权限可以被子目录所继承

#setfacl -m d:u:testuser:rx  /test

五,sudo命令

sudo命令用于普通用户执行只有管理员才能执行的命令,只有在/etc/sudoers文件中的用户才可以使用sudo命令。

/etc/sudoers中为主要内容为:

root    ALL=(ALL)    ALL

若想普通用户执行sudo命令,模仿root增加一行即可,这四个参数分别有不同的意义:

用户账号     登陆者的来源主机名=(可切换的身份)   可执行的命令(需要写绝对路径)

若用户为%test则表示test用户组。

例如:myuser  ALL=(root)   !/usr/无限的电话/passwd, /usr/无限的电话/passwd [A-Za-z]*, !/usr/无限的电话/passwd root

表示myuser只能切换到root用户,不能切换到其他用户,且不能执行passwd或者passwd root命令,但是可以更改其他用户的密码。

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