5.Linux文件权限

Posted ming-1012

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5.Linux文件权限相关的知识,希望对你有一定的参考价值。

Linux用户类别

  • root:这是系统特权用户类,他们都有访问root登录账号的权限
  • owner:这是实际拥有文件的用户
  • group:这是共享文件的组访问权的用户类的用户组名称
  • world:这是不属于上面3类的所有其他用户。
 
/etc/passwd 文件格式:
muming:x:1000:1000:muming,,,:/home/muming:/bin/bash
用户名:密码:用户id:用户所属组id:用户信息描述:用户家目录:用户启动shell位置
 
/etc/shadow文件格式:
muming:$6$i2nMsSGD$jgW0XjgE66dqevwoAfSE65lLrD13/k.Xrtiz/UlwE/BF//WLm6sAIzp96pngc1TCzKrhetjNcTQG0zQHiT5C4/:17769:0:99999:7:::
  • 用户名
  • 密码(加密过的密码,*或!打头表示不能登录)
  • 密码最后一次被修改的时间(从1970年1月1日到改日的天数)
  • 从上一次修改密码到下一次允许进行修改要经历的天数
  • 经过多少天后用户必须重新修改密码
  • 在密码到期前多少天向用户发出必须修改密码的警告
  • 账号到期日
  • 保留
 
/etc/group文件格式:
groupname:password:gid:user_list
例如:muming:x:1000:
  • groupname:组名称
  • password:组密码
  • gid:组识别号
  • user_list:该组用户清单
 
/etc/gshadow文件格式:
muming:!::
 
 

组管理

  • 组管理命令
命令名称
用途
命令举例
groupadd
添加组
groupadd g_study
groupadd -g 777 mygroup
-g 参数直接指定gid
gpasswd
管理用户组信息,如设置密码,添加
删除组成员
gpasswd g_study
gpasswd -a study g_study
-a 添加用户进组
-d 从组里删除用户
groupmod
修改用户组信息
groupmod -n studygroup
(新名)g_study(旧名)
groupdel
删除用户组
groupdel studygroup
groups
显示用户所属的用户组
groups study
 
 

用户权限

  • 用户管理命令
命令名称
用途
命令举例
useradd或adduser
添加用户
useradd study
useradd -g 组名 用户
(将用户添加到指定组)
useradd -g 默认组 -G 其他组1,其 他组2,... 用户
一个用户可以属于多个组
passwd
为用户设置密码
passwd study
passwd -d study(删除密码)
usermod
修改用户信息
usermod -c study(改后的别名)study
usermod -g study(要修改成的组的组名)test(要修改的用户)
将test用户的默认组修改为study
userdel
删除用户
userdel -r study(-r连主目录一起删除)
su
用户切换
su root(未将当前目录切换到root用户的目录下)
su - root(将目录切换到了root用户目录下)
id
查看用户的UID、GID及所归属的用户组
id study
 
useradd命令不能够在/home下创建用户主目录
1:有时候直接使用:
useradd hadoop
并不能够在/home下创建hadoop的文件夹,这是由于/etc/login.defs中的假如在/etc/login.defs中的CREATE_HOME被设置为no。
 
2:解决方案 — > 加上一个“-m”
useradd -m hadoop
在man useradd文档中,会发现,-m可以在系统不允许创建用户主目录的情况之下创建用户主目录。
 
 

权限管理

Linux文件权限位
  • 文件权限位的表示:-rwxrwxrwx
  • 第一位表示文件的类型,-表示普通文件,d表示目录文件,l表示符号连接文件
  • 接下来三位表示owner用户的读、写、执行权限
  • 紧跟着三位表示group用户的读、写、执行权限
  • 最后三位表示world用户的读、写、执行权限
 
Linux文件权限管理
  • 设置文件所属的用户以及所属的组(chown,chgrp)
  • 给文件赋予相应的权限位(chmod)
  1. chown
chown用来更改文件所有者与组拥有者,其一般格式为:
  chown [option] owner [:group] file
将abc及其子目录下的所有文件的所有者改为jjl:
  chown jjl abc
将abc文件的所有者改为jjl,组拥有者改为study:
  chown jjl:study abc
将文件夹递归更改
  chown -R root:root 文件夹名称
 
  1. chgrp
chgrp用来更改文件的组拥有者,其一般格式为:
  chgrp [option] group file
将文件abc的组拥有者改为study:
  chgrp study abc
将abc及其子目录下的所有文件的组拥有者改为study:
  chown -R study abc
 
  1. chmod
chmod命令格式为:
  chmod [option] mode files...
mode表示格式:
  • 数字表示:[n][n][n] r = 4 w = 2 x = 1
  rwx: 4 + 2 + 1; r-x: 4 + 1; rw-:4 + 2
  • 文本方式:[ugoa][+-=][rwx]
    u -- 该档案的拥有者
    g -- 与该档案的拥有者属于同一群体(group)者;
    o -- 其他以外的人;
    a - 所有
    + -- 增加权限
    - -- 去掉权限
    = -- 设定权限
    -R : 递归更改
 
为文件abc的组拥有者增加rw权限:
  chmod g+rw abc
为abc文件的用户拥有者去除x权限:
  chmod u-x abc
指定文件abc的其他用户权限位rw-:
  chmod o=rw-
将文件abc及其子目录底下的所有文件的全体用户增加x权限
  chmod -R a+x abc
 
  1. set uid(suid)、set gid(sgid)
  • /usr/bin/passwd -rwsr-xr-x
  • /etc/shadow -r--------
  • suid权限仅对可执行程序有效即具有x权限
  • 本权限针对运行中的进程
  • 运行中的进程将具有该程序拥有者的权限
  • s出现在组权限的x位置上时,称为sgid
 
  1. sticky bit(sbit):粘着位
/tmp drwxrwxrwt
仅对目录有效
防止文件或目录被非属主删除
 
对目录
  x:进入目录
  w:创建文件/文件夹
  r:列出文件夹里面的内容
 
 技术分享图片

 


 

技术分享图片

技术分享图片
该位置出现了S权限,这不是一个有效的权限,因为要使用s权限,suid权限仅对可执行程序有效即具有x权限才可用
按如下方式修改即可:
技术分享图片
 技术分享图片
如果想让用户和用户组都拥有s权限,则输入如下命令:
技术分享图片
 技术分享图片

修改文件夹权限位为t

技术分享图片
技术分享图片

技术分享图片

 

  1. umask
技术分享图片
技术分享图片
  0002的含义:表示当创建一个文件夹时,其他用户应该去掉2这个权限,也就是w权限。
技术分享图片
 技术分享图片

 

对于文件夹:
  mode = 777 & ~umask
对于文件:
  mode = 666 & ~umask

以上是关于5.Linux文件权限的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统安装与实验基础

第一次考试总结

linux 文件属性

5.Linux用户的管理和权限

1_Linux_目录简介

Linux文件权限符号含义