文件权限

2文件默认权限

文件默认权限是指建立文件后存在的权限,

文件不能建立为执行文件,必须手工赋予执行权限,所以文价默认权限最大为666,建立文件之后的默认权限,为666减去umask的值,

目录的默认权限最大为777,建立文件之后的默认权限,为777减去umask的值。

默认权限需要换算成字母再相减,。

umask:查看默认权限

0022:

  第一位0:文件的特殊权限

  022:文件默认权限

修改umask值

临时修改——umask 0002

永久修改——vi  /etc/profile

 

usermod(选项)(参数):

参数若为两个,顺序一般为  usermod (选项)  目标参数  原始参数

-c<备注>:修改用户帐号的备注文字;

-d<登入目录>:修改用户登入时的目录;

-e<有效期限>:修改帐号的有效期限;

-f<缓冲天数>:修改在密码过期后多少天即关闭该帐号;

-g<群组>:修改用户所属的群组;

-G<群组>;修改用户所属的附加群组;

-l<帐号名称>:修改用户帐号名称;

-L:锁定用户密码,使密码无效;

-s:修改用户登入后所使用的shell;

-u:修改用户ID;

-U:解除密码锁定。

usermod -l viv vivek   //vivek希望将他的login ID从vivek改为viv

3 文件的特殊权限

3.1ACL权限

3.1.1ACL权限简介与开启

解决问题:属主权限属组权限其他用户权限过于简单,导致其他权限无法开启给某个用户,解决用户身份不足

#dumpe2fs -h /dev/sda5  

//dumpe2fs命令是查询指定分区详细文件系统信息的命令,是否支持ACL

//选项-h 表示仅显示超级块中的信息,而不显示磁盘块组的详细信息

3.1.2 临时开启分区ACL权限

#mount -o remount,acl  /

//重新挂载根分区,并挂载加入acl权限

3.1.3 永久开启分区ACL权限

#vi   /etc/fstab

//写配置文件,加入acl

//UUID=c2ca6f57-b15c-43ea-bca0-f239083d8bd2 / ext4  defaults, acl   1  1

#mount -o remount  /

//重新挂载文件系统或重新启动系统,使修改生效

3.1.4查看ACL权限

#getfacl  文件名

3.1.5设定ACL权限

#setfacl 选项 文件名

选项:

-m:设定ACL权限

-x:删除指定的ACL权限

-b:删除所有的ACL权限

-d:设定默认的ACL权限

-k:删除默认的ACL权限

-r:递归设定ACL权限

操作:

#useradd tony   //添加用户

#groupadd stu  //添加组

#mkdir   /av  //创建目录

#chown tony:stu  /av

#chmod 770  /av

#useradd lw

#setfacl -m u:lw:rx  /av  //给用户stfuyu 分配r-x权限,使用“u:用户名:权限”格式

#groupadd  tgroup

#gSetfacl -m g:tgroup:rwx  /av  //给组tgroup分配 rwx权限,使用“g:组名:权限”格式

ll  //查看文件权限

#getfacl   /av  //查看某个文件的具体权限

输出结果:file:av

          Owner:tony

          Group:stu

          User::rwx

          User:lw:r-x  //为lw赋予了权限

          Group::rwx

          Mask::rwx

          Other::--

3.1.6 ACL最大有效权限

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

上述getfacl 输出结果中mask,就是最大有效权限

一般mask权限是最大的,但也可以修改

#setfacl -m  m:rx  /av  //给mask分配 rx权限,使用“m:权限”格式

 

3.1.7删除ACL权限

#setfacl -x u:用户名 文件名 //删除指定用户的ACL权限

#setfacl -x g:组名 文件名 //删除指定用户组的ACL权限

#setfacl -b 文件名 //删除文件的所有ACL权限

 

3.1.8递归ACL权限

递归是父目录在设定ACL权限时,所有的已经存在的子文件和子目录也会拥有相同的ACL权限。注意在ACL权限之后建立的新文件不再具有父目录所设定的ACL权限

#setfacl -m  u:用户名 -R 目录名

当使用递归时,给目录赋予执行权限,目录下的文件也会具有执行权限,造成权限溢出。

3.1.9默认ACL权限

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

#setfacl  -m  d:u:用户名:权限   目录名

 

4 sudo权限

4.1作用

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

sudo的操作对象是系统命令

4.2 sudo使用

命令: #vi sudo  //实际修改的是/etc/sudoers文件

文件内容中:

 Root                 ALL=(ALL)                 ALL

用户名  被管理主机的地址=(可使用的身份)  授权命令(绝对路径)

%wheel                 ALL=(ALL)                 ALL

组名    被管理主机的地址=(可使用的身份)  授权命令(绝对路径)

可使用的身份可以省略,省略后默认是root权限

授权的命令越详细,普通用户所获得的权限越具体越小,授权的命令越简单,普通用户所获得的权限越大。

5 文件特殊权限

注意:特殊权限尽量少修改

5.1 SetUID 

5.1.1 SetUID针对文件的作用

  1. 只有可执行二进制程序才能设定SUID权限
  2. 命令执行者要对该程序拥有x(执行)权限
  3. 命令执行者在执行该程序时后的该程序文件属主的身份(在执行程序的过程中灵魂附体为文件的属主)
  4. SetUID权限只在该程序执行过程中有效,也就是说身份改变只在程序执行过程中有效

5.1.2举例

passwd命令拥有SetUID权限,所以普通用户可以修改自己的密码

ll /usr/bin/passwd

-rwsr-xr-x. 1 root root 25980 2月 22  2012 /usr/bin/passwd

cat命令没有SetUID权限,所以普通用户不能查看/etc/shadow文件内容

ll  /bin/cat

-rwxr-xr-x. 1 root root 47976  6月 22  2012  /bin/cat

5.1.3 设定SUID的方法

4代表SUID

#chmod 4755 文件名

#chmod u+s 文件名

5.1.4 取消SUID的方法

#chmod 0755 文件名

#chmod u-s 文件名

5.1.5 危险的SetUID

  1. 关键目录应严格控制写权限。比如“/”、“/usr”等
  2. 用户的密码设置要严格遵守密码三原则
  3. 对系统中默认应该具有SetUID权限的文件作一列表,定时检测有没有这之外的文件被设置了SetUID权限。

5.2 SetGID

5.2.1 SetGID针对文件的作用

  1. 只有可执行的二进制文件才能设置SGID权限
  2. 命令执行者要对该程序拥有x(执行)权限
  3. 命令执行者在执行该程序时,组身份升级为该程序文件的属组
  4. SetGID权限只在该程序执行过程中有效,也就是说组身份改变只在程序执行过程中有效

5.2.2 SetGID针对目录的作用

  1. 普通用户对此目录拥有r和X权限,才能进入此目录
  2. 普通用户在此目录中的有效组会变成此目录的属组
  3. 若普通用户对此目录拥有W权限,新建的文件的默认属组是这个目录的属组

5.2.3 设定SGID的方法

2代表SGID

#chmod 2755 文件名

#chmod g+s 文件名

5.2.4 取消SGID的方法

#chmod 0755 文件名

#chmod g-s 文件名

5.3 Sticky BIT

5.2.1 SBIT粘着位针对目录的作用

  1. 普通用户对此目录拥有W、R和X权限,最高权限7,即普通用户可以在此目录拥有写入权限。
  2. 如果没有粘着位,因为普通用户拥有W权限,所以可以删除此目录下所有文件,包括其他用户建立的文件。一旦赋予了粘着位,除了root可以删除所有文件,普通用户就算拥有W权限,也只能删除自己建立的文件,但是不能删除其他用户建立的文件。

5.3.2 设定 SBIT粘着位的方法

1代表 SBIT粘着位

#chmod 1755 目录名

#chmod g+t 目录名

5.3.3 取消 SBIT粘着位的方法

#chmod 0755 目录名

#chmod 0-t 目录名

 

6 不可改变位权限

6.1 Chattr命令格式

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

+:增加权限

-:删除权限

=:赋予权限

选项

i(insert):

如果对文件设置i属性,那么不允许对文件进行删除、改名,也不能添加和修改数据(实际上文件被锁定);

如果对目录设置i属性,那么只能修改目录下文件数据,但不允许建立和删除文件。

a(append):

如果对文件设置a属性,那么只能对文件添加数据(只能用输出重定向echo命令,不可以用vi编辑文件),不能删除和修改数据;

如果对目录设置a属性,那么只能建立和修改目录下文件,但不允许删除文件。

6.2查看文件系统属性

 #lsattr  [选项] 文件名

选项

-a:显示所有文件和目录

-d:若目标是目录,仅列出目录本身属性名而不是子文件的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值