Linux入门——用户 ,组,权限

Posted angge

tags:

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

Linux是一个多任务多用户的系统,多用户可以同时登陆同一台主机。为了考虑到每个人的隐私权和工作空间,这时候文件所有者(owner)就是即用户的角色就变得尤为重要了,同时为了用户与用户之间方便合作,共享一些公共资源,这时,为了实现资源的快速分配,我们把多个用户放在一个公共的空间,分别赋予他们不同的读写执行等操作的权限,这些用户共同组成的一个整体,就是所谓的用户组(group)。

用户与组的主要配置文件

1/etc/passwd:用户及其属性信息   文件格式

技术分享图片

用户名:密码位:xuid:gid:描述位:家目录:shell:

2/etc/group 组及其属性信息   文件格式

技术分享图片

组名:组密码:组id:附加组成员列表

3 /etc/shadow 用户密码及其相关属性   文件格式

技术分享图片

用户名:密码(加密):密码的上次修改日期: 密码最小存活期: 密码最大存活期: 密码过期前多少天开始提醒用户:密码过期后多少天帐户过期:帐户过期:保留位:

4 /etc/gshadow:组密码及其相关属性  文件格式

技术分享图片

组名:组密码(加密):组管理员: 附加组成员列表

用户和组管理命令

Id

id 用户名  显示指定用户的信息

技术分享图片

 

useradd

  -u UID 指定 UID

      -o 与-u 配合,不检查uid的唯一性

      -g GID/组名 指定用户的主要组

      -G GID/组名 指定用户的附加组

      -s /sbin/nologin  指定用户的默认shell

useusermod

      -g GID/组名  修改用户的主组(该组要先存在)

      -G GID/组名 设置用户的附加组

    usermod -G ‘‘ zhangsan   删除所有的附加组

      -s shell 修改用户的默认shell

Userdel

  userdel 用户名  删除用户不删除家目录(可在/etc/home下查看)

  userdel   -r  用户名  删除用户时,连同家目录和mail文件一同删除

su

  su – 用户名  在root在切换不需要密码,其他用户需要切换密码

groupadd

  groupadd   组名

groupmod

  group -n 新组名 当前组名  修改组名

      group -g 新ID 当前组名    修改GID

groupdel

  groupdel   组名 删除组

gpasswd

  gpasswd -a 用户名  组名 将指定用户以附加组方式加入到指定组

   gpasswd -d 用户名   组名将指定用户从指定组中删除

  gpasswd -A 用户名  组名  设置组管理员(管理员可以修改组密码,及修改组成员)

       gpasswd -M ‘ ‘ 组名 删除组成的所有成员

groupmems

  groupmems -g 组名 -a 用户名 往组中增加成员

  groupmems -g 组名-d 用户名 从组中删除成员

  groupmems -g 组名-l 列出组成员 (不包含主组)

  groupmems -g 组名-p 清空该组的所有组员

总结:将某已在用户以附加组方式加入某组当中

       1.usermod -G 组名 用户名

       2.gpasswd -a 用户名 组名

       3.groupmems -g 组名 -a 用户名

要明白 每个用户有且只能有一个主要组,但用户可以有零到多个附加组每个文件只能有一个所属人,和一个所属组

练习

1创建组weiguo,shuguo,创建用户liubei为shuguo组管理员,caocao为魏国组管理员

技术分享图片

技术分享图片

技术分享图片

技术分享图片

2创建用户kongxiuxiu,guanyu其附加组为weiguo,创建用户zhangfei其主组为shuguo

 技术分享图片

技术分享图片

3彻底删除用户kongxiu,把guanyu的附加组weiguo改为shuguo

技术分享图片

理解并设置文件权限

我们必须要牢记用户在访问文件时权限顺序是 owner > group >other

也就是当用户访问一个文件时,首先判断当前用户是否为该文件的所属人owner,如果是owner,则应用owner位的权限;如果不是owner,则判断该用户的所属组当中,是否有一个组与该文件的group相同,如果有,则应用group位的权限,如果都不是,则应用other位权限

用ll可以看到一个文件(如果文件没有设置acl)的权限

 技术分享图片

    -:文件的类型:-,d,l,b,c,p,s

    rw-:owner

    r--:group

    r--:other

   .  表示该文件是否有selinux的context值

r read 读取文件 (列出目录文件) 
w write 写权限 (可以在目录中修改创建或删除文件 需要x 权限) 
x excute 执行权限 (目录基本权限,只有执行权限才能有其他操作)

Chgrp

chgrp 组名 文件/目录名(修改用户的group)(owner可以修改文件的属于组,但owner一定要属于目标组)

chgrp  -R  递归

Chown

      chown 用户名 文件/目录名   修改用户的owner

     chown   -R 递归同时修改目录下的子文件子目录

Chmod

符号模式

      chmod  u/g/o +-= rwx 文件名

      例:chmod o+w a 向文件a的other位添加w权限

技术分享图片

技术分享图片

数字模式

      1代表x           2代表w            4代表r

1:x   2:w   3:wx   4:r   5:rx     6:rw    7:rwx

例:chmod 777 a   设置文件a的权限为rwxrwxrwx

技术分享图片

练习

1创建目录/app/house,要求owner为liubei,仅刘关张对该目录有完整权限,其他人无任何权限

技术分享图片

注意:前面我已经把刘关张都加入了shuguo组

2分别使用刘关张三用户在house创建各自的room目录,名为xxx_room,要求各自的room只能自己有完整权限,其他人没有任何权限

技术分享图片

技术分享图片

技术分享图片

3创建一个共享目录为/app/house/common,要求刘关张在该目录下所创建的文件,彼此之间都可以读写,其他人无任何权限。

技术分享图片

特殊权限

Suid

chmod u+s 

当对于一个可执行的二进制文件作用了suid之后,任何人在执行该文件时,临时拥有其所有人的权限

Sgid

chmod g+s

1.当对于一个可执行的二进制文件作用了sgid之后,任何人在执行该文件时,临时拥有其所有组的权限

2.当对于一个目录作用了sgid权限之后,任何人在该目录下所创建的文件的所属组,均与该目录的所属组相同

Sticky

对于一个目录作用了sticky权限,该目录下的文件仅其所属人和目录的所属人及root可以删除。 

ACL

开启acl的方式

      centos7 默认支持acl

centos6及之前,操作系统安装时所创建的文件系统默认支持acl,而操作安装之后使用mkfs格式化的文件系统默认未开启acl,需要手工开启,方法如下:

      1.tune2fs -o acl /dev/sda5

      2.mount -o acl /dev/sda5 /app

ACl权限判断顺序

      owner > acl user > group > other

 

设置ACL

      setfacl -m u:liubei:rwx testdir

设置默认权限

      setfacl -Rm u:liubei:rwx testdir/    设置当前的权限

      setfacl -Rm d:u:liubei:rwx testdir/  设置未来文件的权限

删除所有权限,清空acl结构

     setfacl -b testdir

acl 扩展属性  打包工具不支持存储

练习

1、在/app/dir里创建的新文件自动属于shuguo组,组weiguo的成员如:caocao能对这些新文件有读写权限,组wuguo的成员如:sunquan只能对新文件有读权限,其它用户不能访问这个文件夹

技术分享图片

2、备份/app/dir里所有文件,删除/testdir/dir,然后恢复/testdir/dir,并恢复/testdir/dir中所有ACL权限。

技术分享图片

技术分享图片



以上是关于Linux入门——用户 ,组,权限的主要内容,如果未能解决你的问题,请参考以下文章

linux入门用户与用户组权限管理文件系统selinux

linux文件权限查看及修改-chmod ------入门的一些常识

Linux入门笔记3

linux初识到入门_用户管理

Linux从入门到实战 ----文件属性类

Linux入门到放弃之五《用户管理》