Linux账号和权限管理

目录

1、管理用户账号和组账号

      用户账号和组账号概述

      用户账号

      组账号

2、用户账号文件

      用户账户文件/etc/shadow

3、chage命令

4、添加用户账户 -------useradd

5、设置、更改用户口令--------passwd

6、修改用户账号的属性---------usermod 

7、删除用户账号-------userdel

8、用户账号的初始配置文件

9、history命令

10、组账号文件

     添加组账号---------groupadd

     添加删除组成员------gpasswd

     删除组账号--------groupdel

    查询账号信息 ------groups

     id命令

     查询账号信息------finger

      w、who、users 命令

11、文件/目录的权限和归属

  访问权限

   归属(所有权)

 设置文件和目录的权限------chmod

设置文件和目录的归属---------chown

 权限掩码-------umask

 总结

引言:Linux提供了严格的权限管理机制,主要从用户身份,文件权限两方面对资源访问进行限制。本篇内容将分别介绍用户和组账号的管理,文件的归属管理以及权限管理。

1、管理用户账号和组账号

用户账号和组账号概述

Linux基于用户身份对资源访问进行控制

用户账号

超级用户:root管理员,权限最高,ID为0

普通用户: 可以登录系统 ,UID在1-999(保留),创建账号从1000开始,

程序用户:伪用户,不能登录操作系统,只能正常运行服务,比如ftp和apache

     组账号

基本组 (私有组)

附加组 (公有组,一个用户同时包含在其他组中,则这些组称为该用户的附加组)

UID和GID

UID :用户标识号

GID :组标识号

2、用户账号文件

保存用户名称、宿主目录、登录shell等基本信息

文件位置:/etc/passwd

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

例:

Linux账号和权限管理_第1张图片

  用户账户文件/etc/shadow

文件位置:/etc/passwd

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

例:

 Linux账号和权限管理_第2张图片

 3、chage命令

 用来修改账号和密码的有效期限,针对目前系统已经存在的用户

   chage [选项] 用户名

-m :密码可更改的最小天数,为零时 代表任何时候都可以更改密码

-M:密码保持有效的最大天数。chage -M 60 root

-W :用户密码到期前,提高收到警告信息的天数

-E:账号到期的日期,过了这天,此账号将不可用

-d: 上一次更改的日期

-I(大写i):停滞时期,如果一个密码已过期这些天,那么此账号将不可用

-l:例出当前的设置,由非特权用户来确定他们的密码或账号何时过期

例:

chage -E 2022-03-28 test       #其中,test为用户,用户将在2022年3月28日失效(不可登录)

chage -d 2022-04-28 test       #设置test用户最后一次修改密码的日期为2019年4月28日

chage -d 0 test                        #则代表改test用户需立即修改密码

date -d “+45 day” -u                 #如果不知道时间可以用date查看

date -s                                      #修改系统时间

4、添加用户账户 -------useradd

useradd   [选项] ....用户名

常用选项

-u:指定用户的UID 号,要求该UID号码未被其他用户使用

-d: 指定用户的宿主目录位置(当与-M 一起使用时,不生效)

-e: 指定用户的账号失效时间,可使用 1970-01-01 的日期格式

-g:指定用户的基本组名 (或使用GID号)

-G:指定用户的附加组名(或使用GID号)

-M:不建立宿主目录,即使/etc/login.defs 系统配置中已设定要建立宿主目录

-s:指定用户的登录shell /sbin/nologin 不能登录 /bin/bash 能登录

例:创建用户 liyong,并设置密码

Linux账号和权限管理_第3张图片

 5、设置、更改用户口令--------passwd

passwd [选项] ....用户名

常用选项

-d :指定清除用户账号密码

-S:查看用户状态是否被锁定 

-l : 锁定用户账户

-u: 解锁用户

例:

Linux账号和权限管理_第4张图片

 6、修改用户账号的属性---------usermod 

usermod  [选项] .....用户名

常用选项

-l:更改用户账号的登录名称

-L:锁定用户账户

-U:解锁用户账户

以下选项与useradd命令中含义相同

-u:修改用户的UID号

-d:修改用户的宿主目录位置

-e:修改用户的账户失效时间,可使用1970-01-01 的日期格式

-g:修改用户的基本组名(或使用GID号)

-G:修改用户的附加组名(或使用GID号)

-s:指定用户的登录shell /sbin/nologin 不能登录 /bin/bash 能登录

7、删除用户账号-------userdel

userdel  [-r]  用户名

添加-r 选项时,表示连用户的宿主目录一并删除

如果:我们不带参数删除用户,在创建此用户时会报错   例:不加-r的话此时只是删除了这个用户,如果想完全删除还需要找到2个文件将其删除才可以。

Linux账号和权限管理_第5张图片

 8、用户账号的初始配置文件

文件来源

新创建用户账号时,从/etc/skel 目录中复制而来

主要的用户初始配置文件      

~/.bash_profile
- ~/.bashrc
- ~/.bash_logout

 ~/.bash_profile:

示例代码中为用户添加了2个环境变量(JAVAHOME和CLASSPATH),并修改了已有环境变量PATH的值.(PATH的查找是从前开始查找,找到就返回)
CLASSPATH环境变量的值是在JAVA运行时查找加载类的默认classpath.

- ~/.bashrc

 例子中定义了路径,语言,命令别名(使用rm删除命令时总是加上-i参数需要用户确认,使用ls命令列出文件列表时加上颜色显示)。每次修改.bashrc后,使用source /.bashrc(或者 . / .bashrc)就可以立刻加载修改后的设置,使之生效。一般会在.bash_profile文件中显示调用.bahsrc。登录linux启动bash时首先会先去读取

关于环境变量的读取顺序:
用户登录->>加载~/bash profile --> bash profile中配置了首先是使~/.bashrc生效

- ~/.bash_logout

用途:用户登出时执行的命令

#~ /.bash_logout
#在当前用户登出时,打印出Logout 和当前时间
echo “Logout, ‘date’”

9、history命令

参数:
n :数字,要列出最近的 n 条命令列表
-c :将目前的shell中的所有 history 内容全部消除
-a :将目前新增的history 指令新增入 histfiles 中,若没有加 histfiles ,则预设写入 ~/.bash_history
-r :将 histfiles 的内容读到目前这个 shell 的 history 记忆中
-w :将目前的 history 记忆内容写入 histfiles
history -r /root/history.txt,把命令读进来作为当前bash的历史记录
history -w /root/history.txt,把当前bash的历史记录写入history.txt
echo “history -c” >> ~/.bash_logout
echo “history -c” >> ~/.bash_profile

10、组账号文件

与用户账号文件相类似

/etc/group : 保存组账号基本信息

/etc/gshadow :保存组账号的密码信息

添加组账号---------groupadd

groupadd   [-g GID] 组账号名

例:

Linux账号和权限管理_第6张图片

 添加删除组成员------gpasswd

设置组账号密码(极少用)、添加\删除组成员

gpasswd [选项] ...组账号名

常用选项

-a:添加用户到组

-d:从组删除用户

-A:指定管理员

-M:指定组成员和-A的用途差不多

-r:删除密码

-R:限制用户登入组,只有组中的成员才可以用newgrp加入组

例:

Linux账号和权限管理_第7张图片

删除组账号--------groupdel

groupdel   组账号名

例:创建一个组,在用groupdel删除

Linux账号和权限管理_第8张图片

 查询账号信息 ------groups

查询用户所属的组

groups  [用户名]

id命令

查询用户身份标识

id  [用户名]

例:查询hx用户和gx用户所属的组 ,,查询hx身份标识

Linux账号和权限管理_第9张图片

查询账号信息------finger

查询用户账号的详细信息

finger  [用户名]

需要先用yum安装程序 

Linux账号和权限管理_第10张图片

w、who、users 命令

查询已登录到主机的用户信息

例:

Linux账号和权限管理_第11张图片

User:登录用户名
TTY:登录后系统分配的终端号
From:远程主机名,即从哪登录的login@:何时登录
IDLE:用户空闲时间。这是个计时器,一旦用户执行任何操作,改计时器就会被重置。
JCPU:和终端连接的所有进程占用时间。包括当前正在运行的后台作业占用时间
PCPU:当前进程所占用时间
WHAT:当前正在运行进程的命令行
pts说明是用远程工具连接的,比如1xshell,后面的数字代表登录的时间顺序,越小证明登录的越早。

11、文件/目录的权限和归属

  访问权限

读取 r :允许查看文件内容、显示目录列表

写入w:允许修改文件内容,允许在目录中新建、移动、删除文件或子目录

可执行x: 允许允许程序、切换目录

   归属(所有权)

属主:拥有该文件或目录的用户账号

属组:拥有该文件或目录的组账号

root用户、 root组 如"drwxr-xr-x”和"-rw-r--r--"。权限字段由四部分组成,各自的含义如下所述。

第1个字符:表示该文件的类型,可以是 d(目录)、b(块设备文件)、c(字符设备文件)、"-”(普通文件)、字母"l”(链接文件)等。
第24个字符:表示该文件的属主用户(User)对该文件的访问权限。
第5
7个字符:表示该文件的属组内各成员用户(Group)对该文件的访问权限。
第8~10 个字符:表示其他任何用户 (other)对该文件的访问权限。

权限项 执行 执行 执行
字符表示 r w x r w x r w x
数字表示 4 2 1 4 2 1 4 2 1
权限分配 文件所有者 文件所属组 其他用户

 设置文件和目录的权限------chmod

chmod命令 

chmod  [ugoa]     [+-=]    [rwx]   文件或目录    

chmod   nnn(3为八进制数)   文件或目录....

常用选项   -R:递归修改指定目录下所有子项的权限

u  :属主     g  :属组   o: 其他用户    a :所有用户

+:增加     - :去除           =:设置权限

r  :读         w: 写           x:运行权限

例:

Linux账号和权限管理_第12张图片

设置文件和目录的归属---------chown

chown命令

chown  属主    文件或目录

chown  :属组   文件或目录

chown  属主:属组   文件或目录

常用选项

-R :递归修改指定目录下所有文件、子目录的归属

Linux账号和权限管理_第13张图片

 权限掩码-------umask

umaks 作用

控制新键的文件或者目录的权限

默认权限去除umask的权限为新建的文件目录的权限

umask 设置:umask 022

umask 查看:umask 

Linux账号和权限管理_第14张图片

 总结

上述我们可以了解对账号的使用,创建删除和添加,对账号控制权限的操作,

用户账号管理(useradd、passwd、usermod、userdel)

组账号管理 (groupadd、gpasswd、groupdel)

用户账号文件与组账号文件

查询账户相关信息的命令(groups 、id、finger、w)

设置目录与文件权限(chmod)

设置目录与文件归属(chown)

你可能感兴趣的:(linux)