Linux用户用户组

用户/用户组管理

用户基本信息文件 /ect/passwd

head -3  /etc/passwd # 查看该文件前三行

用户名:x :UID :GID :描述 :HOME :shell

代表的意义:

​ x:密码占位符

​ UID:用户身份证

​ uid:0 特权用户 uid:1~499 系统用户 uid:1000+ 普通用户

​ GID:组号

​ 描述:对用户的补充

​ /root:家目录:系统登录时所在目录

​ /bin/bash/:登录shell:命令解释器

用户密码管理文件/etc/shadow

内容加密 对称密码钥匙一样 非对称钥匙不一样

文件内容每一行有八列,分别是:

1用户名:同文件passwd中的用户名

2口令:加密的密码

3最后一次修改时间:(距离19700101的天数)

4最小间隔:0代表当天可以改密码,5代表五天以后才可以改密码

5最大时间间隔:密码有效期 99999代表无限期

6警告时间:密码有效期提醒

7不活动时间:比如28代表的意思就是,用户不登陆系统28天,禁用该用户

8失效时间:30代表创建账号到了30天,该用户账号就不能用了

9保留

对口令来说:

​ 星号代表账号被锁定;双叹号表示这个密码已经过期了;

​ $6$开头的表明是用SHA-512加密的

​ $1$用MD5加密

​ $2$用Blowfish加密

​ $5$用SHA-256加密

组信息文件/etc/group

文件内容: root : X :0:

组名 :组密码 :组id :组成员

创建一个用户,一般会同时创建一个组,组名和用户名一样

加入root组实际权限不如root,只能说相对权力较大

用户/用户组管理

简介:组的类型分为基本组、附加组,基本组就是创建新用户时。为这个用户自动创建的组,组名就是用户名。当把这个用户加入到别的组中,这个别的组对与该用户来说就是附加组。附加组可以有多个,基本组只能有一个。根据组号查找组时,/etc/passwd里面找最合适,因为在group里面有附加组的信息,不太准确。

1、创建用户

useradd username 

注:可以用 grep username /etc/passwd 或者 id username 查找该用户是否创建成功

用户名不可以重复

创建用户没有密码,登录系统不会显示该新用户

2、删除用户

userdel -r username

不加-r不会删掉home下面对应该用户的文件夹

3、更改用户密码

passwd username

4、组成员管理

1)创建组

groupadd groupname -g 2000 #创建一个组指定组号2000

passwd shadow有关于用户,group有关于组,创建一个新的组,只能在group里面找到相关信息

-u 制定组的uid -g 制定用户的基本组 -G 制定用户的附加组

2)删除组

groupdel groupname

3)修改基本组

``usermode username -g BaseGroupName

4)添加附加组

usermode groupname1 -G groupname2 #将1添加为2的附加组

5、其它管理选项

1)修改用户属性

usermode -s /sbin/nologin username #修改用户属性,使其不能登录,在查看用户信息最后一组会变成:/sbin/nologin

基本权限

设置权限的两个基本元素是 :权限对象 权限类型

权限三对象:属主u 属组g 其他人o 特殊对象所有人a

权限三类型:读r=4 写w=2 执行x=1

设置权限

更改权限

语法:chmod 对象(u/g/o/a)赋值符(+/-/=)权限类型(r/w/x) 文件/目录需要加-R

注意:赋值符里面的-为占位符,不是减号的意思

更改属主、属组

显示文件详细信息时:第一个字符代表文件类型 后九个字符分别代表属主的权限、属组的权限、其他人的权限

所有文件默认不给执行权

1、给file授权,属主读的权限,没有写和执行

chmod u=r filename

2、给file授权,属组读写以及执行的权限

chomd g=rwx filename #或者g=9

3、用数字授权

chmod 777 file.txt #r4 w2 r1

4、改变文件属组或者属主

chown username.groupname filename # 可以同时改变属组以及属主

chgrp groupname filename #改变属主

加一个选项 -R 可以改变目录属组或者属主的同时改变该文件夹下面所有文件的属组或者属主

基本权限ACL

access control list

访问控制列表,由于基本权限UGO只能一个用户、一个组和其他人,最多只能设置三种不同的权限,ACL是对UGO的补充,该基本权限可以限制多个用户对文件不同的权限。

查看文件有哪些ACL权限

基本语法:getfacl filename

添加用户或者组到文件的ACL

基本语法:setfacl -m 对象类型(ugo):对象名字:对象权限 文件名字

比如 setfacl -m u:jack:- file1.txt:就是设置用户对jack对file1.txt的权限为0

在利用 ls -l filename查看文件的三种类型权限时,setfacl设置的权限会和属组或者属主的权限叠加在一起,如果显示rwx实际上属组可能只有这里面的一部分,具体得通过getfacl来查看才比较准确

删除文件的ACL里面的用户或者组

  • 基本语法:setfacl -x 对象类型(ugo):对象名字 文件名字

​ 注:-b选项可以删除文件的所有ACL

  • 这里讲一个方便练习修改权限时,查看文件权限改变的巧妙的方法,如图所示:

这个watch语句的意思是,每隔一秒显示该文件的详细信息,可以实现“ 一个窗口来输入命令,一个窗口来观察文件的权限变化”。

一些特殊权限

  • suid针对文件或者程序时,使调用该文件或者程序的用户,临时具备属主的能力(可以知识迁移到sgid,临时拥有属组的权利)

    • 举个例子:

      假如使用chmod u+s /usr/bin/cat 来设置cat文件

      该文件属主的第三个权限位置会变成s,意思是当一个普通用户使用cat,会具备root的权利,/root下面的文件夹普通用户也是可以查看的

    • 当该文件属主第三个位置有执行权限,s体现为小写否则体现是大写的形式

    • chmod 0777 filename 第一个位置就是代表赋予特殊权限

  • 目录必须要有执行权,这样子才能进入目录

  • 文件属性chattr:在文件上使用这个属性时,我们不能更改、删除该文件(除非先把i权限去掉:chattr -i filename)

    使用命令lsattr filename来查看该文件的特殊权限

    使用chattr +i filename来添加该特殊权限

  • 别的特殊权限

    • a:只允许在文件中进行追加操作
    • c:将文件或者目录压缩后存放
  • 进程掩码umask

    • 系统默认创建文件权限是644,默认创建目录就是755,umask是一个四位数字,关系着创建文件或者目录的特殊权利。

      • 举个例子:

        比如umask等于0022时,0777-0022就是0755,创建一个目录时去掉了属组和其他人写的权利;创建一个新的文件时0777-0022-0111就是0644,再删除所有的执行权利,这个0111是系统必须要减去的(没有类似于umask的进程掩码),只能通过用户添加该执行权限。

posted @ 2023-03-22 22:38  北京烤鸭酸奶  阅读(80)  评论(0)    收藏  举报