首页 > 系统相关 >用户和组账号概述 Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户 超级用户,即root用户,类似于Windows系统中的Administrator用户

用户和组账号概述 Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户 超级用户,即root用户,类似于Windows系统中的Administrator用户

时间:2023-09-23 22:03:09浏览次数:37  
标签:文件 帐号 超级 用户 权限 root 目录


用户和组账号概述

Linux基于用户身份对资源访问进行控制 用户帐号: 超级用户root、普通用户、 程序用户

超级用户,即root用户,类似于Windows系统中的Administrator用户,非执行管理任务时不建议使用root用户登录系统

普通用户帐号一般只在用户自己的宿主目录中有完全权限

程序用户:用于维持系统或某个程序的正常运行,一般不允许登录到系统。例如:bin、daemon、ftp、mail等

组帐号: 基本组(私有组) 一个用户一个 只是标识 附加组(公共组)一个用户可以有一个或多个附加组 可以设置权限 UID和GID: UID(User Identity,用户标识号) 0—root;1-200:“系统用户”,静态分配给红帽的系统程序;

201-999:当装软件时,才会动态分配;1000-60000:普通用户分配的范围

GID(Group Identify,组标识号)

用户账号文件——password

用于保存用户的帐号基本信息

文件位置:/etc/passwd

每一行对应一个用户的帐号记录

[root@localhost ~]# tail -2 /etc/passwd
 sabayon:x:86:86:Sabayon user:/home/sabayon:/sbin/nologin
 student:x:500:500:Student User:/home/student:/bin/bash
字段1:用户帐号的名称
  字段2:用户密码字串或者密码占位符“x”
  字段3:用户帐号的UID号
  字段4:所属基本组帐号的GID号
  字段5:用户全名
  字段6:宿主目录
  字段7:登录Shell信息

用户账号文件——shadow

用于保存密码字串、密码有效期等信息

文件位置:/etc/shadow

每一行对应一个用户的密码记录

[root@localhost ~]# tail -2 /etc/shadow
 sabayon:!!:15495:0:99999:7:::
 student:$1$po/zD0XK$4HSh/Aeae/eJ6dNj1k7Oz1:15495:0:99999:7:::
字段1:用户帐号的名称
  字段2:加密的密码字串信息
  字段3:上次修改密码的时间(距离1970.1.1)
  字段4:密码的最短有效天数,默认值为0
  字段5:密码的最长有效天数,默认值为99999
  字段6:提前多少天警告用户口令将过期,默认值为7
  字段7:在密码过期之后多少天禁用此用户
  字段8:帐号失效时间,默认值为空
  字段9:保留字段(未使用)

组账号文件—group、gshadow

与用户账号文件类似

/etc/group:保存组帐号基本信息 /etc/gshadow:保存组帐号的密码信息

[root@localhost ~]# grep "adm" /etc/group
 sys:x:3:root,bin,adm
 adm:x:4:root,adm,daemon

添加用户账号

useradd命令 格式:useradd [选项]... 用户名 常用命令选项 -u:指定 UID 标记号 -g:指定用户的基本组名(或UID号) -G:指定用户的附加组名(或GID号) -s:指定用户的登录Shell

不添加任何选项,只使用用户名作为useradd命令的参数,按系统默认配置建立指定的用户帐号 
 演示添加用户的操作:
 —创建名为st02的用户帐号,并将其UID号指定为504
     [root@localhost ~]# useradd -u 504 st02
     [root@localhost ~]# tail -1 /etc/passwd
     st02:x:504:504::/home/st02:/bin/bash
 ——创建一个考试测试用的帐号exam01,指定属于users组 ,该帐号于2009-07-30失效
     [root@localhost ~]# useradd -g users -e 2009-07-30 exam01
     展示/etc/passwd、/etc/shadow文件中的变化
     说明:使用adduser命令也可以添加用户帐号,在RHEL5系统中adduser命令实际上是useradd命令的符号链接
     useradd  -s  /sbin/nologin  strlt

设置/更改用户口令

passwd命令 格式:passwd [选项]... 用户名 常用命令选项 -d:清空用户的密码,使之无需密码即可登录 -l:锁定用户帐号 -S:查看用户帐号的状态(是否被锁定) -u:解锁用户帐号

修改用户账号的属性

usermod命令 格式:usermod [选项]... 用户名 常用命令选项 -L:锁定用户账户 -U:解锁用户账户 以下选项与useradd命令中的含义相同 -u、-g、-G、-s

删除用户账号

userdel命令 格式:userdel [-r] 用户名 添加 -r 选项时,表示连用户的宿主目录一并删除

[root@localhost ~]# useradd stu01
 [root@localhost ~]# ls -ld /home/stu01/
 drwx------ 2 stu01 stu01 4096 09-09 12:38 /home/stu01/
 [root@localhost ~]# userdel -r stu01
 [root@localhost ~]# ls -ld /home/stu01/
 ls: /home/stu01/: 没有那个文件或目录

改变用户密码期限

chage命令 格式:chage [选项]... 用户帐号名 常用命令选项 -M:密码的最长有效天数 -m:密码的最短有效天数 -W:密码的警告天数 -I:密码的有效天数 -E:账号的过期时间

查看密码的有效天数:chage -l root
 chage -M 60 root   密码的最长有效天数
 chage -m 60 root   密码的最短有效天数

组管理命令

groupadd命令 格式:groupadd [-g GID] 组帐号名 组成员管理: 格式:gpasswd [选项]... 组帐号名 删除组帐号: 格式:groupdel 组帐号名

用户和组账号查询

id命令 用途:查询用户身份标识 格式:id [用户名] groups命令 用途:查询用户所属的组 格式:groups [用户名] users、w 、who命令 用途:查询已登录到主机的用户信息

主要有哪两个用户帐号文件,各有什么作用?
 如何锁定、解锁用户帐号?
 在添加用户帐号时,如何设置其失效时间?
 如何设置一个组的多个用户成员?
 
 部分答案提示:
 【1】/etc/passwd、/etc/shadow
 【2】锁定帐号:usermod  -L  用户名、passwd  -l  用户名 ; 解锁帐号: usermod  -U  用户名、passwd  -u  用户名 
 【3】useradd -e YYYY-mm-dd 用户名  或者  usermod -e YYYY-mm-dd 用户名
 【4】~/.bash_profile、~/.bashrc、~/.bash_logout
 【5】gpasswd  -M  用户1,用户2,用户3  组名

实验案例

需求描述

现雇用一组顾问从事某一项目。为每位顾问创建用户帐户,并将这些帐户掭加到作为补充组,名为consultants、组id为40000的组中。
 这些帐户应在91天后终止时过期。
 以下是顾问姓名及其相应用户名的列表,帐户的初始密码均应为default):
 sspade, bboop, dtracy
先建manager组,创建两个用户natasha,harry附属组为manager,创建第三个用户strlt不允许login 。
 建一个用户susa,指定UID号为4000
 帐户的初始密码均应为default

文件/目录的权限和归属

访问权限 读取:允许查看文件内容、显示目录列表 写入:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录 可执行:允许运行程序、切换目录 归属(所有权) 属主:拥有该文件或目录的用户帐号 属组:拥有该文件或目录的组帐号

查看文件/目录的权限和归属用户和组账号概述 Linux基于用户身份对资源访问进行控制 用户帐号:  超级用户root、普通用户、  程序用户 超级用户,即root用户,类似于Windows系统中的Administrator用户_字段

“-rw-r—r--”部分的第一个字符表示文件类型,可以是d(目录)、b(块设备文件)、c(字符设备文件),减号“-”(普通文件)、字母“l”(链接文件)等
 其余部分指定了文件的访问权限
 在表示属主、属组内用户或其他用户对该文件的访问权限时,主要使用了四种不同的权限字符: r    可读 ;w   可写 ;x   可执行 ;-   无权限 
 r、w、x、- 权限字符还可分别表示为8进制数字4、2、1、0

设置文件/目录的权限

chmod命令

格式1:chomd [ugoa] [+-=] [rwx] 文件或目录

格式2:chmod nnn 文件或目录

常用命令选项

-R:递归修改指定目录下所有文件/子目录的权限

详细讲解两种设置文件访问权限的格式,并以实例进行演示,例如:
 —— 重新设置mymkdir文件的权限,为属主用户添加执行权限,去除其他用户的读取权限
 [root@localhost ~]# chmod u+x,o-r mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr----- 1 root root 29588 05-12 06:19 mymkdir
 —— 重新设置mymkdir文件的访问权限,恢复为“rwxr-xr-x”
 [root@localhost ~]# chmod 755 mymkdir
 [root@localhost ~]# ls -l mymkdir
 -rwxr-xr-x 1 root root 29588 05-12 06:19 mymkdir 
 —— 使用递归的方式将“/usr/src/”目录中所有子目录、文件的权限都设置为“rw-r--r--”
 [root@localhost ~]# chmod -R 644 /usr/src/
 
 “nnn”为需要设置的具体权限值,如“755”、“644”等

文件权限设置实例

使用chmod命令设置文件权限 查看文件权限 ls -l 增加文件属主st01的执行权限(x) chmod u+x 文件名 去除文件属组class1的写权限(w) chmod g-w 文件名 设置属主权限为读写,属组其他用户的文件权限为读 chmod u=rw,g=r,o=r 文件名

设置文件/目录的归属

chown命令 格式:chown 属主 文件或目录 chown :属组 文件或目录 chown 属主:属组 文件或目录 常用命令选项 -R:递归修改指定目录下所有文件、子目录的归属

设置文件属主和属组

chown命令用于设置文件的属主和属组
 命令格式
 chown OWNER[:[GROUP]] FILE... 
 设置文件afile的属主为用户st01
 # chown st01 afile 
 设置文件afile的属组为用户组class1
 # chown :class1 afile
 设置文件afile的属主为st03,并设置文件的属组为class2
 # chown st03:class2 afile

实验:文件/目录权限设置

根据以下要求完成对文件/目录权限的设置
 1、添加组group,添加用户aa、bb并加入group组
 2、新建文件/abc.txt
 3、设置用户aa对文件拥有读、写和执行权限
 4、设置组group内成员对文件拥有读和写权限
 5、设置除属主和属组外其他人对文件没有任何权限
 6、新建目录/abc
 7、设置用户bb对目录拥有读、写执行权限
 8、设置组group内成员对目录拥有读和执行权限
 9、设置除属主和属组外其他人对目录没有任何权限

文件ACL权限

ACL是 Access Control List 的缩写,主要的目的是在提供传统的owner,group,others的read,write,execute权限之外的细部权限设定。

ACL可以针对单一使用者,单一文件或目录来进行r,w,x的权限规范,对于需要特殊权限的使用状况非常有帮助。

ACL 主要可以针对以下方面来控制权限: 使用者 (user):可以针对使用者来设定权限; 组群 (group):针对用户组为对象来设定其权限; 预设属性 (mask):还可以针对在该目录下在建立新文件/目录时,规范新数据的预设权限

管理文件系统访问控制列表

查看: $ getfacl filename 修改 : $ setfacl -m u:username:rw filename 命令 选项 u:用户名:权限 目录名称 $ setfacl -m g:groupname:rw filename 命令 选项 u:组账号:权限 目录名称 删除 : $ setfacl -x u:username filename 命令 选项 u:用户名 目录名称

tune2fs是linux下面重要的文件系统调整工具,其中的几个选项解释如下:
 -c:表示文件系统在mount次数达到设定后,需要运行fsck检查文件系统。
 -i:文件系统的检查间隔时间。系统在达到时间间隔时,自动检查文件系统。
 -l:显示文件系统的很多参数。
 -j:转换为ext3文件系统。
 -m: Set the percentage of reserved filesystem blocks。 设置保留的空间百分比
 -o: Set or clear the indicated default mount options in the filesystem.设置默认加载参数
 通常如果使用ext3文件系统的话,使用-c 0关掉mount次数达到后的文件系统检查
 tune2fs -m 10 /dev/sda1
 tune2fs -o acl,user_xattr /dev/sda1
 tune2fs -i 0 -c0 /dev/sda1
 
 显示当前的磁盘状态(dumpe2fs)
 [root@tonykorn97 /]# dumpe2fs /dev/sda1

使用附加权限

SET位权限 主要用途: 为可执行(有 x 权限的)文件设置,权限字符为“s” 其他用户执行该文件时,将拥有属主或属组用户的权限 SET位权限类型: SUID:表示对属主用户增加SET位权限 SGID:表示对属组内的用户增加SET位权限 如果SGID是设定在目录上面,则在该目录内所建立的文件或目录的所属组,将会自动成为此目录的所属组。

粘滞位权限(Sticky)

主要用途: 为公共目录(例如,权限为777的)设置,权限字符为“t” 用户不能删除该目录中其他用户的文件 应用示例:/tmp、/var/tmp

由于系统及服务程序运行的需要, Linux提供了/tmp、/var/tmp等临时目录,允许任意用户、程序写入数据
 然而试想一下,若任意一个普通用户都能够删除系统服务运行中使用的临时文件,将造成什么后果?
 设置粘滞位以后,正好可以保持一种动态的平衡:允许各用户在目录中任意写入、删除数据,但是禁止随意删除其他用户的数据 
 
 实验
 
 SUID
 第一步切换普通用户qq
 第二步vim /etc/shadow
 第三步查看vim的位置 which vim
 第四步:chmod u+s /usr/bin/vim
 第五步:ls -l /usr/bin/vim
 第六步:su - qq
 第七步:vim /etc/shadow
 
 SGID
 groupadd aa
 useradd -G aa bb
 mkdir /cc
 chown :aa  /cc
 chmod 777 /cc
 su - bb
 cd /cc
 touch a.txt
 su - root
 chmod  g+s  /cc
 su - bb
 cd /cc
 touch aa.txt
 ls -l

设置SET位、粘滞位权限 使用权限字符 chmod ug±s 可执行文件... chmod o±t 目录名... 使用权限数字: chmod mnnn 可执行文件... m为4时,对应SUID,2对应SGID,1对应粘滞位,可叠加

SET位标记字符为“s”,若使用8进制数字形式,则SUID对应为“4”、SGID对应为“2”
 在权限模式中可采用“nnnn”的形式时,如“4755”表示设置SUID权限、“6755”表示同时设置SUID、SGID权限
 以为 /bin/touch 命令设置SUID权限为例进行演示,普通用户使用该命令创建测试文件,比较新建文件的属主变化
 注意:为普通文件(无执行权限的)设置SET位权限从语法上虽然也可行,但没有实际意义(标记字符将变为大写字母“S”)
 通过实例操作演示,展示粘滞位的作用,例如:由普通用户1在 /tmp 目录中尝试删除 普通用户2的文件,对比是否设置粘滞位的区别
 注意:为普通文件或者用户本没有写入权限的目录设置粘滞位语法上也是可行的,但没有实际意义(标记字符将变为大写字母“T”)
 which vim
 chmod  u+s /usr/bin/vim

实验案例:用户和文件权限管理

需求描述 将/etc/fstab 复制到/var/tmp/fstab ,设置harry可以读写,natasha不能做任何操作,其他用户可读,设置manager组为fstab 所属组 设置用户natasha对目录/home/cnrts(创建)有完全控制权限,在目录中创建的文件自动继承组的权限,设置manager组用户对目录有读写执行权行,其他人没有权限,(root除外)

cp /etc/fstab /var/tmp/fstab
 ls -l /var/tmp/fstab (查看一下目录的信息)
 chown:manager /var/tmp/fstab


标签:文件,帐号,超级,用户,权限,root,目录
From: https://blog.51cto.com/u_15964895/7581306

相关文章

  • 央视新闻“潮涌号”直播车:远程星瀚H、远程超级VAN正式亮相
    9月23日,央视新闻推出《潮涌杭州亚运来了》大型融媒体节目,远程星瀚H、远程超级VAN作为央视潮涌号移动演播室用车、央视潮涌号金牌演播室用车正式亮相,并将驶向各大赛区、场馆,在行进中带领观众感受亚运脉搏。亚运赛事期间,远程星瀚H、远程超级VAN将为央视新闻提供全方位保障服务,以领先......
  • 用户登录~生成图片验证码(identify(生成图片验证码)插件)
    1.效果图:2.以用户登录实现生成图片验证功能:使用identify(生成图片验证码)插件identify:这是一个vue的插件,使用canvas来生成图形验证码2.1下载identify插件,npm安装 npmiidentify2.2具体参数如下:2.2在components目录新建一个SIdentify.vue,把以下代码复制进去!<tem......
  • 用户加载界面设计--基于C#和Visual Studio2019
    1、设定窗体位置为屏幕中心、修改窗体为无边框形式修改右下角的这里:修改为(屏幕中心打开):修改右下角这里:修改为(无边框形式):然后再调整修改页的大小(自由拉伸即可):之后调整边框背景颜色:为窗体重命名:2、打开工具箱,拖出一个Label标签在这里可以修改Label的字体样式:设置......
  • ubuntu开启root用户远程ssh登录
    ubuntu系统初始状态下无法通过ssh登录到root用户,只能先登录普通用户再切换到root用户,本文讲解的是开启root用户远程ssh登录su-root切换到root用户su-root打开ssh配置文件vim/etc/ssh/sshd_config找到 插入 PermitRootLoginyes 保存退出重启ssh服务system......
  • CentOS7 用户操作
    CentOS7用户操作1.创建用户默认情况下创建一个用户账号,会创建一个家目录和一个用户邮箱(在/var/spool/mail目录以用户名命名)useradd<username>useradd参数说明:-b,--base-dirBASE_DIR 新账户的主目录的基目录-c,--commentCOMMENT新账户的GECOS字段......
  • 用户故事与敏捷开发 读书笔记 01
    软件需求是一个沟通问题,一旦任何一方在沟通中把持绝对地位,项目就会遭受损失。我们需要一种协同工作的方式,让双方都不占绝对主导地位,共同面对感情用事和办公室政治化的资源分配问题。什么是用户故事?每个用户故事代表了一个独立的功能,即用户在一个单一环境中可能做的事情。用户故......
  • 第二期:快速构建用户认证系统--测试题
    【判断题】自己构建的账号系统可以加入到认证服务中。(对)认证服务手机号码登录需要填写国家码。(对)认证服务登录微信微博QQ等三方账号后可以获取三方账号绑定的手机号码等信息。(错)邮箱用户发送验证码的模板是可以修改的。(错)认证服务是用于华为账号用户认证的。(错)认证服务在......
  • 微信获取用户信息
    微信有2个ACCESS_TOKEN,1,基础接口的token获取接口是 https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET 2,用户网页授权access_token获取接口地址是 https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&s......
  • 【原创软件】第4期:超级便捷的系统服务工具箱(免费)
    一、介绍 [软件名称]: 系统服务工具箱-公众号@读研札记.exe[软件大小]:356KB[安装环境]: Win7及其以后版本[软件功能]:快捷打开10项系统服务(cmd(管理员)、控制面板、注册表、卸载程序、任务管理器、计算机管理、网络管理、磁盘管理、gpedit.msc、services.msc)  二、......
  • SpringSecurity用户登录限制
    本次给你介绍只允许用户在一个地方登录,也就是说每个用户只允许有一个Session。他有两种场景如果同一个用户在第二个地方登录,则将第一个登录下线如果同一个用户在第二个地方登录,则不允许二次的登录同一个用户在第二个地方登录,则将第一个登录退出具体步骤如下:重构com.security.learn.......