ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

linux学习笔记之用户身份与权限

2021-10-22 21:34:43  阅读:132  来源: 互联网

标签:文件 用户组 用户 笔记 参数 linux 权限 root


用户身份与文件权限  

管理员UID为0:系统的管理员用户。

系统用户UID为1~999:Linux系统为了避免因某个服务程序出现漏洞而被黑客提权至整台服务器,默认服务程序会由独立的系统用户负责运行,进而有效控制被破坏范围。

普通用户UID从1000开始:是由管理员创建的用于日常工作的用户。

 

通过使用用户组号码(GID,Group IDentification),可以把多个用户加入到同一个组中,从而方便为组中的用户统一规划权限或指定任务(在/etc/group里查看)  

另外,在Linux系统中创建每个用户时,将自动创建一个与其同名的基本用户组,而且这个基本用户组只有该用户一个人。如果该用户以后被归纳到其他用户组,则这个其他用户组称之为扩展用户组。一个用户只有一个基本用户组,但是可以有多个扩展用户组,从而满足日常的工作需要。

Tips

基本用户组就像是原生家庭,是在创建账号(出生)时就自动生成的;而扩展用户组则像工作单位,为了完成工作,需要加入到各个不同的群体中,这是需要手动添加的。

命令

id命令用于显示用户的详细信息,语法格式为“id用户名” useradd命令用于创建新的用户账户,语法格式为“useradd [参数] 用户名”。

 

 useradd命令中的参数以及作用

参数 作用
-d 指定用户的家目录(默认为/home/username)
-e 账户的到期时间,格式为YYYY-MM-DD.
-u 指定该用户的默认UID
-g 指定一个初始的用户基本组(必须已存在)
-G 指定一个或多个扩展用户组
-N 不创建与用户同名的基本用户组
-s 指定该用户的默认Shell解释器
  groupadd命令 用于创建新的用户组,语法格式为“groupadd [参数] 群组名”。   usermod命令用于修改用户的属性,语法格式为“usermod [参数] 用户名”  

 usermod命令中的参数以及作用

参数 作用
-c 填写用户账户的备注信息
-d -m 参数-m与参数-d连用,可重新指定用户的家目录并自动把旧的数据转移过去
-e 账户的到期时间,格式为YYYY-MM-DD
-g 变更所属用户组
-G 变更扩展用户组
-L 锁定用户禁止其登录系统
-U 解锁用户,允许其登录系统
-s 变更默认终端
-u 修改用户的UID
  passwd命令用于修改用户的密码、过期时间等信息
参数 作用
-l 锁定用户,禁止其登录
-u 解除锁定,允许用户登录
--stdin 允许通过标准输入修改用户密码,如echo "NewPassWord" | passwd --stdin Username
serdel命令用于删除已有的用户账户   在执行删除操作时,该用户的家目录默认会保留下来,此时可以使用-r参数将其删除
参数 作用
-f 强制删除用户
-r 同时删除用户及用户家目录
 
 
文件权限(一般、特殊、隐藏)与归属
  可读(r)、可写(w)、可执行(x)等权限。对于一般文件来说,“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录

 

    文件权限的字符与数字表示

 

若某个文件的权限为7,则代表可读、可写、可执行(4+2+1)   减号是占位符,代表这里没有权限,在数字表示法中用0表示     常见的文件类型包括普通文件(-)、目录文件(d)、链接文件(l)、管道文件(p)、块设备文件(b)以及字符设备文件(c)  
文件的特殊权限
  SUID是一种对二进制程序进行设置的特殊权限,能够让二进制程序的执行者临时拥有所有者的权限(仅对拥有执行权限的二进制程序有效) [root@localhost ~]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 33600 Apr 7 2020 /usr/bin/passwd SGID特殊权限有两种应用场景:当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限;当对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的名称   SBIT特殊权限位可确保用户只能删除自己的文件,而不能删除其他用户的文件。换句话说,当对某个目录设置了SBIT粘滞位权限后(只能改目录权限),那么该目录中的文件就只能被其所有者执行删除操作了,比如/tmp [root@localhost ~]# ll -d /tmp
drwxrwxrwt. 10 root root 4096 Oct 22 19:45 /tmp

原有x执行权限,特殊权限是小写,没有则是大写,如s/S, t/T  

      SUID、SGID、SBIT特殊权限的设置参数

参数 作用
u+s 设置SUID权限
u-s 取消SUID权限
g+s 设置SGID权限
g-s 取消SGID权限
o+t 设置SBIT权限
o-t 取消SBIT权限
其实,SUID、SGID与SBIT也有对应的数字表示法,分别为4、2、1。也就是说777还不是最大权限,最大权限应该是7777,其中第1个数字代表的是特殊权限位
[root@localhost ~]# chmod 7534 anaconda-ks.cfg
[root@localhost ~]# ll anaconda-ks.cfg
-r-s-wsr-T. 1 root root 1037 Aug 20 15:45 anaconda-ks.cfg

更改权限和归属命令 chmod  权限 文件    (权限用数字,或u/g/o/a  +/-  r/w/x) chown  所有者:所属组  文件 或chown  所有者.所属组  文件
针对目录要加-R参数,不加子文件不会变    
文件的隐藏属性

chattr命令用于设置文件的隐藏权限,语法格式为“chattr [参数] 文件名称”。

如果想要把某个隐藏功能添加到文件上,则需要在命令后面追加“+参数”,如果想要把某个隐藏功能移出文件,则需要追加“-参数”

参数 作用
i 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only)
s      彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域),xfs文件系统不支持
[root@localhost ~]# chattr +i anaconda-ks.cfg
[root@localhost ~]# lsattr anaconda-ks.cfg
----i--------------- anaconda-ks.cfg
  lsattr命令用于查看文件的隐藏权限
文件访问控制列表

setfacl命令用于管理文件的ACL权限规则,英文全称为“set files ACL”,语法格式为“setfacl [参数] 文件名称”。

 

 setfacl命令中的参数以及作用

参数 作用
-m 修改权限
-M 从文件中读取权限
-x 删除某个权限
-b 删除全部权限
-R 递归子目录

 

ACL权限提供的是在所有者、所属组、其他人的读/写/执行权限之外的特殊权限控制。使用setfacl命令可以针对单一用户或用户组、单一文件或目录来进行读/写/执行权限的控制。其中,针对目录文件需要使用-R递归参数;针对普通文件则使用-m参数;如果想要删除某个文件的ACL,则可以使用-b参数,要删除某一条指定的权限,就用-x参数

[root@linuxprobe ~]# setfacl -Rm u:linuxprobe:rwx /root
                                                             u用户(g组):用户名:权限        文件
[root@linuxprobe ~]# setfacl -x g:linuxprobe /etc/fstab
常用的ls命令是看不到ACL信息的,但是却可以看到文件权限的最后一个点(.)变成了加号(+),这就意味着该文件已经设置了ACL   getfacl命令用于查看文件的ACL权限规则,英文全称为“get files ACL”,语法格式为“getfacl [参数] 文件名称”   在备份/home目录上的ACL权限时,可使用-R递归参数,这样不仅能够把目录本身的权限进行备份,还能将里面的文件权限也自动备份
[root@linuxprobe /]# getfacl -R home > backup.acl
ACL权限的恢复也很简单,使用的是--restore参数
[root@linuxprobe /]# setfacl --restore backup.acl

 

标签:文件,用户组,用户,笔记,参数,linux,权限,root
来源: https://www.cnblogs.com/zichehanxue/p/15440679.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有